HarmonyOS 鸿蒙Next中隐私协议弹框

HarmonyOS 鸿蒙Next中隐私协议弹框 隐私协议弹框是怎么弹出来的?自己去适配还是官方托管?

4 回复

关于隐私政策服务有两种实现方法,一种为使用隐私管理服务进行托管制作,另一种为开发者自行制作。详细内容如下:

  • 隐私管理服务:隐私管理服务为使用标准化隐私声明托管服务的应用/元服务提供隐私链接查询、隐私签署状态查询、停止隐私协议和拉起标准化隐私弹框功能。
  • 自行实现隐私政策服务

     自行制作可参考用户协议与隐私政策弹窗,基于半模态转场实现了用户协议与隐私政策的确认弹窗,基于全屏模态转场实现了协议与政策的详情页面

实现思路:

  1. 通过bindSheet属性绑定用户协议与隐私政策半模态页面。
Column() {
  ... // 绑定bindSheet的组件
}
.alignItems(HorizontalAlign.Center)
.bindSheet($$this.isShow, this.agreementAndPolicy, {
  ... // 配置半模态页面的可选属性
})
.width(Constants.FULL_PERCENT)
.height(Constants.FULL_PERCENT)

@Builder
agreementAndPolicy(): void {
  ... // 自定义用户协议与隐私政策半模态页面
}
  1. 通过bindContentCover属性绑定用户协议与隐私政策的详情页面。
// 用户协议文本组件绑定用户协议详情全屏模态页面
Text(Constants.AGREEMENT_OR_PRIVACY[0])
  .onClick(() => {
    this.isShowAgreement = true;
  })
  .bindContentCover(this.isShowAgreement, this.userAgreementBuilder(), {
    onDisappear: (() => {
      this.isShowAgreement = false;
    })
  })

@Builder
userAgreementBuilder(): void {
  ... // 自定义用户协议详情全屏模态页面
}

// 隐私政策文本组件绑定隐私政策详情全屏模态页面
Text(Constants.AGREEMENT_OR_PRIVACY[1])
  .onClick(() => {
    this.isShowPolicy = true;
  })
  .bindContentCover(this.isShowPolicy, this.privacyPolicyBuilder(), {
    onDisappear: (() => {
      this.isShowPolicy = false;
    })
  })

@Builder
privacyPolicyBuilder(): void {
   ... // 自定义隐私政策详情全屏模态页面
}
  1. 通过PersistentStorage持久化存储用户协议与隐私政策同意状态,判断是否拉起用户协议与隐私政策半模态页面。
// 初始化PersistentStorage
PersistentStorage.persistProp('agreedState', 0);
PersistentStorage.persistProp('flag', false);

// 组件内部定义属性
@StorageLink('agreedState') agreedState: number = 1;
@StorageLink('flag') flag: boolean = true;

aboutToAppear(): void {
  if (this.agreedState === Constants.AGREED_STATE[1]) {
    this.pathStack.pushPathByName('Home', null);
  } else {
    this.isShow = true;
  }

  // 拉起协议
  this.intervalID = setInterval(() => {
    if (!this.flag) {
      this.isShow = true;
      this.flag = !this.flag;
    }
    if (this.intervalID) {
      clearInterval(this.intervalID);
    }
  }, Constants.DELAY_TIME);
}

具体可参考用户协议与隐私政策弹窗示例代码

更多关于HarmonyOS 鸿蒙Next中隐私协议弹框的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


  • 隐私声明托管:由AGC平台提供统一隐私声明模板,支持开发者基于标准的模板,生成应用的用户隐私保护政策,并在应用提交上架申请时选择使用。
  • 隐私管理服务:由客户端集成AppGallery Kit(应用市场服务)提供的隐私管理服务,为使用标准化隐私声明托管服务的应用/元服务提供隐私链接查询、隐私签署状态查询、停止用户已签署的隐私协议功能。

官方文档有个标准化隐私弹框示例可参考文档:标准化隐私声明托管服务

在HarmonyOS Next中,隐私协议弹框通过系统提供的PrivacyDialog组件实现。开发者需在应用配置文件中声明权限,并在应用启动时调用PrivacyDialog API触发弹框显示。弹框内容需遵循华为应用市场规范,明确说明数据收集和使用条款。用户必须同意协议后方可继续使用应用,拒绝将退出应用。隐私协议文本需存储在应用的resources目录下,支持多语言适配。

在HarmonyOS Next中,隐私协议弹框由系统统一托管,无需开发者手动适配。系统会在应用首次启动或检测到隐私政策更新时自动触发弹框,开发者只需在AppGallery Connect中配置对应的隐私政策文件即可。这种机制既确保了合规性,又减少了开发工作量,同时保证所有应用遵循一致的隐私提示体验。

回到顶部