背景
項目組游戲希望接入華為的應(yīng)用外支付功能,在華為應(yīng)用市場的本游戲詳情頁點擊商品支付,通過DeepLink鏈接從華為應(yīng)用市場跳轉(zhuǎn)至本游戲支付詳情頁,傳遞支付商品ID進(jìn)行購買。
參考文檔:https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/appgallerykit-devguide-game#h1-1589804284330
為了更好的接入,這里先做了個功能驗證,同步分享給大家了。
實現(xiàn)方式
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. 跳轉(zhuǎn)代碼實現(xiàn)(此處是從外部應(yīng)用中打開deeplink地址)
理論上應(yīng)該在華為應(yīng)用市場APP中測試打開這個地址的,但是當(dāng)前因為我們游戲沒有上架,且華為應(yīng)用市場APP側(cè)也無這樣的測試環(huán)境,因此為了看下效果,自己弄了一個其他應(yīng)用。
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
問號后面參數(shù)攜帶一般是 key=value&key1=value1 格式。
代碼截圖如下:
如上代碼:只攜帶了一個字段就是 producid
3. 跳轉(zhuǎn)至支付詳情頁面后解析deeplink地址中攜帶的字段參數(shù)
若跳轉(zhuǎn)之前詳情頁面未打開,則需要在Activity生命周期onCreate中獲取intent對象解析data.
若跳轉(zhuǎn)之前詳情頁面未打開,則需要在Activity生命周期onCreate中獲取intent對象解析data.
代碼截圖如下:
如上代碼獲取到data數(shù)據(jù)中商品ID之后,即可發(fā)起HMS SDK支付接口拉起支付頁面。
FAQ
Deeplink 相關(guān)配置完成之后還是無法打開?
一般是由于跳轉(zhuǎn)時拼接的地址中的scheme,host,path 和配置中的不一致導(dǎo)致的,參考上面文檔自檢下。