WebSDK中如何无侵入式统计由H5到na页面的引流

需求内容是这样的:
1、从H5向NA页面跳转时,支持H5传递某些参数,以表明此跳转来自于该H5;
2、NA页面也层层传递此参数,并在与Server交互时,上报到服务端;
举例:从积分跳转到自营销界面(点击事件),传递参数“来自积分”;在自营销模块中创建活动,每级页面都带着参数,最终点击“创建活动”button时,与服务端交互,将此参数上报给服务端;进而,服务端可判断,这个营销活动是由积分模块引流而来。

普通方案:
H5的参数传给NA页面(通过Intent),NA页面跳转到后续NA页面依然通过Intent传递该参数。在某个NA页面与server交互的时候就能够提交该参数。
那么问题来了,如果NA页面调到后续的可能的NA页面较少,或者跳转路径很浅,或许可以这么考虑。但是一旦NA页面较多,路径可能会非常深,怎么办?这对于原有业务逻辑是具有毁灭性的。更加灾难的一点是,使得页面之间的耦合性过于严重,无法单独开启。

普通方案示意图

进阶方案:
我们仔细分析一下需求会发现,要做的事无非就是全程携带一个标记,表示当下的页面来自于哪个H5页面,由于不用考虑H5页面内部跳转,因此此标记具有唯一性,即一旦标记参数诞生,也就同时意味着当前页面将立刻进入某个na页面,你将无法在不关闭na页面的同时修改H5来源,除非从H5跳转到的所有页面都关闭,当你回到该H5页面时,才能进行其他(跳转)操作。因此,这里面用到了一个常识:Activity栈。见下图:

H5开启的Activity栈

由于H5标示具备唯一性和这种类似于栈的特性,我们可以考虑从第一个H5页面显示开始,就初始化并维护一个“标记栈”。这个标记栈生命周期随着H5壳界面而存在,每新打开一个H5页面,则栈顶就会压如一个参数结构,记录当前H5的“标记参数”。


标记栈与页面关系、网络请求参数对应示意图

由此方法即可在对原有页面内部逻辑无修改的情况下,统计从H5跳过来的标记。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,283评论 25 708
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,765评论 18 399
  • 春风得意不知愁,早忘碧树凋楼头。 今夕魂断别旧苑,明朝缘生起兰舟。
    十里缘起面青山阅读 214评论 0 2
  • 前提补充 mac电脑显示隐藏文件的命令:终端执行 隐藏隐藏文件的命令: 执行完后需要重新开启Finder。方法是:...
    Lvcary阅读 364评论 0 1
  • 在知道这本书之前,我已经知道了《至加西亚的信》这篇文章,我钦佩罗文的高效执行力。所以当我看到这个书的时候,我...
    阿宝的育儿宝典阅读 589评论 0 4