uni-app 实现安卓防截屏
- 如果想要在App中全局禁止截屏,那么可以在App.vue中调用。
- 如果想要某个页面防截屏就在某个页面调用,但是在离开这个页面的时候要恢复截屏,否则全局还是禁止截屏的状态。
- 不建议动态改变里面的参数,如函数名字。
- 注意下面的生命周期是页面的生命周期,在App.vue中调用请换生命周期。
- 如果
clearFlags()没有用就多调用几次。 - 需要自定义导航栏和监听安卓物理返回键
- 只能说不能完全实现,偶尔会出现 允许截屏 没成功
- 可以在返回的界面也执行下
clearFlags(),如下面的index页面中也执行了下该函数
export default {onUnload() {plus.navigator.setFullscreen(false)this.clearFlags()},onLoad(option) {this.addFlags()plus.navigator.setFullscreen(true)},onBackPress(e) {if (e.from === 'backbutton') {uni.navigateBack();return true;}},methods: {navback() {uni.navigateBack();},addFlags() {let osname = plus.os.nameif (osname == "Android") {var activity = plus.android.runtimeMainActivity()plus.android.invoke(plus.android.invoke(activity, "getWindow"), "addFlags", 0x00002000)}},clearFlags() {let osname = plus.os.nameif (osname == "Android") {var activity = plus.android.runtimeMainActivity()plus.android.invoke(plus.android.invoke(activity, "getWindow"), "clearFlags", 0x00002000)}}}}
export default {data() {return {title: 'Hello'}},onShow() {this.clearFlags()},methods: {toLogin() {uni.navigateTo({url: '/pages/login/login'})},clearFlags() {let osname = plus.os.nameif (osname == "Android") {var activity = plus.android.runtimeMainActivity()plus.android.invoke(plus.android.invoke(activity, "getWindow"), "clearFlags", 0x00002000)}}}}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!