在原生Android应用程序中禁用屏幕截图需要添加代码
getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
但是如何在NativeScript应用程序中使用此安全选项?
答案 0 :(得分:1)
此解决方案是在Nativescript-Vue中完成的,请根据您使用的Nativescript的版本进行调整。
导入这些:
<input
type="text"
style="padding:8px;margin:15px auto;width:30%;"
placeholder="Type to filter the name column..."
(keyup)="updateFilter($event)"
/>
<ngx-datatable
#table
class="material"
[columns]="columns"
[columnMode]="ColumnMode.force"
[headerHeight]="50"
[footerHeight]="50"
rowHeight="auto"
[limit]="10"
[rows]="rows"
>
</ngx-datatable>
updateFilter(event) {
const val = event.target.value.toLowerCase();
// filter our data
const temp = this.temp.filter(function(d) {
return d.name.toLowerCase().indexOf(val) !== -1 ||
d.address.toLowerCase().indexOf(val) !== -1 ||
d.gender.toLowerCase().indexOf(val) !== -1 || !val;
});
// update the rows
this.rows = temp;
// Whenever the filter changes, always go back to the first page
this.table.offset = 0;
}
添加pageLoad函数以在页面加载时执行代码:
import { isAndroid, isIOS, device, screen} from "tns-core-modules/platform";
const app = require("tns-core-modules/application");
运行此代码:
<Page @loaded="pageLoad">
由我亲自测试,基本上是导入变量,然后在页面加载或创建的页面上运行上面提供的代码。
这是我对StackOverflow的第一个答案:)
答案 1 :(得分:0)
首先,如果您没有我强烈建议安装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);
}
我没有亲自操作,所以我不是百分之百确定它会起作用,如果不能,它至少应该让你在那里大部分时间。