iOS全埋点:【App与H5打通进行数据传输】H5触发的事件不直接同步给服务端,而是先发给App端的数据采集SDK,经App端数据采集SDK二次加工处理后存入本地缓存再进行同步。

前言

H5触发的事件不直接同步给服务端,而是先发给App端的数据采集SDK,经App端数据采集SDK二次加工处理后存入本地缓存再进行同步。

App与H5打通原因

  • .数据准确性: H5无法直接获取设备的相关信息,只能通过解析UserAgent值获取有限的信息,而解析UserAgent值,有些信息通过解析UserAgent值根本获取不到,比如应用程序的版本号等。
  • 用户标识:(iOS应用程序一般使用IDFA或IDFV,H5一般使用Cookie)

App与H5打通的方案

·通过拦截WebView请求进行打通。
·通过JavaScript与WebView相互调用进行打通

I、方案一:拦截请求

请求是协定好的特定格式,进行拦截并获取事件数据;如果不是,让请求继续加载。

此时,JavaScript SDK就需要知道,当前H5是在App端显示还是在Safari浏览器显示,只有在App端显示时,H5触发事件后,JavaScript SDK才能向App发送特定的URL请求进行打通;如果是在Safari浏览器显示,JavaScript SDK也发送请求进行打通,会导致事件丢失。

  • 具体做法:借助UserAgent来进行判断,
    即当H5在App端显示时,我们可以通过在当前的UserAgent上追加一个特殊的标记(/kn-sdk-ios),进而告知JavaScript SDK当前H5是在App端显示并需要进行打通。

1.1 修改UserAgent(支持UIWebView控件和WKWebView控件)

苹果公司近年来一直在推动WKWebView控件来替代UIWebView控件

修改UserAgent,我们一般都是建议进行“追加”,比如示例中追加的是“/sa-sdk-ios”字符串,应该尽

你可能感兴趣的:(iOS开发基础,iOS全埋点AutoTrack)