一种小程序内嵌网页环境下的客户端应用可靠唤起及自适应降级方法、系统与流程

摘要: 本发明涉及移动互联网、小程序内嵌网页、客户端应用深度链接、应用分发及跨端跳转,具体涉及一种小程序内嵌网页环境下的客户端应用可靠唤起及自适应降级方法、系统。背景技...
一种小程序内嵌网页环境下的客户端应用可靠唤起及自适应降级方法、系统与流程

本发明涉及移动互联网、小程序内嵌网页、客户端应用深度链接、应用分发及跨端跳转,具体涉及一种小程序内嵌网页环境下的客户端应用可靠唤起及自适应降级方法、系统。

背景技术:

1、在移动互联网业务中,用户常在小程序中完成浏览、领取、下单、直播观看或权益查看等前置操作,随后需要跳转至原生客户端应用继续完成更完整的业务流程。常见实现方式包括小程序内嵌网页、微信开放标签wx-open-launch-app、url scheme、universallink、应用商店链接、应用宝或其他应用分发平台链接。

2、然而,在实际落地过程中,现有方案仍存在明显不足。第一,小程序内嵌网页属于受限webview环境,普通window.location.href、url scheme、universal link或第三方应用分发页并不一定能够在所有平台正常工作。第二,ios与android的系统策略、微信内嵌网页策略和浏览器策略差异较大,同一套跳转代码可能在ios已安装应用时可唤起,而在android已安装应用时无法拉起。第三,开放标签提供的launch与error事件不能完整覆盖真实唤起状态,例如当系统弹出确认弹窗时,页面并未切至后台,此时既未触发launch也未触发error,导致唤起结果无法判定。第四,当客户端应用未安装时,universal link可能直接访问其绑定域名下的路径,若该路径配置为对象存储或静态资源目录,则可能出现白屏、nosuchkey、无法打开页面等错误。第五,部分实现中,接口上报、初始化鉴权、失败降级耦合在同一流程中,任一接口异常都可能阻断后续唤起。第六,用户从客户端应用返回小程序内嵌网页后,页面的状态机仍停留在已唤起状态,导致再次点击按钮时无法重新发起唤起动作。

3、因此,亟需一种面向小程序内嵌网页环境的客户端应用可靠唤起及自适应降级方案。该方案应当能够在不破坏已安装客户端应用正常唤起能力的前提下,对未安装、唤起失败、唤起结果不确定、系统返回页面后的再次唤起等复杂场景进行准确处理。

技术实现思路

1、本发明旨在解决现有小程序内嵌网页唤起客户端应用过程中存在的跨平台适配困难、唤起结果不可准确判断等问题。本发明提供一种小程序内嵌网页环境下的客户端应用可靠唤起及自适应降级方法、系统。

2、为了实现上述目的,本发明采用以下技术方案:

3、一种小程序内嵌网页环境下的客户端应用唤起结果判定方法,包括:

4、响应于唤起触发指令,记录所述唤起触发指令的触发时刻;

5、监听预设的事件集合以及页面可见性变化事件,所述事件集合至少包括用于指示唤起操作结果的客户端回调事件;

6、设置第一预设时间窗口和第二预设时间窗口,所述第一预设时间窗口的时长小于所述第二预设时间窗口的时长;

7、若在所述第一预设时间窗口内监测到所述页面可见性变化事件指示当前页面切换至不可见状态,或监测到所述事件集合中的第一类事件,则判定客户端应用唤起成功;

8、若在所述第二预设时间窗口内所述页面保持可见状态且未监测到所述第一类事件,或监测到所述事件集合中的第二类事件,则判定客户端应用唤起失败。

9、在一些实施例中,所述唤起触发指令包括用户点击唤起控件所触发的点击指令,或页面加载完成后自动执行的自动唤起指令。

10、在一些实施例中,所述第一预设时间窗口和/或所述第二预设时间窗口的时长根据终端设备的性能等级或当前网络延迟动态调整;

11、和/或,所述方法还包括:在所述页面切换至不可见状态时,启动计时器,若所述页面在所述第一预设时间窗口内恢复可见且未监测到所述第一类事件,则撤销所述唤起成功的判定结果,并将状态标记为未知或失败。

12、在一些实施例中,还包括:

13、基于所述唤起触发指令构建状态机,所述状态机至少包括初始状态、就绪状态、唤起中状态、已打开状态和失败状态;

14、当响应于所述唤起触发指令时,所述状态机由所述就绪状态切换至所述唤起中状态;

15、当判定客户端应用唤起成功时,所述状态机由所述唤起中状态切换至所述已打开状态;

16、当判定客户端应用唤起失败时,所述状态机由所述唤起中状态切换至所述失败状态。

17、在一些实施例中,还包括:

18、在所述唤起触发指令执行之前,调用跳转信息存储接口,将本次跳转的业务来源信息和应用链接信息进行上报;

19、所述跳转信息存储接口的调用结果与后续的唤起流程相互解耦,即无论所述跳转信息存储接口返回成功、失败或超时,均继续执行所述唤起触发指令对应的客户端应用唤起动作。

20、在一些实施例中,还包括:

21、当判定客户端应用唤起失败或未得到确定结果时,识别当前终端设备的操作系统类型;

22、若所述操作系统类型为第一类系统,则执行第一降级引导策略;

23、若所述操作系统类型为第二类系统,则执行与所述第一降级引导策略不同的第二降级引导策略。

24、在一些实施例中,所述第一降级引导策略包括:

25、展示复制链接控件,所述复制链接控件对应的链接地址指向预设的应用分发引导页面,所述应用分发引导页面用于引导用户跳转至官方应用商店;

