HarmonyOS app登录界面设置隐私崩溃?

在HarmonyOS app登录界面上设置防止截图的操作,结果每次都崩溃,不知道代码哪里出现问题了,代码如图所示:

阅读 504
1 个回答

在module.json5文件中声明需要使用的ohos.permission.PRIVACY\_WINDOW权限,参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/declare-permissions-V5\#%E5%9C%A8%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E4%B8%AD%E5%A3%B0%E6%98%8E%E6%9D%83%E9%99%90

"requestPermissions":[
  {"name": "ohos.permission.PRIVACY_WINDOW"}
]

示例参考如下:

// windowUtils.ets
import { window } from '@kit.ArkUI';
import { common } from '@kit.AbilityKit';

export class windowUtils {
  static setWindowPrivacyModeInPage(context: common.UIAbilityContext, isFlag: boolean) {
    window.getLastWindow(context).then((lastWindow) => {
      lastWindow.setWindowPrivacyMode(isFlag);
    })
  }
}
//页面
import common from '@ohos.app.ability.common';
import { windowUtils } from '../common/windowUtils';

@Entry
@Component
struct Index3 {
  @State message: string = 'Hello World';

  onPageShow(): void {
    windowUtils.setWindowPrivacyModeInPage(getContext(this) as common.UIAbilityContext, true);

  }

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

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
      }
      .width('100%')
    }
    .height('100%')
  }
}