HarmonyOS 单个页面防截屏问题?

我看文档基于entryAbility的防截屏可以实现,但是基于单个页面怎么去处理呢

阅读 500
1 个回答

首先在模块级别 module.json5添加权限 ohos.permission.PRIVACY\_WINDOW (module -\> requestPermissions)

请参考以下示例:

//1.iIndex.ets
import common from '@ohos.app.ability.common';
import { windowUtils } from './NewUtili';

@Entry
@Component
struct Index {

  @State selectId: string = 'A'
  onPageShow() {

    windowUtils.setWindowPrivacyModeInPage(getContext(this) as common.UIAbilityContext, true);
  }
  onPageHide() {
    windowUtils.setWindowPrivacyModeInPage(getContext(this) as common.UIAbilityContext,false);
  }
  build() {

  }
}
//2.windowUtils.ets
import window from '@ohos.window';
import common from '@ohos.app.ability.common';
import { BusinessError } from '@kit.BasicServicesKit';

export class windowUtils {
  static setWindowPrivacyModeInPage(context: common.UIAbilityContext,isFlag: boolean) {
    window.getLastWindow(context).then((lastWindow)=>{
      lastWindow.setWindowPrivacyMode(isFlag, (err: BusinessError) => {
        const errCode: number = err.code;
        if (errCode) {
          console.error('Failed to set the window to privacy mode. 1Cause:' + JSON.stringify(err));
          return;
        }
        console.info('Succeeded in setting the window to privacy mode.');
      });

    })
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进