菜单

设置深度链接

开发者可以通过创建深度链接来将用户转到应用中的特定页面。如果用户已在设备上安装您的应用,SE SDK 会转向链接中指定的页面。用户通过链接打开应用后,SDK 就可以读取深度链接数据了,具体步骤如下:

1.1 配置 URI Scheme

配置 AndroidManifest.xml

如果用户已经安装了您的应用,那么在与包含深度链接信息的链接互动时,应用就会打开。SE SDK 能够解析深度链接信息,在应用中使用。要设置深度链接,请选择一个唯一的 Scheme 名称 。

开发者可以进行设置,在用户与深度链接互动时启动特定活动。为此请进行下列操作:

  1. 在您的 AndroidManifest.xml 文件中为活动指定 Scheme 名称 。
  2. 向活动定义添加一个 intent-filter 节点。
  3. 在 intent-filter 节点中添加一个包含 Scheme 名称的 android:scheme 数据节点。

以下示例展示了如何在AndroidManifest.xml文件中设置名为 MainActivity 的活动,并以 Scheme 名称 sedemo 将其打开。

<activity
       android:name=".activity.MainActivity">
       <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
         <data android:scheme="sedemo" />
     </intent-filter>
</activity>

如果用户点击了如下连接,且该参数中包含您的 Scheme 名称 ,并且定义了其接受 URL Scheme 协议格式为scheme://yourhost:port/path,那么活动就会触发

示例 :sedemo://lionmobo.com/goods_detail?param1=value1&param2=value2

 

开发者需要在APP的 onCreate 或 onNewIntent 方法,传递活动 intent 对象中的深度连接信息应用启动,且上述方法之一被调用后,您就可以读取深度链接内容了。然后您可以在应用的其他位置访问这些信息。

在 onCreate 或 onNewIntent 方法中调用 getData() 方法,以提取深度链接信息。

通过 onNewIntent 方法:
@Override
protected void onNewIntent(Intent intent) {
   super.onNewIntent(intent);

   Uri data = intent.getData();
   // data.toString() -> deeplink具体信息.
}
通过 onCreate 方法:
@Override
protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);

   Intent intent = getIntent();
   Uri data = intent.getData();
   // data.toString() -> deeplink具体信息.
}

1.2 配置App Links

根据App Links的官方定义,App Links是一种特殊的DeepLink(与URL Scheme调起App的实现方式不同),当点击你的网站链接的时候能够调起你的App,不出现选择界面, 也不会出现类似URL Scheme的重复问题,此种方式不支持在浏览器中调起

检查 assetlinks.json

在浏览器中输入https://{domain}/.well-known/assetlinks.json, 查看是否能正常下载assetlinks.json文件
其中,domain是您再SE后台配置好的域名,如:tlink.solar-engine.com

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "开发者应用唯一包名",
    "sha256_cert_fingerprints":
    ["开发者应用的sha256_cert_fingerprints"]
  }
}]

配置 AndroidManifest.xml

<activity
            android:name=".activity.SplashActivity">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data
                    android:scheme="https"
                    android:host="开发者在SE后台配置的域名"
                    android:pathPattern="开发者在SE后台配置的路径地址" />
            </intent-filter>
 </activity>
要对用户进行再归因,请在 APP 收到深度链接内容时调用 SESDK 的 appDeeplinkOpenURI 方法,SESDK 就会在深度链接中寻找新的归因信息。如果 SESDK 找到新信息,会将其转发至服务器进行再归因。
 
方法示例:
public void appDeeplinkOpenURI(Uri uri);

调用示例:

@Override
protected void onNewIntent(Intent intent) {
   super.onNewIntent(intent);

   Uri data = intent.getData();
   if(data != null) {
      SolarEngineManager.getInstance().appDeeplinkOpenURI(data);
   }
}

1.4 设置 deeplink 链接监听 (需要在SDK 初始化之前调用)

方法示例:
setDeepLinkCallback(DeepLinkCallBack callback);

调用示例:

SolarEngineManager.getInstance().setDeepLinkCallback(new DeepLinkCallBack() {
            @Override
            public void onReceived(int code, DeeplinkInfo deeplinkInfo) {
                if(code == 0){
                    //处理deeplink回调成功逻辑
                }
            }
});

 

DeeplinkInfo 类参数详解:
参数名称 参数含义 参数类型
sedpLink 跳转参数 String
turlId 7位短链 String
from 链接类型 String
customParams 自定义参数 Map<String,Object>
 

errorCode 错误码:

错误码 code码释义
0 成功
1 URI 为空
2 URI 非法

 

1.5 上报deeplink唤醒事件(re_engagement

开发者可以通过上报 deeplink 唤醒成功事件来进行拉活归因和业务分析。

方法示例:
public synchronized void trackAppReEngagement(SEAppReEngagementModel seAppReEngagementModel);

调用示例:

SolarEngineManager.getInstance().trackAppReEngagement(new SEAppReEngagementModel());
 
最近修改: 2025-02-26Powered by