HarmonyOS 如何只给具体某个页面设置防截屏?

如题:HarmonyOS 如何只给具体某个页面设置防截屏?

阅读 416
1 个回答

参考示例如下:

1.EntryAbility.ets的onWindowStageCreate中获取mainWindow并保存。

let windowClass = windowStage.getMainWindowSync()
globalThis.mainWindow = windowClass

2.设置禁止截屏页面(注意:需要先在module.json5中配置隐私窗口权限ohos.permission.PRIVACY\_WINDOW)

import window from '@ohos.window'

@Entry
@Component
struct Page32 {
  @State message: string = 'Hello World'
  mainWindow :window.Window = globalThis.mainWindow

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

  onPageShow(){
    this.mainWindow.setWindowPrivacyMode(true)
  }

  onPageHide(){
    this.mainWindow.setWindowPrivacyMode(false)
  }
}