В нативное Android-приложение для отключения скриншоров нужно добавить код
getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
но как использовать этот параметр безопасности в приложении NativeScript?
В нативное Android-приложение для отключения скриншоров нужно добавить код
getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
но как использовать этот параметр безопасности в приложении NativeScript?
Это решение реализовано в Nativescript-Vue, пожалуйста, настройте его в соответствии с используемым вами вариантом Nativescript.
Импортируйте их:
import { isAndroid, isIOS, device, screen} from "tns-core-modules/platform";
const app = require("tns-core-modules/application");
Добавьте функцию pageLoad для выполнения кода при загрузке страницы:
<Page @loaded="pageLoad">
Запустите этот код:
pageLoad: function() {
if (isAndroid) {
if (app.android && device.sdkVersion >= '21') {
const window = app.android.startActivity.getWindow();
window.setFlags(android.view.WindowManager.LayoutParams.FLAG_SECURE,
android.view.WindowManager.LayoutParams.FLAG_SECURE);
}
}
}
Лично проверено мной, в основном импортируйте переменные и запускайте приведенный выше код при загрузке страницы или на созданной странице.
Это мой первый ответ на StackOverflow :)
Во-первых, поскольку вы собираетесь работать с собственным кодом, я настоятельно рекомендую установить tns-platform-declarations. это очень поможет в этом процессе.
после того, как у вас есть эта настройка
После того, как вы установили и настроили его для Android.
import { topmost } from 'ui/frame';
если вы не добавите объявления платформы tns, иначе вы можете пропустить это.
declare const android: any;
затем поместите этот код, где это необходимо
//run this code if only in android application.
if(topmost().android){
topmost().android.activity.getWindow().setFlags(android.view.WindowManager.LayoutParams.FLAG_SECURE,android.view.WindowManager.LayoutParams.FLAG_SECURE);
}
Я не запускал это лично, поэтому я не уверен на 100%, что это сработает, если это не так, то, по крайней мере, вы должны пройти большую часть пути.