隐私协议对话框 - Shared Package动态共享包使用

想了解更多关于开源的隐私用内容,请访问:

51CTO 开源基础软件社区

https://ost.51cto.com

一、协议准备工作

1、对话动态共享包har和hsp文件(自行开发)

复制qhj_privacy_library.har qhj_privacy_library-default-signed.hsp1.2.

2、共享安装共享包har文件(使用方安装)

复制D:\xxxDemo\entry> ohpm install ..\qhj_privacy_library.har1.

二、包使动态共享包使用介绍

1、隐私用共享包导出一个首选项数据库类和一个Dialog组件

复制export { PreferencesUtil } from "./utils/PreferencesUtil" export { CustomDialogPrivacy } from ./dialog/CustomDialogPrivacy1.2.

2、协议PreferencessUtil提供了创建首选项数据库,对话动态保存数据,共享修改数据

复制export class PreferencesUtil { createPrivacyPreferences(context) saveDefaultPrivacy(isAgree: boolean) saveChangePrivacy(isAgree: boolean) async getChangePrivacy() async deleteChangePrivacy() }1.2.3.4.5.6.7.

3、包使CustomDialogPrivacy对话框提供更改标题,隐私用文本,协议本地html或远程html文件配置

复制// 隐私协议标题 private title?对话动态: string = 协议和隐私政策提示 // 前辍隐私协议信息 private prefixMessage?: string = 感谢您选择xxx元服务!我们非常重视您.... // 后辍隐私协议信息 private suffixMessage?共享: string = 的全部内容。 // 隐私协议信息,包使点击可以跳转 private privacyMessage?: string = 《协议与隐私政策》 // 本地html文件或http和https返回html文件 private localHtml?: boolean = true // 隐私协议URL 支持本地html或http和https返回html private urlPage?: string = ""1.2.3.4.5.6.7.8.9.10.11.12.

三、使用方如何调用

1、在EntryAbility.ts的onCreate初始化首选项数据

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

2、在Index.ets页面调用共享包自定义Dialog

复制import { CustomDialogPrivacy,PreferencesUtil } from qhj_privacy_library let preferencesUtil = new PreferencesUtil(); // 开始显示隐私协议对话框 /** * 如果localHtml参数为true,urlPage参数为空,显示默认隐私协议 * 如果localHtml参数为true,urlPage参数不为空,显示urlPage参数本地html文件 * 如果localHtml参数为false,urlPage参数为空,显示默认隐私协议 * 如果localHtml参数为false,urlPage参数不为空,显示urlPage参数http或https返回html文件 */ privacyDialogController: CustomDialogController = new CustomDialogController({ builder: CustomDialogPrivacy({ localHtml: true, urlPage: privacy.html // urlPage: https://id1.cloud.huawei.com/AMW/portal/agreements/userAgreement/zh-cn_userAgreement.html }), 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`) delete this.privacyDialogController this.privacyDialogController = null } // 结束显示隐私协议对话框1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.

四、免费源码下载补充内容

1、跨包页面路由跳转

若想在library模块中的Dialog点击文本跳转到隐私协议页面(路径为:library/src/main/ets/pages/PrivacyPage.ets),那么可以在Dialog的代码(library模块下的CustomDialogPrivacy.ets,路径为:qhj_privacy_library/src/main/ets/dialog/CustomDialogPrivacy.ets)里这样使用:

复制.onClick(() => { this.controller.close() router.pushUrl({ url: @bundle:com.xxx.study/qhj_privacy_library/ets/pages/PrivacyPage, params: { localHtml: this.localHtml, pageUrl: this.urlPage } }).then(() => { console.info("xx push page success"); }).catch(err => { console.error(`xx pushUrl failed, code is ${err.code}, message is ${err.message}`); }) })1.2.3.4.5.6.7.8.9.10.11.12.13.14.

其中router.pushUrl方法的入参中url的内容为:

复制@bundle:com.xxx.study/qhj_privacy_library/ets/pages/PrivacyPage1.

url内容的模板为:

复制@bundle:包名(bundleName)/模块名(moduleName)/路径/页面所在的文件名(不加.ets后缀)1.

2、应用内HSP开发指导

应用内HSP开发指导-HSP-共享包-应用程序包基础知识-开发基础知识-入门-HarmonyOS应用开发

3、应用间HSP的调试方式

开发者本地调试应用间HSP相关的功能时,可以通过相关指令本地完成应用间HSP的分发,主要步骤如下:

获取到应用间HSP的安装包。通过指令先安装应用间HSP的安装包。 复制hdc install qhj_privacy_library-default-signed.hsp1.

通过指令后安装开发者自身的应用hap。

复制hdc install library_privacy-demo.hap1.

启动开发者自身的应用,云南idc服务商调试相关功能。

注意:步骤2和步骤3不可以颠倒,否则会由于缺少必要的应用间HSP导致开发者的应用安装失败。

4、打包HSP和HAP注意事项

打包HSP和HAP用手工签名,也就是不能用自动签名,如果生成HSP包时用自动签名,生成HAP包时也是用自动签名,安装时,就会提示签名不一致。生成签名证书请看官方文档:

为应用/服务进行签名-调试HarmonyOS应用/服务-应用/服务调试-DevEco Studio使用指南-工具-HarmonyOS应用开发

五、总结

通过开发隐私协议对话框动态共享包,学习到了跨包页面路由跳转,HSP动态共享包开发、引用和调试,同时也为以后App上架做好准备工作,这样以后开发的项目都可以引用这个隐私协议共享包,大大缩小开发时间和成本。

知识
上一篇:电脑蓝屏错误时间的解决方法(提高电脑稳定性,有效应对蓝屏错误)
下一篇:课桌电脑置物架的安装教程(简单易懂的步骤让你轻松安装电脑置物架)