我們應用需要使用跨平台的分享鏈接,剛好華為AppGallery Connect的AppLinking服務滿足我們的使用場景。
關於集成步驟,官網的資料寫的有點多,我總結一下步驟
i. 創建應用,開通AppLinking服務
ii. 創建一個鏈接前綴
iii. 在Android項目里集成AppLinking SDK;
iv. 創建AppLinking
v. 接收AppLinking鏈接並且測試。
1、創建應用,開通AppLinking服務
(1)在AGC控制台,創建應用, 或者使用已有的應用),在界面上找到 我的項目 -> 增長–>AppLinking,點擊立即開通 。
(2)開通好以后,記得去 我的項目 -> 項目設置–> 常規 下面,下載agconnect-services.json文件到你的Cocos項目的setting路徑下。
2、創建一個鏈接前綴
在剛剛開通的AppLinking下面,點擊鏈接前綴頁簽,點擊添加鏈接前綴,根據需要創建一個現網唯一的前綴。
系統會自動幫你檢測,保證你域名的全網唯一。
3、在Cocos項目里面集成AppLinking SDK
首先需要在Cocos Creator的你的項目里開通AppLinking服務:
(1)在右側的Service面板找到AppLinking,進去先關聯一個應用,
如果沒有應用,需要先去Cocos的控制台先創建一個:按需選擇,隨便創建一個
創建好以后,再返回Cocos Creator界面,刷新以后,選擇剛剛創建的應用,點擊激活
4、創建AppLinking
有兩種方式創建AppLinking一種是直接在AGC界面上創建,另外一個是在Android項目里面用代碼的API接口創建:
4.1 AGC界面創建AppLinking:
(1)界面入口如下:點擊創建AppLinking,然后根據步驟一步一步創建即可。
(2)默認的深度鏈接配置,我就直接隨意找了一個華為官網的。注意Android的深度鏈接的配置。
(3)安卓鏈接行為,配置為:在Android應用中打開。
創建好以后,就可以復制下來使用了
4.2 端側代碼創建AppLinking
(1)界面布局:
創建兩個按鈕,一個用來創建AppLinking,一個用來分享AppLinking。在加上一個Label控件來顯示創建的鏈接
(2)在代碼里面創建AppLinking鏈接:
- 先把之前創建的鏈接前綴放到代碼里。
- 創建一個短鏈接:
buildLink:function() {
console.log("begin to build Applinking");
let linkInfo = new huawei.agc.applinking.AppLinking();
let linkBuilder = new huawei.agc.applinking.Builder();
linkBuilder.setUriPrefix(PREFIX_URL);
linkBuilder.setDeepLink(DEEP_LINK);
linkInfo.setBuilder(linkBuilder);
huawei.agc.applinking.appLinkingService.once(huawei.agc.applinking.AGC_APP_LINKING_EVENT_LISTENER_NAME.BUILD_SHORT_LINK, (data) => {
if (data.code === 1) {
console.log('build short link success:', data.data);
this._shortLink = data.data;
}
}, this);
huawei.agc.applinking.appLinkingService.buildShortLink(linkInfo);
},
- 將剛剛創建鏈接分享出去:
sharebutton:function () {
console.log("this is shortLink: ",this._shortLink);
huawei.agc.applinking.appLinkingService.shareLink(this._shortLink);
},
5、接收相關AppLinking
兩個步驟,一個是配置過濾器,一個是配置getAppLinking方法。
(1)配置manifest文件:注意這里是將DeepLink的域名的Scheme配置進去:
例如我的DeepLink是 DEEP_LINK = 'https://consumer.huawei.com/cn/';
那么manifest文件就需要這樣配置
(2)在Start的主入口里面,配置getAppLinking,獲取並且顯示鏈接
huawei.agc.applinking.appLinkingService.on(huawei.agc.applinking.AGC_APP_LINKING_EVENT_LISTENER_NAME.RECEIVE_LINK_CALLBACK, (data) => {
if (data.code === 1) {
console.log('receive deepLink:', data.getDeepLink());
}
}, this);
huawei.agc.applinking.appLinkingService.getAppLinking();
6、打包測試,查看現象。
(1)應用運行以后,點擊Create按鈕,創建一個AppLinking鏈接,查看日志是創建成功的。
(2)點擊Share按鈕,將AppLinking鏈接分享到便簽里面暫存,然后,在便簽里點擊鏈接,通過瀏覽器打開。瀏覽器可以直接打開應用,測試完成。
(從界面上創建的AppLinking也是一樣的,可以先復制到便簽里面,然后通過便簽點擊測試)
(3)相關的日志如下:
7、總結
集成簡單,SDK依賴體積小,可以實現跨平台的分享,Android和iOS都可以支持,不需要在不同的平台做不同的適配了,節約工作量。
運營做推廣可以再AGC界面上創建,開發做分享功能可以在端側用代碼創建,簡直完美。
欲了解更多詳情,請參見:
華為AGC AppLinking服務開發文檔:https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-applinking-introduction
Cocos 的AppLinking服務開發文檔:https://docs.cocos.com/creator/manual/zh/cocos-service/agc-applinking.html
原文鏈接:
https://developer.huawei.com/consumer/cn/forum/topic/0201406707373400282?fid=0101271690375130218
作者:Jessyyyyy