uni-app 实现安卓防截屏
在uniapp中实现
- 要在App中全局禁止截屏,那么可以在App.vue中调用
- 如果想要某个页面防截屏就在某个页面调用,但是在离开这个页面的时候要恢复截屏,否则全局还是禁止截屏的状态
methods: {
// 禁止截屏
addFlags() {
// #ifdef APP-PLUS
let osname = plus.os.name
if (osname == "Android") {
var activity = plus.android.runtimeMainActivity()
console.log(activity);
console.log('开启防截屏');
plus.android.invoke(plus.android.invoke(activity, "getWindow"), "addFlags", 0x00002000)
}
// #endif
},
// 允许截屏
clearFlags() {
// #ifdef APP-PLUS
let osname = plus.os.name
if (osname == "Android") {
var activity = plus.android.runtimeMainActivity()
console.log('关闭防截屏');
plus.android.invoke(plus.android.invoke(activity, "getWindow"), "clearFlags", 0x00002000)
}
// #endif
},
}
onUnload() {
this.clearFlags()
},
onLoad(option) {
this.addFlags()
}
在html中实现需要先注册plus方法。
写在index.html文件中,实现全软件防截屏
document.addEventListener('plusready', function() {
let osname = plus.os.name
if (osname == "Android") {
var activity = plus.android.runtimeMainActivity()
console.log(activity);
console.log('开启防截屏');
plus.android.invoke(plus.android.invoke(activity, "getWindow"), "addFlags", 0x00002000)
}
})