華為AppGallery常用跳轉與連結詳解

華為開發者論壇發表於2021-06-02

當前華為應用市場( 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 、相關參考連結

圖章連結官方文件: https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/appgallery-agd-introduction-stamped

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

獲取歸因資訊: https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/appgallery-referrer-develop


原文連結: https://developer.huawei.com/consumer/cn/forum/topic/0201448086867860655?fid=0101271690375130218&pid=0301448086867860778

原作者:Mayism

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69970551/viewspace-2775024/,如需轉載,請註明出處,否則將追究法律責任。

相關文章