快速集成華為AGC-AppLinking服務-unity平台
我們應用需要使用跨平台的分享鏈接,剛好華為AppGallery Connect的AppLinking服務滿足我們的使用場景。
關於集成步驟,官網的資料寫的有點多,我總結一下步驟:
-
創建應用,開通AppLinking服務並且創建鏈接簽注。
-
在Unity項目里集成AppLinking SDK。
-
在Unity里導入HuaweiService的package。
-
創建AppLinking。
-
接收AppLinking鏈接並且測試。
1、開通AppLinking服務& 創建鏈接前綴
1、在AGC控制台,創建應用, 或者使用已有的應用),在界面上找到 我的項目 -> 增長–>AppLinking,點擊立即開通 。

2、在剛剛開通的AppLinking下面,點擊鏈接前綴頁簽,點擊添加鏈接前綴,根據需要創建一個現網唯一的前綴。
系統會自動幫你檢測,保證你域名的全網唯一。


2、在unity項目里面集成AppLinking SDK
首先需要在unity項目里開通配置好安卓環境:
1、 在Edit-Project Setting-Player-Publish Setting中啟用Android的自定義清單和gradle

注意:進行此步操作前需要先在Unity Hub中安裝Android編譯依賴。如下圖:

2、在AGC我的項目 -> 項目設置–> 常規 下面,下載agconnect-services.json文件到你的unity項目的Assets / Plugins / Android路徑下。
3、在Other Setting中配置包名:注意需要和AGC官網的包名保持一致:

4、配置項目級gradle,此處對應Assets\Plugins\Android路徑下的baseProjectTmeplate.gradle文件,添加如下內容
allprojects {
buildscript {
repositories {
maven { url 'https://developer.huawei.com/repo/' }
}
}
repositories {
maven { url 'https://developer.huawei.com/repo/' }
}
}
5、配置應用級gradle,此處對應Assets\Plugins\Android路徑下的LauncherTmeplate.gradle文件,添加如下內容:
dependencies {
implementation 'com.huawei.agconnect:agconnect-applinking:1.4.1.300'
}
3、在Unity里導入HuaweiService的package;
1、先將對應的package導入到工程里:可以直接在unity的window-asset-store中,直接搜索huawei,下載獲取。或者可以直接使用此鏈接下載:
2、下載完成后,在Unity中點擊assets – Import package,然后,然后選擇需要的包,點擊Import即可


4、創建AppLinking
有兩種方式創建AppLinking一種是直接在AGC界面上創建,另外一個是在unity項目里面用代碼的API接口創建:下面就只介紹在Unity 項目中創建了。
1、創建按鈕
點擊GameObject- UI –Button創建兩個按鈕:按鈕Text分別為create和share,點擊按鈕,然后在右側選擇 Add Component, 創建並且添加一個Script文件。

2、添加創建鏈接的方法:
在testapp的Script文件中,並且添加如下方法:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using HuaweiService.AppLinking;
using HuaweiService;
public class testApp : MonoBehaviour
{
private const string URI_PREFIX = "https://testcocos1203.drcn.agconnect.link";
private const string DEEP_LINK = "https://developer.huawei.com/consumer/cn/service/josp/agc/index.html";
void Start()
{
}
void Update()
{
}
public void createLongLink() {
AGConnectAppLinking.getInstance();
AppLinking.Builder builder = createBuilder();
Uri applinkingUri = builder.buildAppLinking().getUri();
var link = applinkingUri.toString();
Debug.Log ("AppLinking create" + link);
GUIUtility.systemCopyBuffer = link;
}
public AppLinking.Builder createBuilder(){
return AppLinking.newBuilder()
.setUriPrefix(URI_PREFIX)
.setDeepLink(Uri.parse(DEEP_LINK))
.setAndroidLinkInfo(
AppLinking.AndroidLinkInfo.newBuilder()
.build());
}
public void OpenLink()
{
var activity = new Activity();
var intent = new Intent();
intent.setData(Uri.parse(GUIUtility.systemCopyBuffer));
activity.startActivity(intent);
}
}
3、方法與按鈕綁定:
回到Unity界面,點擊按鈕,然后在按鈕右側找到click,添加對應的控件:


同樣的方法,為share按鈕也添加按鈕方法。
注意:可以將create按鈕創建的.cs文件拖動到share按鈕右側面板的“add component”區域進行復用,添加click事件。
5、接收相關AppLinking
兩個步驟,一個是配置過濾器,一個是配置getAppLinking方法。
1、 配置manifest文件:注意這里是將DeepLink的域名的Scheme配置進去:
例如我的DeepLink是 DEEP_LINK = 'https://developer.huawei.com/cn/';
那么manifest文件就需要這樣配置

6、打包測試,查看現象。
1、應用運行以后,點擊Create按鈕,創建一個AppLinking鏈接, 然后點擊share按鈕,將按鈕分享到瀏覽器。

2、 此時瀏覽器可以直接拉起應用,表示鏈接使用正常。

7、總結
集成簡單,SDK依賴體積小,可以實現跨平台的分享,Android和iOS都可以支持,不需要在不同的平台做不同的適配了,節約工作量。
運營做推廣可以再AGC界面上創建,開發做分享功能可以在端側用代碼創建,簡直完美。
參考文檔:
華為AGC AppLinking服務開發文檔:https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-applinking-introduction
Unity的AppLinking服務開發文檔: https://docs.unity.cn/cn/Packages-cn/com.unity.hms@1.3/manual/applinking.html#integrating-huawei-analytics-kit
Unity Editor安裝和Apk打包:https://developer.huawei.com/consumer/cn/forum/topic/0204405811539110247?fid=18
原文鏈接:https://developer.huawei.com/consumer/cn/forum/topic/0201428957991340017?fid=0101271690375130218
原作者:Mayism