26、其中,所述预设的应用分发引导页面的地址被配置为通用链接的绑定路径,当客户端应用未安装时,所述通用链接所指向的该绑定路径被系统打开以展示所述应用分发引导页面。

27、在一些实施例中,所述第二降级引导策略包括:

28、展示复制链接控件,所述复制链接控件对应的链接地址指向预设的中间引导页面,并提示用户在系统浏览器中打开所述中间引导页面;

29、所述中间引导页面用于在系统浏览器环境下再次尝试唤起客户端应用,或跳转至第三方应用分发平台。

30、本实施例还提供了一种小程序内嵌网页环境下的客户端应用可靠唤起及自适应降级方法,包括:

31、采用如权利要求1至4任一项所述的方法判定客户端应用唤起结果;

32、采用如权利要求5所述的方法进行非阻塞式跳转信息上报;

33、当判定唤起失败或未知时,采用如权利要求6至8任一项所述的方法进行平台自适应降级引导;

34、在采用通用链接进行唤起的场景下,将通用链接的绑定路径配置为指向一个真实存在的兜底引导页面的访问地址;当终端系统响应于所述通用链接的打开请求且客户端应用未安装时,所述终端系统加载并显示所述兜底引导页面;所述兜底引导页面包含应用标识信息、引导文案以及跳转至应用商店的链接;

35、在唤起流程结束且页面恢复可见后,将预先构建的唤起状态机重置为就绪状态;重置后,响应于用户再次触发的唤起操作指令,重新执行客户端应用唤起流程。

36、在一些实施例中,所述将通用链接的绑定路径配置为指向一个真实存在的兜底引导页面的访问地址,具体包括:

37、所述兜底引导页面所在的服务器预先配置有路径重写规则,所述路径重写规则用于识别来自移动终端浏览器的通用链接访问请求,并返回所述兜底引导页面的html内容,同时确保不覆盖或破坏终端系统用于应用唤醒的配置文件。

38、在一些实施例中,所述将预先构建的唤起状态机重置为就绪状态,具体包括:

39、监听页面可见性变化事件或页面显示事件,当监测到所述页面显示事件被触发,或监测到所述页面可见性变化事件指示当前页面由不可见状态切换为可见状态时,执行所述重置操作。

40、本实施例还提供了一种小程序内嵌网页环境下的客户端应用可靠唤起及自适应降级系统,包括:

41、参数生成模块,用于在小程序端生成跳转参数,所述跳转参数至少包括来源标识、业务类型和唤起协议链接;

42、上报模块,用于在实际跳转前调用跳转信息存储接口,将所述跳转参数进行非阻塞式上报,所述上报模块的执行结果与后续唤起动作解耦;

43、内嵌网页初始化模块,用于加载内嵌网页并读取所述跳转参数,以及初始化网页端的软件开发工具包配置;以及

44、还包括:

45、状态机检测模块,用于执行如权利要求1至4任一项所述的方法,以判定客户端应用唤起结果;

46、平台识别模块,用于识别当前终端设备的操作系统类型;

47、降级引导模块,用于根据所述状态机检测模块的判定结果和所述平台识别模块的识别结果,执行如权利要求6至8任一项所述的方法进行差异化降级引导;

48、兜底页处理模块,用于配置并返回所述兜底引导页面,以处理通用链接未安装场景下的访问请求;

49、状态重置模块,用于在页面恢复后将所述状态机重置为就绪状态。

50、在一些实施例中,还包括:

51、阈值动态调整模块,用于获取当前终端设备的硬件性能参数和网络状态参数,并根据预设的映射关系动态调整所述状态机检测模块中的第一预设时间窗口和第二预设时间窗口的具体时长数值。

52、与现有技术相比,本发明具有以下显著优势/技术有益效果:

53、第一,唤起判断更准确。本技术通过将页面可见性变化事件与客户端回调事件组合判定,并设置两个先后关联的时间窗口作为判定边界,不再单独依赖开放标签的launch或error回调。当系统弹出确认弹窗等既未触发launch也未触发error的场景下,通过页面可见性状态的物理变化即可准确判定唤起结果,填补了现有技术的判断盲区。同时,通过防误判撤销机制,有效区分了“真正切至后台”与“短暂弹窗后返回”两种不同场景,避免了误判。

54、第二,跨平台兼容性更强。本技术通过操作系统类型识别和分流,为ios和android平台分别设计不同的降级引导策略,不再试图用同一套代码适配所有平台,而是针对各平台特性采用最优方案,使得双端均能获得最佳的唤起体验。

55、第三,已安装应用体验不受影响。本技术在判定唤起成功时立即将状态机切换至已打开状态,不执行任何降级动作,确保已安装应用的正常唤起流程不受任何干扰。

56、第四,未安装应用不再白屏。本技术通过将universal link绑定路径配置为真实存在的兜底引导页面,并通过服务器端路径重写规则确保同一路径在应用未安装时返回可读的html引导内容,彻底解决了universal link未安装场景下的白屏和nosuchkey错误。

57、第五,接口异常不阻断流程。本技术采用非阻塞上报策略,将跳转信息存储接口的调用结果与后续唤起动作完全解耦,即使上报接口超时或异常,用户的唤起操作仍能正常执行,提升了系统的鲁棒性。

58、第六,用户返回后可再次唤起。本技术通过监听页面显示事件和页面可见性变化事件,在页面恢复可见时自动将状态机重置为就绪状态,使得用户从客户端应用或外部浏览器返回后可再次点击按钮重新唤起,无需手动刷新页面。

59、第七,业务跳转链路可追踪。本技术通过非阻塞上报机制,在不影响用户体验的前提下完成了跳转来源、业务类型和应用链接的上报,为后续业务归因和数据分析提供了可靠的数据基础。