跳到主要内容

集成SDK

最后更新:2024/01/22

了解如何初始化和开始使用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

在你的全局Application class导入TurboLinkSDK

import ai.turbolink.sdk.TurboLink

在你的全局Application class导入 ai.turbolink.sdk.TurboLink 和 使用 autoInstance 方法
这是最简单的流程,只有仅仅做归因可以这样调用,如果使用归因和活动能力,请参考下面的初始化活动的监听

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)
}
}

初始化活动的监听

接入智链的活动,需要在初始化SDK时加入对活动相关事件的监听:
TurboLink.withLoginActivity :为登录Activity的引用,在活动页面没有检测到登录态时会调用
withEventListenerCallback :为活动内事件触发的回调

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) {
}
})
}
}

EventResponse 结构参考
TurboLinkEventCallback 结构参考
ListenerEventProperties 结构参考

设置用户ID和用户等级、用户信息等

用户等级标识的设置可以用来配合活动的一系列玩法,比如:按等级发放不同的奖品

TurboLink.setAppUserInfo("<你的app用户ID/加密后的用户ID>", "<昵称>", "<用户头像URL>", arrayOf("<用户等级或标签>"), "<邀请码>")

// 只设置用户ID和用户等级
// TurboLink.setAppUserInfo("<你的app用户ID/加密后的用户ID>", "<app用户等级(标识)>")

设置活动国际语言代码

通过设置活动语言可以改变活动页面的语言显示

TurboLink.Campaign.setLang("<国际语言代码>")

国际语言代码说明

onNewIntent

对于Scheme和App Links拉起的app行为,需要在被拉起Activity的onNewIntent处添加setIntent定义
在需要通过Scheme/App Links拉起的Activity页面添加:

override fun 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的。

if (TurboLink.isBelongTurboLink("<粘贴板内容>")) {
}

利用粘贴板进行口令检索

请查看code_search(口令搜索)事件

使用简单模式获取DeviceId

如有需要发布到小米应用商店,请使用简单模式获取DeviceId。 请在初始化TurboLink.autoInstance方法前调用

TurboLink.setIdSimpleMode()

延迟SDK启动

如果你担心初始化放在application中会造成性能影响,可以使用延迟初始化的方式,把真正的初始化放到进入app之后(如进入首页)。

设置延迟

在TurboLink.autoInstance初始化之前设置

TurboLink.setDelayedSessionInitialization(true)

启动

在特定的Activity按需启动,如:首页

TurboLink.startSessionInitialization(this)