【HarmonyOS 5】App Linking 應用間跳轉詳解

目錄

什么是 App Linking

使用場景

工作原理

如何開發

1.開通 App Linking

2.確定域名

3.服務端部署 applinking.json 文件

4.AGC綁定域名?

5.項目配置

6.組裝聚合鏈接

7.解析聚合鏈接中的參數

其他

如何獲取應用ID


什么是 App Linking

App Linking 是一款創建跨平臺的深度聚合鏈接。通過為用戶提供無縫的內容瀏覽體驗,提升用戶轉化率。

  • 若用戶已安裝應用,點擊點擊鏈接后將直達應用內指定頁面。
  • 若未安裝,且已配置跳轉應用市場,則跳轉應用市場進行下載,待安裝完成后用戶首次打開應用,仍將跳轉至該頁面。如果未配置跳轉應用市場,則自動打開瀏覽器加載對應的網頁內容。
鏈接分享
掃碼直達

使用場景

掃碼直達、短信鏈接直達、社交平臺卡片分享等場景。

工作原理

如何開發

開發前注意事項:使用 App Linking 需使用手動生成簽名,自動簽名將無法啟動應用。

1.開通 App Linking

  • 登錄AppGallery Connect,點擊“我的項目”。
  • 在項目列表中打開對應項目。
  • 在左側導航欄中選擇“增長 > App Linking”,進入App Linking頁面,點擊“立即開通”。

2.確定域名

在配置前需確定域名,并確保域名完成https配置且能正常訪問,后續在 AGC 與項目中需進行相關配置。

3.服務端部署 applinking.json 文件

在服務端部署 applinking.json 文件至指定目錄,這里我們手動創建即可,確保能通過我們配置的域名地址:https://域名/.well-known/applinking.json 訪問到 applinking 配置,如何獲取應用ID可查看文章末尾。

{"applinking": {"apps": [{"appIdentifier": "你的應用id"}]}
}

4.AGC綁定域名?

在第 1?步開通 App Linking 后,選擇“應用鏈接-創建”,填入域名地址進行發布,發布后,若第 3 步的配置文件可正常訪問,等待幾分鐘后看到“成功”狀態,則代表域名配置成功。若出現其他錯誤狀態,需檢查配置文件是否可被訪問。

5.項目配置

進入項目的 entry 模塊下的 module.json5 文件,新增 App Linking 的 skills 配置。

?示例代碼:

