本申请涉及领域,尤其涉及一种应用程序插件化兼容处理方法及装置。
背景技术:
1、android应用程序更新,往往需要在用户侧下载安装整个应用安装包,在安装过程中需要强制弹出安装界面,体验不够友好,进而造成用户忽略升级,软件的更新率低。
2、现有技术中,可以基于开源的插件化框架,将业务模块插件化处理,能够不经过用户侧弹窗,实现应用程序的静默安装。而由于插件化依赖于钩子hook机制实现动态加载插件模块代码,且android系统目前存在的api版本众多、同时需要兼容各种不同的框架framework层代码,因此插件化技术普遍目前存在插件升级失败或运行失败的情况,进而造成软件功能不可用、稳定性差的问题。因此,现亟需一种应用程序插件化兼容处理方法,能够在插件升级失败或运行失败的情况下,保证软件功能正常、功能页面稳定可用。
技术实现思路
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.一种应用程序插件化兼容处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,在所述获取目标页面的路由标识符之前,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述根据所述目标页面的路由标识符,利用预设的路由框架获取与所述目标页面对应的宿主插件数据以及路由插件数据,包括:
4.根据权利要求3所述的方法,其特征在于,所述响应于所述路由插件数据不满足预设插件跳转条件时,包括:当所述宿主插件的版本号大于或等于所述路由插件的版本号时,和/或,当所述路由插件的运行信息为禁用时,确定所述路由插件数据不满足预设插件跳转条件。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
6.一种应用程序插件化兼容处理装置,其特征在于,所述装置包括:
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
8.根据权利要求6所述的装置,其特征在于,所述获取模块,包括:
9.根据权利要求8所述的装置,其特征在于,所述加载模块响应于所述路由插件数据不满足预设插件跳转条件包括:当所述宿主插件的版本号大于或等于所述路由插件的版本号时,和/或,当所述路由插件的运行信息为禁用时,确定所述路由插件数据不满足预设插件跳转条件。
10.根据权利要求9所述的装置,其特征在于,所述加载模块,还用于: