经过测试代码写在App.vue会失效,请写在符合逻辑的界面
uni-app 实现安卓防截屏
在uniapp中实现
要在App中全局禁止截屏,那么可以在App.vue中调用
如果想要某个页面防截屏就在某个页面调用,但是在离开这个页面的时候要恢复截屏,否则全局还是禁止截屏的状态
html
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文件中,实现全软件防截屏
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)
}
})
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_45868762/article/details/125742190