{"entities": [// entities必須包含"entity.system.browsable""entity.system.browsable"],"actions": [// actions必須包含"ohos.want.action.viewData""ohos.want.action.viewData"],"uris": [{// scheme須配置為https"scheme": "https",// host須配置為關聯的域名,替換為你AGC配置的域名"host": "www.eeeo.cc",// path可選,表示域名服務器上的目錄或文件路徑,例如www.example.com/path1中的path1// 如果應用只能處理部分特定的path,則此處應該配置應用所支持的path,避免出現應用不能處理的path鏈接也被引流到應用中的問題,替換為你的二級path,用于精確分流"path": "share"}],// domainVerify須設置為true"domainVerify": true
}

6.組裝聚合鏈接

上述配置中,path用于精確分流,可用于指定二級地址,當前項目中配置的path為share,即當我們在鴻蒙設備中點擊鏈接 https://www.eeeo.cc/share 后會優先啟動應用,當我們需要傳遞參數時,可使用 ? + & 的形式拼接 KeyValue 即可。

https://www.eeeo.cc/share?pageId=2025&channel=web

7.解析聚合鏈接中的參數

通過聚合鏈接啟動應用后,參數會進入到 Ability 的?onCreate 生命周期的 Want.uri 中,若應用已經啟動,則會進入到?onNewWant?生命周期的 Want.uri 中。此時我們解析 uri 中的 KeyValue 即可。

示例代碼如下:

import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit';
import { url } from '@kit.ArkTS';export default class EntryAbility extends UIAbility {onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {// 從want中獲取傳入的鏈接信息。// 如傳入的url為:https://www.example.com/programs?action=showalllet uri = want?.uri if (uri) {// 從鏈接中解析query參數,拿到參數后,可根據自己的業務需求進行后續的處理。let urlObject = url.URL.parseURL(want?.uri);let pageId = urlObject.params.get('pageId')let channel= urlObject.params.get('channel')      }}
}

其他

如何獲取應用ID

?登錄AppGallery Connect,點擊“我的項目”,若已創建項目,可直接在首頁查看到應用ID。若未創建項目,手動創建后則會自動生成。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:
http://www.pswp.cn/news/904632.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/904632.shtml
英文地址,請注明出處:http://en.pswp.cn/news/904632.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

什么是變量提升?(形象的比喻)

當然!可以用幾個生活中的比喻來形象地解釋變量提升: ??1. 書架的占位符?? 想象你有一個書架,但還沒放書。 ? 變量提升(var): 你先在書架上貼了一個標簽(比如寫“我的書”)&…

C++面向對象編程入門:從類與對象說起(一)

C語言是面向過程,關注的是過程,分析出求解問題的步驟,通過函數調用逐步解決問題,而C面向的是對象,關注的是對象,將一件事拆解成多個對象,靠對象之間互交完成。 目錄 類的定義 類的兩種定義 …

uniapp tabBar 中設置“custom“: true 在H5和app中無效解決辦法

uniapp小程序自定義底部tabbar,但是在轉成H5和app時發現"custom": true 無效,原生tabbar會顯示出來 解決辦法如下 在tabbar的list中設置 “visible”:false 代碼如下:"tabBar": {"custom": true,//"cust…

SpringBoot學生操行評分系統源碼設計開發

概述 基于SpringBoot框架開發的學生操行評分系統完整項目,該系統采用主流技術棧開發,包含完善的評分管理功能模塊,是學校管理、教育培訓機構理想的數字化解決方案,非常適合作為設計參考或二次開發基礎項目。 主要內容 5.1 管理…

從代碼學習深度學習 - 單發多框檢測(SSD)PyTorch版

文章目錄 前言工具函數數據處理工具 (`utils_for_data.py`)訓練工具 (`utils_for_train.py`)檢測相關工具 (`utils_for_detection.py`)可視化工具 (`utils_for_huitu.py`)模型類別預測層邊界框預測層連接多尺度預測高和寬減半塊基礎網絡塊完整的模型訓練模型讀取數據集和初始化…

基于STM32的溫濕度光照強度仿真設計(Proteus仿真+程序設計+設計報告+講解視頻)

這里寫目錄標題 **1.****主要功能****2.仿真設計****3.程序設計****4.設計報告****5.下載鏈接** 基于STM32的溫濕度光照強度仿真設計(Proteus仿真程序設計設計報告講解視頻) 仿真圖Proteus 8.9 程序編譯器:keil 5 編程語言:C語言 設計編號…

SSH 服務部署指南

本指南涵蓋 OpenSSH 服務端的安裝、配置密碼/公鑰/多因素認證,以及連接測試方法。 適用系統:Ubuntu/Debian、CentOS/RHEL 等主流 Linux 發行版。 1. 安裝 SSH 服務端 Ubuntu/Debian # 更新軟件包索引 sudo apt update# 安裝 OpenSSH 服務端 sudo apt i…

《Python星球日記》 第46天:決策樹與隨機森林

名人說:路漫漫其修遠兮,吾將上下而求索。—— 屈原《離騷》 創作者:Code_流蘇(CSDN)(一個喜歡古詩詞和編程的Coder??) 專欄:《Python星球日記》,限時特價訂閱中ing 目錄 一、前言二、決策樹算法原理1. 決策樹簡介2. 決策樹的分裂準則(1) 信息熵與信息增益(2) 基尼不純…

Vue2:引入公共JS,通過this調用

tools.js // 圖片加上前綴 baseurl 是請求域名 img 是圖片路徑export function getimgurl(img) {return ${this.$baseurl}${img}}main.js import baseUrl from "/api/baseUrl.js" Vue.prototype.$baseurl baseUrlimport {getimgurl} from /api/tool.js; Vue.protot…

【Hot 100】 146. LRU 緩存

目錄 引言LRU 緩存官方解題LRU實現📌 實現步驟分解步驟 1:定義雙向鏈表節點步驟 2:創建偽頭尾節點(關鍵設計)步驟 3:實現鏈表基礎操作操作 1:添加節點到頭部操作 2:移除任意節點 步驟…

【Linux】swap交換分區管理

目錄 一、Swap 交換分區的功能 二、swap 交換分區的典型大小的設置 2.1 查看交換分區的大小 2.1.1 free 2.1.2 cat /proc/swaps 或 swapon -s 2.1.3 top 三、使用交換分區的整體流程 3.1 案例一 3.2 案例二 一、Swap 交換分區的功能 計算機運行一個程序首先會將外存&am…

【計算機網絡】用戶從輸入網址到網頁顯示,期間發生了什么?

1.URL解析 瀏覽器分解URL:https://www.example.com/page 協議:https域名:www.example.com路徑:/page 2.DNS查詢: 瀏覽器向DNS服務器發送查詢請求,將域名解析為對應的IP地址。 3.CDN檢查(如果有)&#…

架空輸電線巡檢機器人軌跡優化設計

架空輸電線巡檢機器人軌跡優化 摘要 本論文針對架空輸電線巡檢機器人的軌跡優化問題展開研究,綜合考慮輸電線復雜環境、機器人運動特性及巡檢任務需求,結合路徑規劃算法、智能優化算法與機器人動力學約束,構建了多目標軌跡優化模型。通過改進遺傳算法與模擬退火算法,有效…

根據窗口大小自動調整頁面縮放比例,并保持居中顯示

vue 項目 直接上代碼 圖片u1.png 是個背景圖片 圖片u2.png 是個遮罩 <template><div id"app"><div class"viewBox"><divclass"screen":style"{ transform: translate(-50%,-50%…

初學Python爬蟲

文章目錄 前言一、 爬蟲的初識1.1 什么是爬蟲1.2 爬蟲的核心1.3 爬蟲的用途1.4 爬蟲分類1.5 爬蟲帶來的風險1.6. 反爬手段1.7 爬蟲網絡請求1.8 爬蟲基本流程 二、urllib庫初識2.1 http和https協議2.2 編碼解碼的使用2.3 urllib的基本使用2.4 一個類型六個方法2.5 下載網頁數據2…

oracle 數據庫sql 語句處理過程

14.1SQL語句處理過程 在進行SQL語句處理優化前&#xff0c;需要先熟悉和了解SQL語句的處理過程。 每種類型的語句在執行時都需要如下階段&#xff1a; 第1步: 創建游標。 第2步: 分析語句。 第5步: 綁定變量。 第7步: t運行語句。 第9步: 關閉游標。 如果使用了并行功能&#x…

pm2 list查詢服務時如何通過name或者namespace進行區分

在 PM2 中&#xff0c;如果 pm2 list 顯示的所有服務名稱&#xff08;name&#xff09;相同&#xff0c;就無法直觀地區分不同的進程。這時可以通過 --namespace&#xff08;命名空間&#xff09; 或 自定義 name 來區分服務。以下是解決方案&#xff1a; 方法 1&#xff1a;啟…

[python] 函數基礎

二 函數參數 2.1 必備參數(位置參數) 含義: 傳遞和定義參數的順序及個數必須一致 格式: def func(a,b) def func_1(id,passwd):print("id ",id)print("passwd ",passwd) func_1(10086,123456) 2.2 默認參數 函數: 為函數的參數提供一個默認值,如果調…

超大規模SoC后仿真流程與優化

在超大規模SoC設計中,是否需要進行全芯片后仿真(Full-Chip Post-layout Simulation)取決于多個因素,包括設計復雜度、項目風險、資源限制以及驗證目標。以下是針對這一問題的系統性分析: 1. 全芯片后仿真的必要性 需要全芯片后仿真的場景 系統級交互驗證: 跨模塊信號交互…

深入理解 Docker 網絡原理:構建高效、靈活的容器網絡

在現代軟件開發中&#xff0c;Docker 已經成為了容器化技術的代名詞&#xff0c;廣泛應用于開發、測試和生產環境。Docker 使得開發者能夠將應用及其依賴打包成一個輕量級的容器&#xff0c;并通過 Docker 容器化技術來實現高效的部署與管理。 然而&#xff0c;在日常使用 Dock…