集成SDK
了解如何初始化和开始使用SDK
开始前准备
- 开始前必须先安装SDK
- 获取项目的projectId, projectId用来确定对应的APP。
- 获取项目的appKey和appSecret,用来进行SDK通讯的加密。
- 在Android Studio的
AndroidManifest.xml
文档的添加:
<application>
// ...
<meta-data
android:name="ai.turbolink.sdk.appKey"
android:value="你的项目appKey" />
<meta-data
android:name="ai.turbolink.sdk.appSecret"
android:value="你的项目appSecret" />
<meta-data
android:name="ai.turbolink.sdk.projectID"
android:value="你的项目ID" />
// ...
</application>
或, 直接在初始化TurboLink SDK时带入(推荐)
TurboLink.autoInstance(this, "<你的项目ID>"
, "<你的项目appKey>"
, "<你的项目appSecret>"
, "<你的app用户ID/加密后的用户ID>"
, object : TurboLinkEvent.TurboLinkEventCallback {
override fun onSuccess(response: EventResponse) {
}
override fun onFailure(code: Int, msg: String) {
}
})
初始化Android SDK
step.1 导入TurboLink
在你的全局Application class导入TurboLinkSDK
- Kotlin
- Java
import ai.turbolink.sdk.TurboLink
import ai.turbolink.sdk.TurboLink;
step.2 初始化TurboLink SDK
在你的全局Application class导入 ai.turbolink.sdk.TurboLink
和 使用 autoInstance
方法
这是最简单的流程,只有仅仅做归因可以这样调用,如果使用归因和活动能力,请参考下面的初始化活动的监听
- Kotlin
- Java
package ai.turbolink.sdktest
import android.app.Application
import ai.turbolink.sdk.TurboLink
class TurboLinkTestApp : Application() {
override fun onCreate() {
super.onCreate()
// TurboLink logging for debugging
TurboLink.enableLogger()
TurboLink.autoInstance(this)
}
}
package ai.turbolink.sdktestjava;
import android.app.Application;
import ai.turbolink.sdk.TurboLink;
public class TestApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// TurboLink logging for debugging
TurboLink.enableLogger();
TurboLink.autoInstance(this, null, null);
}
}
初始化活动的监听
接入智链的活动,需要在初始化SDK时加入对活动相关事件的监听:
TurboLink.withLoginActivity
:为登录Activity的引用,在活动页面没有检测到登录态时会调用
withEventListenerCallback
:为活动内事件触发的回调
- Kotlin
- Java
package ai.turbolink.sdktest
import ai.turbolink.sdk.TurboLink
import ai.turbolink.sdk.campaign.CampaignBuilder
import ai.turbolink.sdk.campaign.properties.ListenerEventProperties
import ai.turbolink.sdk.events.TurboLinkEvent
import ai.turbolink.sdk.request.response.EventResponse
import android.app.Application
import android.content.Context
class TurboLinkTestApp : Application() {
override fun onCreate() {
super.onCreate()
// TurboLink logging for debugging
TurboLink.enableLogger()
TurboLink.withLoginActivity(LoginActivity::class)
TurboLink.withEventListenerCallback(object : CampaignBuilder.EventListenerCallback {
override fun onSuccess(
campaignActivity: Context,
listenerEventProperties: ListenerEventProperties
) {
//根据ListenerEventProperties返回执行触发活动事件的流程,如:ListenerEventProperties返回的自定义的充值事件,则这里跳到充值Activity.
}
})
TurboLink.autoInstance(this, "<你的app用户ID/加密后的用户ID>", object : TurboLinkEvent.TurboLinkEventCallback {
override fun onSuccess(response: EventResponse) {
}
override fun onFailure(code: Int, msg: String) {
}
})
}
}
package ai.turbolink.sdktestjava;
import android.app.Application;
import android.content.Context;
import androidx.annotation.NonNull;
import ai.turbolink.sdk.TurboLink;
import ai.turbolink.sdk.campaign.CampaignBuilder;
import ai.turbolink.sdk.campaign.properties.ListenerEventProperties;
import ai.turbolink.sdk.events.TurboLinkEvent;
import ai.turbolink.sdk.request.response.EventResponse;
public class TestApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// TurboLink logging for debugging
TurboLink.enableLogger();
TurboLink.withLoginActivity(kotlin.jvm.JvmClassMappingKt.getKotlinClass(LoginActivity.class));
TurboLink.withEventListenerCallback(new CampaignBuilder.EventListenerCallback() {
@Override
public void onSuccess(@NonNull Context campaignActivity, @NonNull ListenerEventProperties listenerEventProperties) {
// 执行触发活动事件的流程
// campaignActivity - 活动页对应的activity
// listenerEventProperties - 触发的事件信息
}
});
TurboLink.autoInstance(this, null, new TurboLinkEvent.TurboLinkEventCallback() {
@Override
public void onSuccess(@NonNull EventResponse response) {
}
@Override
public void onFailure(int code, @NonNull String msg) {
}
});
}
}
EventResponse 结构参考
TurboLinkEventCallback 结构参考
ListenerEventProperties 结构参考
设置用户ID和用户等级、用户信息等
用户等级标识的设置可以用来配合活动的一系列玩法,比如:按等级发放不同的奖品
- Kotlin
- Java
TurboLink.setAppUserInfo("<你的app用户ID/加密后的用户ID>", "<昵称>", "<用户头像URL>", arrayOf("<用户等级或标签>"), "<邀请码>")
// 只设置用户ID和用户等级
// TurboLink.setAppUserInfo("<你的app用户ID/加密后的用户ID>", "<app用户等级(标识)>")
TurboLink.setAppUserInfo("<你的app用户ID/加密后的用户ID>", "<昵称>", "<用户头像URL>", new String[]{"<用户等级或标签>"}, "<邀请码>");
// 只设置用户ID和用户等级
// TurboLink.setAppUser("<你的app用户ID/加密后的用户ID>", "<app用户等级(标识)>");
设置活动国际语言代码
通过设置活动语言可以改变活动页面的语言显示
- Kotlin
- Java
TurboLink.Campaign.setLang("<国际语言代码>")
TurboLink.Campaign.setLang("<国际语言代码>");
onNewIntent
对于Scheme和App Links拉起的app行为,需要在被拉起Activity的onNewIntent处添加setIntent定义
在需要通过Scheme/App Links拉起的Activity
页面添加:
- Kotlin
- Java
override fun onNewIntent(intent: Intent?) {
super.onNewIntent(intent)
setIntent(intent)
}
@Override
public void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
}
粘贴板
在使用口令的时候需要粘贴板的支持,使用粘贴板要注意
Google Play的隐私政策,添加信息披露并获得用户授权,具体可参考:
https://support.google.com/googleplay/android-developer/answer/10144311?visit_id=638320928049656842-850101537&rd=1
判断粘贴板内容是否是TurboLink的
使用口令检索前,建议通过isBelongTurboLink方法检测下粘贴板内容是否属于Turbolink的。
- Kotlin
- Java
if (TurboLink.isBelongTurboLink("<粘贴板内容>")) {
}
if (TurboLink.isBelongTurboLink("<clipText>")) {
}
利用粘贴板进行口令检索
使用简单模式获取DeviceId
如有需要发布到小米应用商店,请使用简单模式获取DeviceId。
请在初始化TurboLink.autoInstance
方法前调用
- Kotlin
- Java
TurboLink.setIdSimpleMode()
TurboLink.setIdSimpleMode();
延迟SDK启动
如果你担心初始化放在application中会造成性能影响,可以使用延迟初始化的方式,把真正的初始化放到进入app之后(如进入首页)。
设置延迟
在TurboLink.autoInstance初始化之前设置
- Kotlin
- Java
TurboLink.setDelayedSessionInitialization(true)
TurboLink.setDelayedSessionInitialization(true);
启动
在特定的Activity按需启动,如:首页
- Kotlin
- Java
TurboLink.startSessionInitialization(this)
TurboLink.startSessionInitialization(this);