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

隱私協議對話框 - Shared Package動態共享包使用

數據庫 其他數據庫
通過開發隱私協議對話框動態共享包,學習到了跨包頁面路由跳轉,HSP動態共享包開發、引用和調試,同時也為以后App上架做好準備工作,這樣以后開發的項目都可以引用這個隱私協議共享包,大大縮小開發時間和成本。

想了解更多關于開源的內容,請訪問:

51CTO 開源基礎軟件社區

https://ost.51cto.com

一、準備工作

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

qhj_privacy_library.har
qhj_privacy_library-default-signed.hsp

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

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

二、動態共享包使用介紹

1、共享包導出一個首選項數據庫類和一個Dialog組件

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

2、PreferencessUtil提供了創建首選項數據庫,保存數據,修改數據

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

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、在EntryAbility.ts的onCreate初始化首選項數據

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

onCreate(want, launchParam) {
    // 創建首選項數據庫
    preferencesUtil.createPrivacyPreferences(this.context);
    // 設置隱私協議默認不同意
    preferencesUtil.saveDefaultPrivacy(false);
  }

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、跨包頁面路由跳轉

若想在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}`);
  })
})

其中router.pushUrl方法的入參中url的內容為:

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

url內容的模板為:

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

2、應用內HSP開發指導

應用內HSP開發指導-HSP-共享包-應用程序包基礎知識-開發基礎知識-入門-HarmonyOS應用開發

3、應用間HSP的調試方式

開發者本地調試應用間HSP相關的功能時,可以通過相關指令本地完成應用間HSP的分發,主要步驟如下:

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

通過指令后安裝開發者自身的應用hap。

hdc install library_privacy-demo.hap

啟動開發者自身的應用,調試相關功能。
注意:步驟2和步驟3不可以顛倒,否則會由于缺少必要的應用間HSP導致開發者的應用安裝失敗。

4、打包HSP和HAP注意事項

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

為應用/服務進行簽名-調試HarmonyOS應用/服務-應用/服務調試-DevEco Studio使用指南-工具-HarmonyOS應用開發

五、總結

通過開發隱私協議對話框動態共享包,學習到了跨包頁面路由跳轉,HSP動態共享包開發、引用和調試,同時也為以后App上架做好準備工作,這樣以后開發的項目都可以引用這個隱私協議共享包,大大縮小開發時間和成本。

責任編輯:jianghua 來源: 51CTO 開源基礎軟件社區
相關推薦

2011-07-01 11:33:00

Qt 模態 非模態

2009-12-29 15:24:48

WPF對話框

2009-12-11 15:35:50

PHP彈出對話框

2009-12-28 13:47:35

WPF對話框

2009-12-28 14:32:31

WPF窗體對話框

2011-07-21 15:50:42

jQuery Mobi頁面對話框

2010-01-28 16:55:26

Android對話框

2010-01-11 09:33:32

VB.NET對話框調用

2011-11-23 09:47:36

Winform

2011-05-20 16:49:21

VB.NET

2011-07-22 15:32:53

iPhone 按鈕 對話框

2010-01-22 16:27:19

VB.NET關于對話框

2011-06-02 10:37:02

Android 對話框

2012-12-03 10:47:54

WebJQuery控件

2009-09-03 17:44:22

iPhone程序開發

2022-03-02 15:47:57

Dialog組件UI設計鴻蒙

2011-05-31 10:26:37

Android 對話框

2021-07-11 07:34:23

Windows 11操作系統微軟

2009-10-20 14:05:42

VB.NET路徑

2009-11-03 09:21:26

Visual Stud
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩精品一 | 久久高清 | 亚洲免费精品 | 日韩一区欧美一区 | 精品久久影院 | 国产精品一区二区欧美黑人喷潮水 | 日韩欧美在线一区 | a级大毛片 | 中文字幕av第一页 | 1204国产成人精品视频 | 成人欧美一区二区三区色青冈 | 免费一区二区三区 | 男人天堂免费在线 | 精品久久一区 | 免费观看av网站 | 亚洲视频中文字幕 | 国产精品久久久久久中文字 | 国产精品福利久久久 | 久久久久亚洲av毛片大全 | 亚洲精品久久久久中文字幕二区 | 九久久 | 国产精品久久久久久久久久 | 日韩精品视频在线观看一区二区三区 | 亚洲一区二区三区在线免费观看 | 91影院 | 一区二区在线观看av | 日韩午夜网站 | 网站黄色在线免费观看 | 日韩一二区 | 中文欧美日韩 | 国产精品二区三区 | 精品国产一区二区三区久久久蜜月 | 精品福利视频一区二区三区 | 亚洲一区在线观看视频 | 国产乱码精品1区2区3区 | 噜噜噜噜狠狠狠7777视频 | 婷婷色成人 | 伊人天堂网 | 在线观看国产视频 | 国产粉嫩尤物极品99综合精品 | 国产一级淫片a直接免费看 免费a网站 |