成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

隱私協(xié)議對話框 - Shared Package動態(tài)共享包使用

數(shù)據(jù)庫 其他數(shù)據(jù)庫
通過開發(fā)隱私協(xié)議對話框動態(tài)共享包,學(xué)習(xí)到了跨包頁面路由跳轉(zhuǎn),HSP動態(tài)共享包開發(fā)、引用和調(diào)試,同時也為以后App上架做好準(zhǔn)備工作,這樣以后開發(fā)的項(xiàng)目都可以引用這個隱私協(xié)議共享包,大大縮小開發(fā)時間和成本。

想了解更多關(guān)于開源的內(nèi)容,請?jiān)L問:

51CTO 開源基礎(chǔ)軟件社區(qū)

https://ost.51cto.com

一、準(zhǔn)備工作

1、共享包har和hsp文件(自行開發(fā))

qhj_privacy_library.har
qhj_privacy_library-default-signed.hsp

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

D:\xxxDemo\entry> ohpm install ..\qhj_privacy_library.har

二、動態(tài)共享包使用介紹

1、共享包導(dǎo)出一個首選項(xiàng)數(shù)據(jù)庫類和一個Dialog組件

export { PreferencesUtil } from "./utils/PreferencesUtil"
export { CustomDialogPrivacy } from './dialog/CustomDialogPrivacy'

2、PreferencessUtil提供了創(chuàng)建首選項(xiàng)數(shù)據(jù)庫,保存數(shù)據(jù),修改數(shù)據(jù)

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

3、CustomDialogPrivacy對話框提供更改標(biāo)題,文本,本地html或遠(yuǎn)程html文件配置

// 隱私協(xié)議標(biāo)題
private title?: string = '協(xié)議和隱私政策提示'
// 前輟隱私協(xié)議信息
private prefixMessage?: string = '感謝您選擇xxx元服務(wù)!我們非常重視您....'
// 后輟隱私協(xié)議信息
private suffixMessage?: string = '的全部內(nèi)容。'
// 隱私協(xié)議信息,點(diǎn)擊可以跳轉(zhuǎn)
private privacyMessage?: string = '《協(xié)議與隱私政策》'
// 本地html文件或http和https返回html文件
private localHtml?: boolean = true
// 隱私協(xié)議URL 支持本地html或http和https返回html
private urlPage?: string = ""

三、使用方如何調(diào)用

1、在EntryAbility.ts的onCreate初始化首選項(xiàng)數(shù)據(jù)

import { CustomDialogPrivacy,PreferencesUtil } from 'qhj_privacy_library'
let preferencesUtil = new PreferencesUtil();

onCreate(want, launchParam) {
    // 創(chuàng)建首選項(xiàng)數(shù)據(jù)庫
    preferencesUtil.createPrivacyPreferences(this.context);
    // 設(shè)置隱私協(xié)議默認(rèn)不同意
    preferencesUtil.saveDefaultPrivacy(false);
  }

2、在Index.ets頁面調(diào)用共享包自定義Dialog

