Skip to content
AI 文档索引 ↗

应用生命周期 ​

页面隐藏或应用退后台时,SDK 会尝试发送待发事件。后台执行时间由浏览器或操作系统决定,不能保证立即送达;未确认事件会留在可用的本地队列中。

后台发送 ​

平台行为接入时需注意
Web页面隐藏或离开时尝试发送;必要时使用受限的 keepalive 请求备用请求不得超过 60,000 字节,不能确认队列;内存后备不能跨页面关闭恢复
AndroidSDK 默认观察应用前后台,前台期间按 flushIntervalSeconds 由协程调度;退后台时尝试发送并请求 WorkManager 恢复不启动 SDK 自有常驻 Service 或保活进程;系统可能延后后台任务
iOS进入后台时申请有限执行时间尝试发送Background URLSession 是可选配置,需由应用转交系统回调;上划强退后不保证继续传输

后台发送和队列恢复均受授权、网络及实际存储后端影响。Android 退后台时尽力 flush 并请求 WorkManager 一次性任务;队列如已退化为内存存储,进程结束后不能恢复。存储和重试规则见离线队列与重试。

应用状态与分析会话 ​

数据表示什么
sessionId分析会话标识。Web 默认 30 分钟无事件后轮换;Android/iOS 默认有 30 秒后台宽限期。当前不发送 $session_start / $session_end。
$sdk_lifecycle可选的状态事件,只记录 active/inactive 状态,不代表 Session 开始或结束。
$app_start / $app_end应用进入前台、退入后台的观测;$app_end 产生时,分析会话不一定结束。

Web 可选路由插件在首屏及路由切换时记录 $pageview 事件;Android 默认监听应用前后台,iOS 应用状态事件需由可选 UIKit 适配器或应用显式转发。手工记录页面事件时,避免与自动采集重复。各平台配置见 Web 自动采集、Android SDK 和原生 UI 集成。

深链事件 ​

深链地址可能包含用户信息。SDK 会去除 URL 中的凭据、查询参数和片段;路径仍可能包含敏感信息,接入方需检查允许的来源和路径。iOS 自动适配器按 HTTPS Host 或 Scheme 白名单接收;Android 冷启动自动采集按 Activity 和 HTTPS Host 白名单接收。Android 热启动转发和直接 API 调用的目标范围由宿主检查。

iOS ​

可选 UIKit 模块通过应用的系统回调转交链接:

swift
import TrackBusinessSDKUIKit

let deepLinks = TrackBusinessDeepLinkIntegration(
    sdk: sdk,
    options: TrackBusinessDeepLinkOptions(allowedHTTPSHosts: ["app.example.com"])
)

func scene(_ scene: UIScene, openURLContexts contexts: Set<UIOpenURLContext>) {
    contexts.forEach { deepLinks.capture(url: $0.url) }
}

Android ​

冷启动配置见Android API。热启动由应用验证链接后转交:

kotlin
override fun onNewIntent(intent: Intent) {
    super.onNewIntent(intent)
    val uri = intent.data ?: return
    if (intent.action == Intent.ACTION_VIEW &&
        uri.scheme.equals("https", ignoreCase = true) &&
        uri.host == "app.example.com") {
        sdk.recordDeepLinkIntent(intent)
    }
}

使用 ComponentActivity 时,也可调用 ComponentActivityDeepLinkIntegration.install(activity, sdk) 安装可选转发。它不复用冷启动白名单;同一入口请只选择一种热启动记录方式,避免重复事件。