Unity3D接入

请先从ShareTrace控制台获取AppKey

一、安装

1.1 下载插件

前往下载最新版的Sharetrace Unity3D plugin SDK。前往下载

1.2 安装

在Unity中找到Assets--Import Package -- Custom Package, 找到刚下载的插件, 选择导入全部文件。导入完成后,找到Sharetrace.prefab, 添加到场景中即可。

二、配置

Android配置

在Unity中, 找到项目的AndroidManifest.xml文件,在<application>...</application>中修改以下配置

<meta-data 
    android:name="com.sharetrace.APP_KEY"
    android:value="SHARETRACE_APPKEY"/>

请将 SHARETRACE_APPKEY 替换成 sharetrace 为应用分配的 appkey

注:如果项目中已经存在其他自定义AndroidManifest.xml, 需要删除Assets/Plugins/Android里面的AndroidManifest.xml, 此外需要参考AndroidManifest.xml的代码实现,进行Sharetrace SDK的配置。

iOS配置

在Xcode中打开Unity导出的iOS工程项目,在Info.plist中增加以下配置

<key>com.sharetrace.APP_KEY</key>
<string> SHARETRACE_APPKEY </string>

请将 SHARETRACE_APPKEY 替换成 sharetrace 为应用分配的 appkey

注:如果项目中已经用IMPL_APP_CONTROLLER_SUBCLASS生成Controller文件,则需要删除Assets/Plugins/iOS/libs里面的SharetraceController, 此外需要参考SharetraceController的代码实现,进行SDK的初始化。

三、获取安装携带的参数

3.1. 导入命名空间

using com.sharetrace.unity;

3.2. 定义结果回调,请求获取参数

    private Sharetrace sharetrace;
    void Start()
    {
        sharetrace = GameObject.Find("Sharetrace").GetComponent<Sharetrace>();
        sharetrace.GetInstallTrace(10, OnInstallTraceResult);
    }

    void OnInstallTraceResult(SharetraceAppData appData)
    {
        string result = JsonUtility.ToJson(appData);
        Debug.Log("Sharetrace OnInstallTraceResult: " + result);
    }

四、一键调起

Sharetrace支持通过标准的Scheme和Universal Links(iOS>=9),接入Sharetrace SDK后,在各种浏览器,包括微信,微博等内置浏览器一键调起app,并传递网页配置等自定义动态参数。配置只需简单几个步骤即可,如下:

4.1 开启一键调起功能

登录Sharetrace的管理后台,找到iOS配置,开启相关功能和填入配置 5_apple_config_on.png

其中Team Id可以在Apple开发者后台查看

4.2 开启Associated Domains服务

方法一(推荐):Xcode一键开启

(这里以Xcode 12为例,其他Xcode版本类似)

5_1_domains.png

在如下图所示位置填入Sharetrace后台提供的applinks

5_applinks_value.png

方法二:通过Apple开发者管理后台手动开启

登录到Apple管理后台,在Identifiers找到所需开启到App ID

5_apple_dev_config.png

4.3 Scheme配置

找到项目Info配置,填入后台分配的Scheme, 如下图:

ios_scheme_value.png

4.4 代码配置

iOS 配置

找到AppDelegate文件,参考以下配置

Objective-C

#include "PluginBase/AppDelegateListener.h"
#import "UnityAppController.h"
#import "SharetraceBridge.h"

@interface SharetraceController : UnityAppController<AppDelegateListener>

@end

IMPL_APP_CONTROLLER_SUBCLASS(SharetraceController)

@implementation SharetraceController

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
    [SharetraceBridge startInit];
    UnityRegisterAppDelegateListener(self);
    [super application:application didFinishLaunchingWithOptions:launchOptions];

    return YES;
}

- (void)onOpenURL:(NSNotification *)notification{
    if (notification.userInfo && [notification.userInfo objectForKey:@"url"]) {
        NSURL *url = [notification.userInfo objectForKey:@"url"];
        [SharetraceBridge handleSchemeLinkURL:url];
    }
}

-(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler{
    [SharetraceBridge handleUniversalLink:userActivity];
    Class unity = NSClassFromString(@"UnityAppController");
    if ([unity instancesRespondToSelector:@selector(application:continueUserActivity:restorationHandler:)]) {
        [super application:application continueUserActivity:userActivity restorationHandler:restorationHandler];
    }
    return YES;
}

@end
Android 配置

找到项目中AndroidManifest.xml文件,找到项目的需要被调起的Activity, 参考以下配置Scheme:

  <application
    android:icon="@drawable/app_icon"
    android:label="@string/app_name"
    android:theme="@style/UnityThemeSelector" >
    <activity
        android:name="com.sharetrace.unityplugin.SharetraceActivity"
        android:launchMode="singleTask"
        android:screenOrientation="landscape" 
        android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|layoutDirection|fontScale"
        android:label="@string/app_name" >

        <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="Sharetrace分配的Scheme"/>
        </intent-filter>

    </activity>

    <meta-data android:name="com.sharetrace.APP_KEY"
        android:value="Sharetrace分配的APP_KEY"/>
  </application>

其中Sharetrace分配的Scheme请到Sharetrace管理后台查看

4.5 获取一键调起参数

    private Sharetrace sharetrace;
    void Start()
    {
        sharetrace = GameObject.Find("Sharetrace").GetComponent<Sharetrace>();
        sharetrace.RegisterWakeupTrace(OnWakeupTraceResult);
    }
    void OnWakeupTraceResult(SharetraceAppData appData)
    {
        string result = JsonUtility.ToJson(appData);
        Debug.Log("Sharetrace OnWakeupTraceResult: " + result);
    }

五、配置安装方式

SDK 集成完成后,按照sharetrace控制台接入流程完成后续的配置。

results matching ""

    No results matching ""