uni-app 实现安卓防截屏(整个应用或某个页面)

uni-app 实现安卓防截屏

  1. 如果想要在App中全局禁止截屏,那么可以在App.vue中调用。
  2. 如果想要某个页面防截屏就在某个页面调用,但是在离开这个页面的时候要恢复截屏,否则全局还是禁止截屏的状态。
  3. 不建议动态改变里面的参数,如函数名字。
  4. 注意下面的生命周期是页面的生命周期,在App.vue中调用请换生命周期。
  5. 如果clearFlags()没有用就多调用几次。
  6. 需要自定义导航栏和监听安卓物理返回键
  7. 只能说不能完全实现,偶尔会出现 允许截屏 没成功
  8. 可以在返回的界面也执行下clearFlags(),如下面的index页面中也执行了下该函数
//pages/login/login
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: {// 需要自定义导航栏,点击后调用navbacknavback() {uni.navigateBack();},// 禁止截屏addFlags() {// #ifdef APP-PLUSlet osname = plus.os.nameif (osname == "Android") {var activity = plus.android.runtimeMainActivity()plus.android.invoke(plus.android.invoke(activity, "getWindow"), "addFlags", 0x00002000)}// #endif},//  允许截屏  clearFlags() {// #ifdef APP-PLUSlet osname = plus.os.nameif (osname == "Android") {var activity = plus.android.runtimeMainActivity()plus.android.invoke(plus.android.invoke(activity, "getWindow"), "clearFlags", 0x00002000)}// #endif}}}
//pages/index/indexexport default {data() {return {title: 'Hello'}},onShow() {this.clearFlags()},methods: {toLogin() {uni.navigateTo({url: '/pages/login/login'})},//  允许截屏clearFlags() {// #ifdef APP-PLUSlet osname = plus.os.nameif (osname == "Android") {var activity = plus.android.runtimeMainActivity()plus.android.invoke(plus.android.invoke(activity, "getWindow"), "clearFlags", 0x00002000)}// #endif}}}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部