華為AppGallery常用跳轉與連結詳解
當前華為應用市場(
AppGallery,以下簡稱AG)的功能越來越全,頁面也越來越多,隨著而來的,是對於個各種頁面跳轉的需求越來越旺盛。
但是,華為 AppGallery所提供的連結的種類、功能、使用場景越來越多,不熟悉的人看到這各種連結,肯定會非常頭大。下面根據我的使用是理解,做了一些AppGallery常用連結與跳轉場景的整理,僅供大家參考。
下面各種連結的介紹,主要按照使用場景來劃分,如有錯誤,還請大家指正。
1 、跳轉到AG 首頁
典型使用場景: 需要從開發者應用內,拉起跳轉到應用市場首頁,讓使用者自行搜尋相關的應用或者活動。
使用方法: 使用 Intent的action方法,具體動作為:
action:com.huawei.appmarket.intent.action.MainActivity
相關程式碼示例 :
public void launchAGHomePage() { Intent intent = new Intent("com.huawei.appmarket.intent.action.MainActivity"); startActivity(intent); }
2 、跳轉到AG 應用詳情頁
2.1 應用內透過Intent 跳轉
典型使用場景: 應用內拉起跳轉到應用詳情頁,應用使用者進行評分評論等操作。
使用方法: 使用 Intent的action方法,具體可分為兩類:
1、 透過 APPID:
action:com.huawei.appmarket.appmarket.intent.action.AppDetail. withid setPackage("com.huawei.appmarket"); name: “appId”, value: “C100170981”
2、透過包名:
action:com.huawei.appmarket.intent.action.AppDetail setPackage("com.huawei.appmarket"); name: “APP_PACKAGENAME”, value: “com.huawei.browser”
注意點: 如果使用方式 1即APPID的方式,比使用包名的方式,action中多了appmarket以及withid引數。
引數介紹
相關程式碼示例 :
// 1、透過APPID:
public void launchAppDetilPage1() { Intent intent = new Intent("com.huawei.appmarket.appmarket.intent.action.AppDetail.withid"); intent.setPackage("com.huawei.appmarket"); intent.putExtra("appId", "C100170981"); startActivity(intent); }
// 2、透過包名packageName”
public void launchAppDetilPage2() { Intent intent = new Intent("com.huawei.appmarket.intent.action.AppDetail"); intent.setPackage("com.huawei.appmarket"); intent.putExtra("APP_PACKAGENAME", "com.huawei.browser"); startActivity(intent); }
2.2 透過URL 跳轉
典型使用場景: 使用者透過分享的 URL連結等場景,直接點選URL跳轉到應用詳情頁。
具體方法: 連結地址為:
hiapplink://com.huawei.appmarket?appId=yourAppID&channelId=yourChannelId&referrer=yourReferrer
相關程式碼示例 :
public void launchAGHomePage() { Intent intent = new Intent("com.huawei.appmarket.intent.action.MainActivity"); startActivity(intent); }
2 、跳轉到AG 應用詳情頁
2.1 應用內透過Intent 跳轉
典型使用場景: 應用內拉起跳轉到應用詳情頁,應用使用者進行評分評論等操作。
使用方法: 使用 Intent的action方法,具體可分為兩類:
1、 透過 APPID:
action:com.huawei.appmarket.appmarket.intent.action.AppDetail. withid setPackage("com.huawei.appmarket"); name: “appId”, value: “C100170981”
2、透過包名:
action:com.huawei.appmarket.intent.action.AppDetail setPackage("com.huawei.appmarket"); name: “APP_PACKAGENAME”, value: “com.huawei.browser”
注意點: 如果使用方式 1即APPID的方式,比使用包名的方式,action中多了appmarket以及withid引數。
引數介紹
相關程式碼示例 :
// 1、透過APPID:
public void launchAppDetilPage1() { Intent intent = new Intent("com.huawei.appmarket.appmarket.intent.action.AppDetail.withid"); intent.setPackage("com.huawei.appmarket"); intent.putExtra("appId", "C100170981"); startActivity(intent); }
// 2、透過包名packageName”
public void launchAppDetilPage2() { Intent intent = new Intent("com.huawei.appmarket.intent.action.AppDetail"); intent.setPackage("com.huawei.appmarket"); intent.putExtra("APP_PACKAGENAME", "com.huawei.browser"); startActivity(intent); }
2.2 透過URL 跳轉
典型使用場景: 使用者透過分享的 URL連結等場景,直接點選URL跳轉到應用詳情頁。
具體方法: 連結地址為:
hiapplink://com.huawei.appmarket?appId=yourAppID&channelId=yourChannelId&referrer=yourReferrer
注意點: 斜體加粗部分為手動修改的變數,其餘為固定值。
引數介紹
相關程式碼示例 :
1. 透過APPID
public void launchAppDetilWithURL1() { String text1 = "hiapplink://com.huawei.appmarket?appId=C100170981&channelId=HwBrowserSearch&referrer=Keywords"; Uri uri = Uri.parse(text1); Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent); }
3 、market 拉起所有本地商店並跳轉詳情頁
典型使用場景: 傳入包名或者 APPID,拉起裝置上所有的應用商店,讓使用者自行選擇開啟方式,即引導使用者選擇使用哪個應用市場拉起。選擇好開啟的應用商店後可以直接跳轉到應用的詳情頁。
使用方法: 透過傳入 scheme 為 market:// 的連結,Android支援的標準的market協議,可拉起Android裝置上的所有應用商店。有如下兩種方式:
1、market://details?id= pkgName // 支援所有商店
2、appmarket://details?id= pkgName // 僅支援華為應用商店。
3、market://com.huawei.appmarket.applink?appId= APPID" // 僅支援華為應用商店。
注意點: 方法 1透過 market://傳入包名的方式,為Android標準方法, 在所有應用商店中均可使用,例如GP,應用包等;。
引數介紹
相關程式碼示例 :
// 1、方式1:market:// + 包名
public void launchAppDetilOnMarket1() { String text1 = "market://details?id=com.huawei.browser"; Uri uri = Uri.parse(text1); Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent); }
// 2、方式2:appmarket:// + 包名
public void launchAppDetilOnMarket2() { String text1 = "appmarket://details?id=com.huawei.browser"; Uri uri = Uri.parse(text1); Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent); }
3、方式3:market:// + 華為商店 + APPID
public void launchAppDetilOnMarket3() { String text1 = "market://com.huawei.appmarket.applink?appId=C100170981"; Uri uri = Uri.parse(text1); Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent); }
4 、 連結到web AG 的應用詳情頁
典型使用場景: 應用的官網或者 web投放等場景,使用者點選web連結,直接拉起AppGallery中應用的詳情頁面,引導使用者安裝。
使用方法:
-
方法 1: YOUR_APPID
-
方法 2: pkgName
-
方法 4: YOUR_APPID?pkgName= pkgName
-
方法 3: YOUR_APPID ?locale= LOCALE &shareTo= WAP&shareFrom= channeID
引數介紹
示例 :
// 1、最短連結:透過APPID
C100170981
// 2、透過包名
com.huawei.browser
// 3、APPID與包名組合使用
C100170981?pkgName=com.huawei.browser
// 4、詳細連結並且加上可選引數(不常用,一般在圖章中使用)
C100170981?locale=en_US&shareTo=wap&shareFrom=52656
5 、圖章連結到AG 的應用詳情頁
圖章連結,簡單來說,就是有一個 AppGallery的圖,點選這個圖,可以超連結到華為應用市場的應用詳情頁。應用的營銷人員,可以直接將這個圖用於投放(其連結的本質,與上述方法4的web連結相同)。
典型使用場景: 對於與上架的應用,營銷人員希望透過圖章連結,在官網上導流到應用商店,或者直接用於投放。
建立方法: 在 AGC首頁 -> 點選“應用內分發”-> 即可在應用內分發的介面“製作圖章”, 即可為已上架的應用製作圖章連結。
注意點: 僅已上架的應用才能製作圖章,並且每個應用只能建立一個圖章;如果應用已建立圖章,則只能在 “圖章查詢”中檢視。
使用指南:
圖章建立以後,即可在“圖章查詢”頁籤中,檢視當前已經建立的圖章, 你可以在該介面,下載圖章或者複製連結:
-
下載圖章:下載的結果是一個 png圖片,可以掛在官網或者營銷H5頁面裡。
-
新增連結:用於標識不同的渠道,例如: Facebook,baidu等
-
複製連結:可根據不同的渠道下載不同的連結
使用示例:
// 1、典型的連結
C100170981?channelId=baidu&referrer=TestBaidu&id=fa09e0f0f3de489386a7180d7b4b3585&s=6E90164FC0CED39CD11D9BE25BE6D1B333FEDCCBCD90A86F29A8DA2400AA4163&detailType=0&v =
// 2、使用典型的圖章,在網站中嵌入該圖章,點選即可跳轉到應用詳情下載頁,使用例項如下:
6 、跨平臺的App Linking 連結
App Linking 是華為AppGallery Connect推出的一項新的服務,大家知道和接觸的比較少,因此下面的介紹會更加詳細並且更加通俗,幫助大家更好的理解這個
AppLinking是什麼: App Linking就是一個可以跨平臺(Android,iOS,PC-Browser)使用的連結,對標於Firebase的Dynamic Link功能,幫助應用開發者快速構建跨平臺的分享連結。
AppLinking用在哪: 比如說一個應用在 Android和iOS都有釋出,此時有個促銷活動需要各個平臺的使用者參與;該活動的邀請連結,在Android和iOS上都要能夠生效,並且對於在PC瀏覽器開啟的使用者,也能夠瀏覽相應的活動H5頁面。
使用 AppLinking後有什麼效果:
-
手機上已安裝該應用: AppLinking連結將自動拉起應用,並且跳轉到指定頁面,
-
手機上未安裝該應用: 連結將提示你透過應用市場開啟,可配置為華為 AppGallery或者本地應用商店,下載並安裝好應用以後,仍可開啟指定頁面。
AppLinking怎麼用: AppLinking有三種建立方式:適用於不同的場景:
-
AGC介面建立: 在 AGC首頁 -> 點選“我的專案”並選擇相應的專案-> 在左側選單欄找到“增長”-“ App Linking”。在AppLinking介面先建立連結字首,然後在建立AppLinking.
該方式主要給不懂程式碼的營銷同事使用,但裡面使用到的深度連結地址,還是需要跟開發同事獲取。
-
Android應用內建立: 在 Android應用內,整合AppLinking SDK,並且透過build.buildAppLinking()等相關程式碼進行連結的實時建立。
該方式主要提供給 Android使用者的實時建立,比如應用內的活動頁面,新增一個分享按鈕,點選分享按鈕,就建立一個AppLinking連結。
-
iOS應用內建立: 和 Android應用一樣,這個就是在iOS應用內,使用程式碼進行連結建立。
該方式主要提供給 iOS使用者,讓iOS使用者在應用透過程式碼實時建立並且分享。
非華為手機上怎麼用:
AppLinking是跨平臺的,也即適用於所有Android和iOS,那肯定很多同學關心“在非華為的Android手機上怎麼使用AppLinking?”這個問題,下面這方面問題做相應的解答:
1、 非華為手機能否使用 AppLinking?—— App Linking不依賴HMS Core,可以在所有Android裝置上使用,GMS和HMS裝置通用。
2、 應用未安裝且手機上未安裝華為應用市場, AppLinking怎麼用? —— 對於沒有安裝AppGallery的Android手機,可以將AppLinking配置為 本地應用市場開啟,這樣Android系統就會引導讓你選擇透過哪個商店商店開啟,只要你的包名一致,可以任何商店的應用詳情頁。
使用示例
// 1、典型的連結字首
// 其中photoplaza為應用唯一引數,drcn.agconnect.link為系統固定引數。
// 2、典型的AppLinking連結:
/vm3Y
// 3、 典型的Android建立AppLinking
private static final String DOMAIN_URI_PREFIX = "";private static final String DEEP_LINK = "https://developer.huawei.com";public void createAppLinking() { AppLinking.Builder builder = new AppLinking.Builder() .setUriPrefix(DOMAIN_URI_PREFIX) .setDeepLink(Uri.parse(DEEP_LINK)) .setAndroidLinkInfo(new AppLinking.AndroidLinkInfo.Builder().build()); String LongAppLinking = builder.buildAppLinking().getUri().toString(); }
// 4、典型的iOS建立AppLinking
- (IBAction)CreatLink:(id)sender {AGCAppLinkingComponents *component = [[AGCAppLinkingComponents alloc] init];component.uriPrefix = @""; component.deepLink = @"https://www.developer.huawei.com"; component.iosBundleId = @"com.lucky.agc.demo"; component.iosDeepLink = @"agckit://ios/detail"; self.longlink.text = component.buildLongLink.absoluteString;
7 、相關參考連結
App Linking官方文件: https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-applinking-introduction-0000001054143215
新增歸因引數文件: https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/appgallery-referrer-createlink
原作者:Mayism
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69970551/viewspace-2775024/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 硬連結與軟連結詳解
- 超連結的跳轉位置
- JavaScript 阻止超連結跳轉JavaScript
- Android頁面跳轉與返回機制詳解Android
- (一)Chrome書籤連結跳轉Chrome
- 點選連結取消跳轉效果
- JavaScript 阻止超連結的跳轉JavaScript
- JavaScript 阻止擊超連結的跳轉JavaScript
- 常用的HTML標籤詳解與總結HTML
- Java單連結串列反轉圖文詳解Java
- 翻轉連結串列常用寫法
- 軟連結和硬連結詳解
- Linux常用基本命令(軟連結與硬連結 )Linux
- 網址連結跳轉外部安全提醒程式碼
- 詳解華為錢包
- 直播app原始碼,跳轉站外連結或平臺內部跳轉頁面APP原始碼
- 【eslint 外掛開發】禁用 location 跳轉外部連結EsLint
- [提問交流]這要如何實現跳轉連結
- 點選連結跳轉到應用指定頁面
- 直播平臺開發,實現點選跳轉外部連結時的跳轉步驟
- WOMBO入駐AppGallery,為華為裝置帶來AI對口型的樂趣APPAI
- PHP獲取動態跳轉後的真實連結PHP
- Hash連結串列轉換為紅黑樹,和樹轉換為連結串列的條件
- Flutter 路由跳轉及傳值詳解(Navigator的使用)Flutter路由
- 詳解vue 路由跳轉四種方式 (帶引數)Vue路由
- Activity建立與跳轉
- 資料結構:跳躍連結串列資料結構
- 連結串列中的跳錶小結
- HTML常用基礎標籤:圖片與超連結標籤全解!HTML
- 跳錶 | 會跳的連結串列真的非常diao
- 微信跳轉外部瀏覽器下載app詳解瀏覽器APP
- Webview之常用App跳轉URL Schemes整理WebViewAPPScheme
- 反轉連結串列(遞迴與棧)遞迴
- vue日記②之相容各種情況的可跳轉連結Vue
- 頁面連結跳轉--指定協議,半協議,無協議協議
- 常用負載均衡詳解(圖文總結)負載
- 【資料結構】連結串列(單連結串列實現+詳解+原碼)資料結構
- 既然已經有陣列了,為什麼還要連結串列?JS連結串列(Linked-list)詳解陣列JS