![b72a361a401cdbd3f323811e5a77f543.png](https://img-blog.csdnimg.cn/img_convert/b72a361a401cdbd3f323811e5a77f543.png)
1、原理概述
iOS 混合开发越来越流行,App 与 H5 的打通需求,也越来越迫切!
那什么是 App 与 H5 打通呢?
所谓打通,是指 H5 集成 JavaScript 数据采集 SDK 后,H5 触发的事件不是直接同步给服务端,而是先发给 App 端的数据 采集 SDK,经 App 端数据采集 SDK 二次加工处理后入本地缓存再进行同步。
本章后面的内容,主要是回答以下两个问题:
- App 与 H5 为什么要打通?
- App 与 H5 如何打通?
App 为什么要与 H5 打通呢?
主要是从以下几个角度考虑:
• 数据丢失率
在业界,App 端采集数据的丢失率一般在 1% 左右,而 H5 采集数据的丢失率一般在 5% 左右(主要是因为缓存、网络或切 换页面等原因)。因此,如果 App 与 H5 打通,H5 触发的所有事件,可以先发给 App 端数据采集 SDK,经过 App 端二次 加工处理后并入本地缓存,在符合特定策略之后再进行同步数据,即可把数据丢失率由 5% 降到 1% 左右。
• 数据准确性
众所周知,H5 无法直接获取设备相关的信息,只能通过解析 UserAgent 值获取到有限的信息。而解析 UserAgent 值,至 少会面临以下两个问题:
1)有些信息,通过解析 UserAgent 值根本获取不到,比如应用程序的版本号等
2)有些信息,通过解析 UserAgent 值可以获取到,但内容可能不正确 如果 App 与 H5 打通,由 App 端数据采集 SDK 补充这些信息,即可确保事件信息的准确性和完整性。
• 用户标识
如果用户在 App 端注册或登录之前使用我们的产品,我们一般都是使用匿名 ID 来标识用户。而 App 与 H5 标识匿名用户 的规则不一样(iOS 一般使用 IDFA 或 IDFV,H5 一般使用 Cookie),从而就会导致一个用户使用了我们的产品,结果产生 了两个匿名用户。如果 App 与 H5 打通,就可以将两个匿名 ID 做归一化处理(以 App 端匿名 ID 为准)。
App 与 H5 如何打通?
常见的打通方案有以下两种:
• 通过拦截 WebView 请求进行打通
• 通过 JavaScript 与 WebView 相互调用进行打通
(1)方案一:拦截请求</