import { CustomDialogPrivacy,PreferencesUtil } from 'qhj_privacy_library'
let preferencesUtil = new PreferencesUtil();

  // 開始顯示隱私協(xié)議對話框
  /**
   * 如果localHtml參數(shù)為true,urlPage參數(shù)為空,顯示默認(rèn)隱私協(xié)議
   * 如果localHtml參數(shù)為true,urlPage參數(shù)不為空,顯示urlPage參數(shù)本地html文件
   * 如果localHtml參數(shù)為false,urlPage參數(shù)為空,顯示默認(rèn)隱私協(xié)議
   * 如果localHtml參數(shù)為false,urlPage參數(shù)不為空,顯示urlPage參數(shù)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 顯示隱私協(xié)議')
    preferencesUtil.getChangePrivacy().then((value) => {
      console.info(`xx onPageShow 獲取隱私協(xié)議狀態(tài):${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
  }
  // 結(jié)束顯示隱私協(xié)議對話框

四、補(bǔ)充內(nèi)容

1、跨包頁面路由跳轉(zhuǎn)

若想在library模塊中的Dialog點(diǎn)擊文本跳轉(zhuǎn)到隱私協(xié)議頁面(路徑為: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}`);
  })
})

其中router.pushUrl方法的入?yún)⒅衭rl的內(nèi)容為:

'@bundle:com.xxx.study/qhj_privacy_library/ets/pages/PrivacyPage'

url內(nèi)容的模板為:

'@bundle:包名(bundleName)/模塊名(moduleName)/路徑/頁面所在的文件名(不加.ets后綴)'

2、應(yīng)用內(nèi)HSP開發(fā)指導(dǎo)

應(yīng)用內(nèi)HSP開發(fā)指導(dǎo)-HSP-共享包-應(yīng)用程序包基礎(chǔ)知識-開發(fā)基礎(chǔ)知識-入門-HarmonyOS應(yīng)用開發(fā)

3、應(yīng)用間HSP的調(diào)試方式

開發(fā)者本地調(diào)試應(yīng)用間HSP相關(guān)的功能時,可以通過相關(guān)指令本地完成應(yīng)用間HSP的分發(fā),主要步驟如下:

  1. 獲取到應(yīng)用間HSP的安裝包。
  2. 通過指令先安裝應(yīng)用間HSP的安裝包。
hdc install qhj_privacy_library-default-signed.hsp

通過指令后安裝開發(fā)者自身的應(yīng)用hap。

hdc install library_privacy-demo.hap

啟動開發(fā)者自身的應(yīng)用,調(diào)試相關(guān)功能。
注意:步驟2和步驟3不可以顛倒,否則會由于缺少必要的應(yīng)用間HSP導(dǎo)致開發(fā)者的應(yīng)用安裝失敗。

4、打包HSP和HAP注意事項(xiàng)

打包HSP和HAP用手工簽名,也就是不能用自動簽名,如果生成HSP包時用自動簽名,生成HAP包時也是用自動簽名,安裝時,就會提示簽名不一致。生成簽名證書請看官方文檔:

為應(yīng)用/服務(wù)進(jìn)行簽名-調(diào)試HarmonyOS應(yīng)用/服務(wù)-應(yīng)用/服務(wù)調(diào)試-DevEco Studio使用指南-工具-HarmonyOS應(yīng)用開發(fā)

五、總結(jié)

通過開發(fā)隱私協(xié)議對話框動態(tài)共享包,學(xué)習(xí)到了跨包頁面路由跳轉(zhuǎn),HSP動態(tài)共享包開發(fā)、引用和調(diào)試,同時也為以后App上架做好準(zhǔn)備工作,這樣以后開發(fā)的項(xiàng)目都可以引用這個隱私協(xié)議共享包,大大縮小開發(fā)時間和成本。

責(zé)任編輯:jianghua 來源: 51CTO 開源基礎(chǔ)軟件社區(qū)
相關(guān)推薦

2011-07-01 11:33:00

Qt 模態(tài) 非模態(tài)

2009-12-29 15:24:48

WPF對話框

2011-07-21 15:50:42

jQuery Mobi頁面對話框

2010-01-28 16:55:26

Android對話框

2009-12-11 15:35:50

PHP彈出對話框

2009-12-28 13:47:35

WPF對話框

2009-12-28 14:32:31

WPF窗體對話框

2011-05-20 16:49:21

VB.NET

2010-01-11 09:33:32

VB.NET對話框調(diào)用

2011-11-23 09:47:36

Winform

2011-07-22 15:32:53

iPhone 按鈕 對話框

2012-12-03 10:47:54

WebJQuery控件

2010-01-22 16:27:19

VB.NET關(guān)于對話框

2011-06-02 10:37:02

Android 對話框

2009-09-03 17:44:22

iPhone程序開發(fā)

2011-05-31 10:26:37

Android 對話框

2021-07-11 07:34:23

Windows 11操作系統(tǒng)微軟

2022-03-02 15:47:57

Dialog組件UI設(shè)計(jì)鴻蒙

2009-11-03 09:21:26

Visual Stud

2019-01-09 11:30:07

Windows10空白對話框命令
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 羞羞视频网站免费看 | 91精品国产高清一区二区三区 | 中文字幕在线免费 | 国产99久久精品 | 精品欧美一区二区三区久久久 | 欧美黄色网 | 国产精品激情小视频 | 性生生活大片免费看视频 | 超碰97人人人人人蜜桃 | 一区二区三区欧美 | 免费看91| 久久国产精品久久国产精品 | 亚洲综合日韩精品欧美综合区 | 美女久久久 | 免费黄色录像视频 | 国产一区二区小视频 | 久久国产亚洲 | 久久久久资源 | 成人免费区一区二区三区 | 成人在线观看网站 | 色眯眯视频在线观看 | 在线看av网址 | 天天看天天爽 | 午夜av电影| 国产69精品久久99不卡免费版 | 黑人性hd | 免费黄色的网站 | 国产精品精品视频一区二区三区 | 亚洲精品一区二区网址 | 中文字幕精品一区二区三区精品 | 亚洲iv一区二区三区 | 亚洲福利一区二区 | 免费成人在线网站 | 成人黄色电影在线播放 | a级片网站| 日韩精品视频在线观看一区二区三区 | 日本久久网站 | 性色网站 | 不卡的av一区| 亚洲三级在线 | 影音先锋中文字幕在线观看 |