Возможно, вы захотите отключить снимки экрана, чтобы предотвратить копирование содержимого изображения или видео и т. Д. Эту задачу легко выполнить в Java, однако, как разработчик Cordova, вы можете вместо этого использовать плагин.
Замечания : Если вам нужна поддержка Android и iOS, вместо этого перейдите к заголовку плагина поддержки iOS в конце статьи.
Требования
Нам понадобится cordova-ourcodeworld-preventscreenshots
Плагин для динамического отключения разрешения скриншотов.
Чтобы установить его, выполните следующую команду в командной строке node.js:
cordova plugin add https://github.com/sdkcarlos/cordova-ourcodeworld-preventscreenshots.git
Тогда в javascript вы сможете использовать плагин с глобальной переменной OurCodeWorldpreventscreenshots
, Этот плагин устанавливает флаг FLAG_SECURE в Android (что также предотвращает создание снимков экрана вручную). Подробнее о плагине читайте здесь.
Отключить скриншоты
Чтобы отключить скриншоты в вашем приложении, используйте метод отключения, предоставляемый плагином. Обратите внимание, что сценарий должен быть выполнен во время или после deviceready
Событие Кордовы.
document.addEventListener("deviceready", function(){
var successCallback = function(){
console.log("The screenshots are not allowed now.");
};
var errorCallback = function(err){
console.error("An error ocurred : " + err);
};
OurCodeWorldpreventscreenshots.disable(successCallback,errorCallback);
}, false);
Если пользователь попытается сделать снимок, появится сообщение, предупреждающее, что действие теперь разрешено из-за политики безопасности, как netflix или приложение Google Movies.
Приложение будет выделено серым цветом, если это видно из недавно использованных приложений.
Включить скриншоты снова
Плагин позволяет динамически изменять разрешение скриншотов в вашем приложении. Чтобы снова включить скриншоты, используйте метод enable.
document.addEventListener("deviceready", function(){
var successCallback = function(){
console.log("The screenshots are allowed now again.");
};
var errorCallback = function(err){
console.error("An error ocurred : " + err);
};
OurCodeWorldpreventscreenshots.enable(successCallback,errorCallback);
}, false);
Совместимость с iOS
жалобно, ourcodeworld-cordova-preventscreenshots
Плагин не поддерживает iOS, но есть другой плагин, который поддерживает как Android, так и iOS, однако вы не можете динамически изменять эту функцию. Прочитайте документацию по плагину здесь.
Установите следующий плагин для поддержки iOS и Android:
cordova plugin add cordova-plugin-privacyscreen
# or
phonegap local plugin add cordova-plugin-privacyscreen
Обратите внимание, что вам не нужно ничего делать, кроме как установить плагин, так как он будет автоматически настроен при установке. Конфиденциальность будет включена навсегда в вашем приложении.
Повеселись