鸿蒙HarmonyOS 5.0开发实战:用户隐私协议实现案例

 往期鸿蒙5.0全套实战文章必看:(文中附带鸿蒙5.0全栈学习资料)


用户隐私协议案例

介绍

本示例介绍使用web组件加载用户协议、隐私协议等场景。该场景多用于应用类协议展示。

效果图预览

使用说明

  1. 点击主页右上角三条横线按钮打开侧边sidebar。
  2. 点击sidebar中一个按钮跳转到案例页面加载对应点击的协议内容。

实现思路

  1. 通过resourceManager获取资源的value并使用appStorage暂存。
  Button($r('app.string.privacy_agreement'))
    .width('100%')
    .backgroundColor(Color.White)
    .fontColor(Color.Black)
    .onClick(() => {
      animateTo({
        duration: 300
      }, () => {
        this.sideBarIsShow = false;
      })
      let context = getContext() as common.UIAbilityContext
      context.resourceManager.getStringValue($r('app.string.privacy_agreement')).then((data) => {
        AppStorage.setOrCreate('agreementTitle', data)
        FoldableRouter.pushUri('privacyagreement/PrivacyAgreementComponent', '');
      })
    })

2.通过appStorage暂存的值匹配需要加载的协议地址,通过web组件加载对应html页面。

@Component
export struct PrivacyAgreement {
  @State webUri: string = '';
  webController: WebviewController = new webview.WebviewController();

  aboutToAppear(): void {
    let titleName: string | undefined = AppStorage.get('agreementTitle');
    for (let i = 0; i < agreementDataArr.length; i++) {
      if (agreementDataArr[i].name === titleName) {
        this.webUri = agreementDataArr[i].uri;
      }
    }
  }

  build() {
    Column() {
      Web({ src: agreementDataArr[0].uri, controller: this.webController })
        .width('100%')
        .height('100%')
    }
    .width('100%')
    .height('100%')
  }
}

高性能知识点

不涉及

工程结构&模块类型

privacyagreement                                // har类型(默认使用har类型,如果使用hsp类型请说明原因)
|---components
|   |---PrivacyAgreement.ets                    // 视图层-协议加载页面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值