定义接入活动所对应的SDK接口
打开活动页面
当在TurboLink Dashboard创建完活动时,会在[渠道管理]生成活动的App内链接和分享在社媒的链接,我们需要把App内链接通过该方法打开。
TurboLink.Campaign.loadUrl(this, "<活动渠道链接URL>")
.withLoginActivityRef(LoginActivity::class) //定义没有登录时打开登录页面的引用
.withEventListenerCallback(object : CampaignBuilder.EventListenerCallback { //定义事件触发时对自定义事件处理的回调流程
override fun onSuccess(campaignActivity: Context, listenerEventProperties: ListenerEventProperties) {
//when (listenerEventProperties.getScheme()) {
// "payment" -> {
// val paymentIntent = Intent(campaignActivity, PayActivity::class.java)
// campaignActivity.startActivity(paymentIntent)
// }
//}
}
})
.build()
withEventListenerCallback
为活动中事件触发的回调,返回ListenerEventProperties
, 我们再根据事件跳转到想引导到的页面。
ListenerEventProperties 结构参考
当用户没有登录时,会跳转到登录界面, 用户完成APP侧的登录操作需要调用SDK的登录事件:
TurboLink.DefaultEvent.login(this, "<你的app用户ID/加密后的用户ID>")
.build(object : TurboLinkEvent.TurboLinkEventCallback {
override fun onSuccess(response: EventResponse) {
//这里不需要再调用活动的loadUrl, SDK会自动跳转到未登录的活动页
}
override fun onFailure(code: Int, msg: String) {
}
})
监听回调
自定义事件:就是做任务,但用户点击活动内的任务按钮时,需要回调App来打开相应页面给用户完成任务。
点击自定义事件监听回调
TurboLink.withEventListenerCallback(object : CampaignBuilder.EventListenerCallback {
override fun onSuccess(
campaignActivity: Context,
listenerEventProperties: ListenerEventProperties
) {
//根据ListenerEventProperties返回执行触发活动事件的流程,如:ListenerEventProperties返回的自定义的充值事件,则这里跳到充值Activity.
}
})
活动页面点击事件埋点回调
活动内的很多按钮是可以点击打开的,有时候我们需要知道用户对那些按钮感兴趣,当您们想把这些行为数据上报到您的BI系统,可以监听该方法上报。
TurboLink.withPointListenerCallback(object : CampaignBuilder.PointListenerCallback {
override fun onSuccess(
campaignActivity: Context,
listenerPointProperties: ListenerPointProperties
) {
}
})
ListenerPointProperties结构参考 埋点监听位置说明
活动组件跳转监听回调
针对在活动内呈现的组件,有时候我们期望用户点击进入到App内的某个模块。需要使用到该监听。 如:用户中奖后,希望用户点击”去使用”就跳转到奖品使用界面。 支持:奖品、自由组件
TurboLink.withRedirectListenerCallback(object : CampaignBuilder.RedirectListenerCallback {
override fun onSuccess(
campaignActivity: Context,
listenerRedirectProperties: ListenerRedirectProperties
) {
// TurboLinkLogger.e("redirect:" + listenerRedirectProperties.getCampaignId() + "_"
// + listenerRedirectProperties.getCampaignTitle() + "_"
// + listenerRedirectProperties.getCampaignLang() + "_"
// + listenerRedirectProperties.getCampaignUrl() + "_"
// + listenerRedirectProperties.getUser() + "_"
// + listenerRedirectProperties.getType() + "_"
// + listenerRedirectProperties.getAppUrl() + "_"
// + listenerRedirectProperties.getRewardInfo()?.geTitle() + "_"
// + listenerRedirectProperties.getRewardInfo()?.getKvData()?.get(0)?.getKey() + "_"
// + listenerRedirectProperties.getRewardInfo()?.getKvData()?.get(0)?.getValue() + "_"
// + listenerRedirectProperties.getRewardInfo()?.getKvData()?.get(1)?.getKey() + "_"
// + listenerRedirectProperties.getRewardInfo()?.getKvData()?.get(1)?.getValue() + "_"
// )
}
})
社媒分享监听回调
注意:实现该回调需要自己自定义社媒拉起能力。TurboLink.withShareListenerCallback(object : CampaignBuilder.ShareListenerCallback {
override fun onSuccess(
campaignActivity: Context,
listenerShareProperties: ListenerShareProperties
) {
//这里可以根据listenerShareProperties对象来做业务处理
}
})
登录监听回调
TurboLink.withLoginListenerCallback(object : CampaignBuilder.LoginListenerCallback {
override fun onSuccess(campaignActivity: Context) {
//回调的登录业务代码
}
})
注册监听回调
TurboLink.withRegListenerCallback(object : CampaignBuilder.RegListenerCallback {
override fun onSuccess(campaignActivity: Context) {
//回调的注册业务代码
}
})
活动页创建回调
TurboLink.withCampaignCreateCallback(object : CampaignBuilder.CampaignCreateCallback {
override fun onSuccess(campaignActivity: Context) {
}
})
活动页Destroy回调
TurboLink.withCampaignDestroyCallback(object : CampaignBuilder.CampaignDestroyCallback {
override fun onSuccess(campaignActivity: Context) {
}
})
活动页Resume回调
TurboLink.withCampaignResumeCallback(object : CampaignBuilder.CampaignResumeCallback {
override fun onSuccess(campaignActivity: Context) {
}
})
活动页Pause回调
TurboLink.withCampaignPauseCallback(object : CampaignBuilder.CampaignPauseCallback {
override fun onSuccess(campaignActivity: Context) {
}
})
定义自动拉起活动页时机
设置能自动拉起活动页的Activity列表
对应用户点击是活动的链接,会自动拉起APP并自动打开活动页,但APP侧希望在特定的页面加载时才自动打开,可以使用这个方法,可以设置多个Activity。
// 设置初始化SDK方法(TurboLink.autoInstance)前
TurboLink.Campaign.setLaunchCampaignActivity(MainActivity::class)
.setLaunchCampaignActivity(LoginActivity::class)
设置延迟自动拉起活动页
对应用户点击是活动的链接,会自动拉起APP并自动打开活动页,但有些场景下,APP侧希望能延迟几秒钟再打开。这是可以使用这个方法。单位:秒(s),如果不想自动打开,设为:-1
// 等待2秒后再拉起活动页
// 设置初始化SDK方法(TurboLink.autoInstance)前
TurboLink.Campaign.setLaunchCampaignDelay(2)
WebView样式
设置活动页允许横竖屏
默认是竖屏,可以通过该方法设置允许横竖屏
TurboLink.Campaign.setScreenOrientationAll()
设置为深色模式
TurboLink.Campaign.setNightMode(true)
设置为未加载标题
TurboLink.Campaign.setInitTitle("Loading...")
不显示回退按钮
TurboLink.Campaign.setGoneBack(true)
设置标题字体大小
TurboLink.Campaign.setTitleSize(16f)
判断活动链接是否是TurboLink的
TurboLink.isUrlBelongTurboLink("<活动链接>")
获取活动详情
TurboLink.Campaign.getCampaignInfo("<活动ID>", "<LinkHashId(归因返回,可为空)>").build(object : CampaignInfo.TurboLinkCampaignCallback {
override fun onSuccess(response: CampaignInfoProperties) {
TurboLinkLogger.e("campaignId:" + response.getCampaignId()
+ "_" + response.getTitle() + "_" + response.getLangs()
+ "_" + response.getLink() + "_" + response.getStart()
+ "_" + response.getEnd() + "_" + response.getUtm()
+ "_" + response.getStatus())
}
override fun onFailure(code: Int, msg: String) {
}
})