背景
項目組游戲希望接入華為的應用外支付功能,在華為應用市場的本游戲詳情頁點擊商品支付,通過DeepLink鏈接從華為應用市場跳轉至本游戲支付詳情頁,傳遞支付商品ID進行購買。
為了更好的接入,這里先做了個功能驗證,同步分享給大家了。
實現方式
1. manifest中Activity配置
在Activity中配置 intent-filter過濾器
<data android:scheme="agpms" android:path="/product/pay" android:host="com.sxx.huawei"/>
拼接之后的請求地址是:agpms://com.sxx.huawei/product/pay
鏈接格式要求如下文檔格式 (如不按照此格式,營銷地址上架審核會不通過) :
配置如圖:
2. 跳轉代碼實現(此處是從外部應用中打開deeplink地址)
理論上應該在華為應用市場APP中測試打開這個地址的,但是當前因為我們游戲沒有上架,且華為應用市場APP側也無這樣的測試環境,因此為了看下效果,自己弄了一個其他應用。
Intent intent = new Intent();
intent.setAction("com.google.open02");
intent.addCategory("android.intent.category.DEFAULT");
intent.setData(Uri.parse("agpms://com.sxx.huawei/product/pay?producid=TestProduct503"));
startActivity(intent);
agpms://com.sxx.huawei/product/pay?producid=TestProduct503
問號后面參數攜帶一般是 key=value&key1=value1 格式。
代碼截圖如下:
如上代碼:只攜帶了一個字段就是 producid
3. 跳轉至支付詳情頁面后解析deeplink地址中攜帶的字段參數
- 若跳轉之前詳情頁面未打開,則需要在Activity生命周期onCreate中獲取intent對象解析data.
- 若跳轉之前詳情頁面未打開,則需要在Activity生命周期onCreate中獲取intent對象解析data.
代碼截圖如下:
如上代碼獲取到data數據中商品ID之后,即可發起HMS SDK支付接口拉起支付頁面。
FAQ
Deeplink 相關配置完成之后還是無法打開?
一般是由於跳轉時拼接的地址中的scheme,host,path 和配置中的不一致導致的,參考上面文檔自檢下。
原文鏈接:https://developer.huawei.com/consumer/cn/forum/topic/0204405033183830230?fid=18
原作者:AppGallery Connect