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配置,开启相关功能和填入配置
其中Team Id可以在Apple开发者后台查看
4.2 开启Associated Domains服务
方法一(推荐):Xcode一键开启
(这里以Xcode 12为例,其他Xcode版本类似)
在如下图所示位置填入Sharetrace后台提供的applinks
方法二:通过Apple开发者管理后台手动开启
登录到Apple管理后台,在Identifiers找到所需开启到App ID
4.3 Scheme配置
找到项目Info配置,填入后台分配的Scheme, 如下图:
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
控制台接入流程完成后续的配置。