写点什么

鸿蒙原生应用《隐私协议静态共享库》

作者:坚果
  • 2024-04-13
    广东
  • 本文字数:1787 字

    阅读完需:约 6 分钟

鸿蒙原生应用《隐私协议静态共享库》

隐私协议静态共享库

隐私协议对话框静态共享库模块是使用 Static Library 静态共享库模块实现隐私协议对话框和隐私协议显示,对话框使用自定义对话框实现,隐私协议显示在一个 Webview 组件页面上,支持本地 html 文件和 http 或 https 返回 html 文件。


本库由 狼哥,完成迁移。

一、下载安装

ohpm install @nutpi/privacy_dialog
复制代码


OpenHarmony ohpm 环境配置等更多内容,请参考如何安装 OpenHarmony ohpm 包

二、使用

1.在 EntryAbility.ts 文件里创建首选项数据库


import { CustomDialogPrivacy,PreferencesUtil } from '@nutpi/privacy_dialog'let preferencesUtil = new PreferencesUtil();
onCreate(want, launchParam) { // 创建首选项数据库 preferencesUtil.createPrivacyPreferences(this.context); // 设置隐私协议默认不同意 preferencesUtil.saveDefaultPrivacy(false); }
复制代码


2.在 Index.ets 页面,调用对话框


import { CustomDialogPrivacy,PreferencesUtil } from '@nutpi/privacy_dialog'let preferencesUtil = new PreferencesUtil();
import('privacy_dialog/src/main/ets/components/PrivacyPage'); // 引入静态共享包中的命名路由页面
// 开始显示隐私协议对话框 /** * 如果localHtml参数为true,urlPage参数为空,显示默认隐私协议 * 如果localHtml参数为true,urlPage参数不为空,显示urlPage参数本地html文件 * 如果localHtml参数为false,urlPage参数为空,显示默认隐私协议 * 如果localHtml参数为false,urlPage参数不为空,显示urlPage参数http或https返回html文件 */ // privacyPage为三方库里的routeName private privacyPage: string = 'privacyPage' // RouterParams参数1为localHtml=true时,使用本地rawfile目录下html文件,为false时,使用远程http隐私协议 // RouterParams参数2根据参数1而定,为true时,写本地html文件名如:privacy.html,为false时,如:http://xxxx/zh-cn_userAgreement.html openPrivacyPage() { try { router.pushNamedRoute({ name: this.privacyPage, params: new RouterParams(true, 'privacy.html') }).then(() => { console.info("xx push page success"); }).catch((err: BusinessError) => { console.error(`xx pushUrl failed, code: ${err.code}, msg: ${err.message}`); }) } catch (err) { let message = (err as BusinessError).message let code = (err as BusinessError).code console.error(`xx pushNamedRoute failed, code is ${code}, message is ${message}`); } } privacyDialogController: CustomDialogController = new CustomDialogController({ builder: CustomDialogPrivacy({ openPrivacy: this.openPrivacyPage }), autoCancel: false, alignment: DialogAlignment.Center, customStyle: true }) onPageShow() { console.info('xx onPageShow 显示隐私协议') preferencesUtil.getChangePrivacy().then((value) => { console.info(`xx onPageShow 获取隐私协议状态:${value}`) if (!value) { this.privacyDialogController.open() } }) } onPageHide() { console.info(`xx Index -> onPageHide Close Start`) this.privacyDialogController.close() console.info(`xx Index -> onPageHide Close End`) } aboutToDisappear() { console.info(`xx Index -> aboutToDisappear`) this.privacyDialogController.close() } // 结束显示隐私协议对话框
复制代码


创建对话框时,可选参数以下:


  // 隐私协议标题  private title?: string = '协议和隐私政策提示'  // 前辍隐私协议信息  private prefixMessage?: string = '感谢您选择xxx元服务!我们非常重视您的个人信息和隐私保护。为更好地保障您的个人权益,在使用产品前,请您认真阅读'  // 后辍隐私协议信息  private suffixMessage?: string = '的全部内容。'  // 隐私协议信息,点击可以跳转  private privacyMessage?: string = '《协议与隐私政策》'
复制代码


3.点击设备桌面图标运行查看效果



三、开源协议

本项目基于 Apache ,请自由地享受和参与开源。欢迎大家与坚果派建立联系。

发布于: 刚刚阅读数: 6
用户头像

坚果

关注

此间若无火炬,我便是唯一的光 2020-10-25 加入

公众号:“大前端之旅”,OpenHarmony布道师,润和软件鸿蒙KOL,InfoQ签约作者,电子发烧友鸿蒙KOL

评论

发布
暂无评论
鸿蒙原生应用《隐私协议静态共享库》_HarmonyOS_坚果_InfoQ写作社区