开发者可以通过创建深度链接来将用户转到应用中的特定页面。如果用户已在设备上安装您的应用,SE SDK 会转向链接中指定的页面。用户通过链接打开应用后,SDK 就可以读取深度链接数据了,具体步骤如下:
注:此方法仅适用于iOS和Android
查看 SolarEngine 后台配置
universal link 示例为:test1.link.solar-engine.com

URL Scheme 示例为:test1://
配置深度链接
要配置深度链接,请在 Unity Editor inspector 窗口中添加 URL 方案:具体步骤如下:
1、点击[SolarEngineSDK-->SDK Edit Settings]
2、将DeepLink设置为true
DEEP LINKING模块介绍
iOS:
iOS URL Identifie: 唯一标识用户自定义的URL Scheme。 例:solarengine
iOS URL Schemes: 自定义的Scheme的名称,不需要加入「://」。 例:test1
iOS Universal Links Domains:通用链接,请务必从链接开头移除协议 (例如
https://
或applinks:
)例: test1.link.solar-engine.comAndroid:
Android URL Schemes:自定义的Scheme的名称,不需要加入「://」。 例:test1
iOS 深度链接:
1、填写您的identifier、url Schemes、universalLinksDomains
2、导出Xcode项目检查,URL Scheme和universalLinksDomains是否已经添加成功
面板截图
例:
Android 深度链接:
1、请在 Android URI Schemes 界面添加方案。SDK 会将必要的 XML 标签添加至您的 AndroidManifest.xml
。
传递Deeplink Url
Android SDK依赖您传入配置Deeplink Url,上报唤醒事件并且给deeplink回调,请调用SolarEngine.Analytics.handleDeepLinkUrl(url);
方法传递给SDK
//在Unity Editor 2020.1、2020.2、2019.4 版本上开发者可以通过此方式获取deeplink url并传递给SDK
Application.deepLinkActivated += handleSchemeUrl;
//其他Unity版本
handSchemeUrl(Application.absoluteURL);
private void handleSchemeUrl(string url)
{
//将url传递给SDK,注意此步骤一定要在SDK初始化之前执行
SolarEngine.Analytics.handleDeepLinkUrl(url);
}
设置Deeplink回调
当SDK解析完Deeplink Url后会回调,您可以使用回调参数处理一些业务逻辑
注:回调方法请在初始化SDK前设置,否则会接受不到回调。
方法示例
public static void deeplinkCompletionHandler(SESDKDeeplinkCallback callback);
参数说明:
参数名称 | 参数含义 | 参数类型 | 是否必传 |
callback |
deeplink回调
|
SESDKDeeplinkCallback | 是 |
调用示例:
private void Start()
{
Analytics.deeplinkCompletionHandler(deeplinkCallback);
//在Unity Editor 2020.1、2020.2、2019.4 版本上开发者可以通过此方式获取deeplink url并传递给SDK
// Application.deepLinkActivated += handleSchemeUrl1;
//如果是在2022版本上开发者可以通过以下方式获取deeplink url并传递给SDK
handleSchemeUrl(Application.absoluteURL);
SolarEngine.Analytics.initSeSdk(AppKey, seConfig);
}
private void deeplinkCallback(int code, Dictionary<string, object> data)
{
if (code == 0)
{
Debug.Log("SEUnity: deeplink 回调成功");
string from = (string)data["from"];
string sedpLink = (string)data["sedpLink"];
string turlId = (string)data["turlId"];
Dictionary<string, object> customParams = (Dictionary<string, object>)data["customParams"];
} else {
Debug.Log("SEUnity: deeplink 回调失败");
}
}
private void handleSchemeUrl(string url)
{
//将url传递给SDK,注意此步骤一定要在SDK初始化之前执行
SolarEngine.Analytics.handleDeepLinkUrl(url);
}
上报deeplink唤醒事件
开发者可以通过上报 deeplink 唤醒成功事件来进行拉活归因和业务分析。
注:如果使用了SDK的deeplink功能,则无需调用 trackAppReEngagement方法
方法示例:
public static void trackAppReEngagement(Dictionary<string, object> customAttributes)
调用示例:
Dictionary<string,object> attributes = getCustomProperties();
SolarEngine.Analytics.trackAppReEngagement(attributes);