菜单

设置深度链接

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

 

查看 SolarEngine 后台配置

 

universal link 示例为:test1.link.solar-engine.com

URL Scheme 示例为:test1://

Android 配置 Scheme

配置Scheme

?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
  <application>
    <activity android:name="com.unity3d.player.UnityPlayerActivity" android:theme="@style/UnityThemeSelector" >
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
      <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="place_your_scheme_here" />
      </intent-filter>
    </activity>
  </application>
</manifest>
 
 

iOS 配置 URL Scheme 和 Universal Link 

请见 设置深度链接  文中 "配置 Universal Link"  以及 "配置URL Scheme" 部分

 

通过深度链接进行再归因

要对用户进行再归因,请在 APP 收到深度链接内容时调用 appDeeplinkOpenURL 方法,SDK 会在深度链接中寻找新的归因信息。如果 SDK 找到新信息,会将其转发至服务器进行再归因。
 
function appDeeplinkOpenURL(){
  let urlString:string = "https://your_deeplink_url_dummy";
  SolarEngine.appDeeplinkOpenURL(urlString);
}

 

调用时机

import React, { Component } from 'react';
import { Linking, Platform, Text, View } from 'react-native';
class App extends Component {
  componentDidMount() {
    // 检查应用是否是通过URL打开的初始URL
    Linking.getInitialURL().then((url) => {
      if (url) {
        console.log('Initial URL:', url);
        // 在这里可以处理初始URL,比如解析参数等操作
        SolarEngine.appDeeplinkOpenURL(url);
      }
    });
    // 监听URL变化事件
    Linking.addEventListener('url', (event) => {
      console.log('Received URL:', event.url);
      // 处理接收到的URL
      SolarEngine.appDeeplinkOpenURL(url);
    });
  }
  render() {
    return (
      <View>
        <Text>React Native Linking Example</Text>
      </View>
    );
  }
}
export default App;

 

 

接收deeplink回调

当SDK解析完deeplink url后会回调,您可以使用回调参数处理一些业务逻辑

注:回调方法请在初始化SDK前设置,否则会接受不到回调。

调用示例

function buildDeeplinkResponse():deeplink{
  const handleDeepLink: deeplink = (code:number,deepLinkInfo?: DeepLinkInfo) => {
    if(code === 0){
      if(deepLinkInfo){
        console.log("deepLinkInfo.sedpLink: " + deepLinkInfo.sedpLink);
      }
    }else{
      console.log("code: " + code);
    }
  };
  return handleDeepLink;
}

async function Initiate(){
  let appKey = "";
  if (Platform.OS === 'ios') {
     appKey = "your_iOS_appKey";
  } else if (Platform.OS === 'android') {
     appKey = "your_Android_appKey";
  }    

  let deeplink:deeplink = buildDeeplinkResponse();

  let initiateOptions:SolarEngineInitiateOptions = {
  ...
    deeplink:deeplink,
  ...
  }
  SolarEngine.initialize(appKey,initiateOptions,(result:InitiateCompletionInfo) => {
    if (result.success) {
      Alert.alert('SolarEngine SDK Initiate Complete!')
    }
  });

}

 

 
上报deeplink唤醒事件(re_engagement)
注:如果调用了 appDeeplinkOpenURL 接口,则无需调用 trackAppReEngagement: 方法
 
方法示例
export function trackAppReEngagement(customProperties:Object);
 
调用示例:
  let customProperties:Object = {  ...  };
  SolarEngine.trackAppReEngagement(customProperties);
 
最近修改: 2024-11-13Powered by