System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机,尤其涉及一种小程序加载和上传方法、装置、设备及存储介质。
技术介绍
1、市面上主流的小程序普遍要运行在手机端或电脑端应用程序(app)中,小程序自身无法脱离app独立运行,例如微信小程序。这种方式主要有三个问题:1.若要运行小程序,需要先安装app,平台移植性差;2.不同小程序可能依赖不同的组件,将所有小程序依赖的组件均打包在app安装包中,会导致app的安装包很大,用户使用体验差;3.组件无法独立进行更新,需要对app安装包整体进行升级才能更新。
2、上述内容仅用于辅助理解本专利技术的技术方案,并不代表承认上述内容是现有技术。
技术实现思路
1、本专利技术的主要目的在于提供一种小程序加载和上传方法、装置、设备及存储介质,旨在解决现有技术小程序移植性差且维护不便的技术问题。
2、为实现上述目的,本专利技术提供了一种小程序加载方法,所述方法包括以下步骤:
3、在用户通过浏览器访问目标网站时,从所述目标网站获取小程序元数据;
4、根据所述小程序元数据确定代码下载地址及依赖组件信息;
5、根据所述代码下载地址下载小程序代码,并获取所述依赖组件信息对应的组件代码;
6、根据所述小程序代码及所述组件代码在所述浏览器中加载小程序。
7、可选的,所述获取所述依赖组件信息对应的组件代码的步骤,包括:
8、检测组件缓存池中是否存在所述依赖组件信息对应的组件代码,所述组件缓存池为会话级
9、若存在,则从所述组件缓存池中读取所述依赖组件信息对应的组件代码。
10、可选的,所述检测组件缓存库中是否存在所述依赖组件信息对应的组件代码的步骤之后,还包括:
11、获取预设组件下载地址;
12、根据所述预设组件下载地址获取所述依赖组件信息对应的组件代码;
13、将所述组件代码存储至所述组件缓存池中。
14、可选的,所述依赖组件信息为多个;
15、所述根据所述预设组件下载地址获取所述依赖组件信息对应的组件代码的步骤,包括:
16、根据所述依赖组件信息及所述预设组件下载地址生成多个组件下载任务;
17、根据预设下载策略生成多个组件下载线程;
18、依据所述组件下载线程及所述组件下载任务进行并行下载,获得所述依赖组件信息对应的组件代码。
19、可选的,所述在用户通过浏览器访问目标网站时,从所述目标网站获取小程序元数据的步骤,包括:
20、在用户通过浏览器访问目标网站时,从所述目标网站获取小程序sdk,并将所述小程序sdk安装在所述浏览器中;
21、在安装完成时,运行所述小程序sdk,从所述目标网站获取小程序元数据。
22、此外,为实现上述目的,本专利技术还提出一种小程序上传方法,所述小程序上传方法包括以下步骤:
23、在接收到用户提交的小程序开发文件时,根据所述小程序开发文件确定依赖组件信息;
24、对所述小程序开发文件进行编译,获得小程序代码;
25、将所述小程序代码进行存储,并生成对应的代码下载地址;
26、根据所述依赖组件信息及所述代码下载地址生成小程序元数据,并将所述小程序元数据与所述小程序代码关联存储。
27、可选的,所述根据所述小程序开发文件确定依赖组件信息的步骤,包括:
28、检测所述小程序开发文件中是否存在组件配置文件;
29、若存在,则根据预设配置格式对所述组件配置文件进行解析,获得解析结果;
30、根据所述解析结果确定依赖组件信息。
31、可选的,所述检测所述小程序开发文件中是否存在组件配置文件的步骤之后,还包括:
32、若不存在,则对所述小程序开发文件进行静态分析,获得所述小程序开发文件对应的组件引入语句;
33、根据所述组件引入语句确定依赖组件信息。
34、可选的,所述对所述小程序开发文件进行编译,获得小程序代码的步骤之前,还包括:
35、获取预设组件资源列表;
36、根据所述预设组件资源列表对所述依赖组件信息进行合法性检测;
37、若所述依赖组件信息合法,则执行所述对所述小程序开发文件进行编译,获得小程序代码的步骤。
38、可选的,所述根据所述预设组件资源列表对所述依赖组件信息进行合法性检测的步骤,包括:
39、从所述预设组件资源列表中读取各组件资源的组件名称;
40、将各组件资源的组件名称进行聚合,获得组件名称集合;
41、检测所述依赖组件信息对应的组件名称是否存在于所述组件名称集合中;
42、若存在于所述组件名称集合中,则判定所述依赖组件信息合法。
43、可选的,所述若所述依赖组件信息合法,则执行所述对所述小程序开发文件进行编译,获得小程序代码的步骤,包括:
44、若所述依赖组件信息合法,则对所述小程序开发文件进行静态分析,获得所述小程序开发文件对应的抽象语法树;
45、基于所述抽象语法树对所述小程序开发文件进行代码合法校验;
46、若所述小程序开发文件通过所述代码合法校验,则执行所述对所述小程序开发文件进行编译,获得小程序代码的步骤。
47、此外,为实现上述目的,本专利技术还提出一种小程序加载装置,所述小程序加载装置包括以下模块:
48、数据获取模块,用于在用户通过浏览器访问目标网站时,从所述目标网站获取小程序元数据;
49、数据解析模块,用于根据所述小程序元数据确定代码下载地址及依赖组件信息;
50、代码下载模块,用于根据所述代码下载地址下载小程序代码,并获取所述依赖组件信息对应的组件代码;
51、程序加载模块,用于根据所述小程序代码及所述组件代码在所述浏览器中加载小程序。
52、可选的,所述代码下载模块,还用于检测组件缓存池中是否存在所述依赖组件信息对应的组件代码,所述组件缓存池为会话级缓存池;若存在,则从所述组件缓存池中读取所述依赖组件信息对应的组件代码。
53、可选的,所述代码下载模块,还用于获取预设组件下载地址;根据所述预设组件下载地址获取所述依赖组件信息对应的组件代码;将所述组件代码存储至所述组件缓存池中。
54、可选的,所述依赖组件信息为多个;
55、所述代码下载模块,还用于根据所述依赖组件信息及所述预设组件下载地址生成多个组件下载任务;根据预设下载策略生成多个组件下载线程;依据所述组件下载线程及所述组件下载任务进行并行下载,获得所述依赖组件信息对应的组件代码。
56、此外,为实现上述目的,本专利技术还提出一种小程序上传装置,所述小程序上传装置包括以下模块:
57、文件接收模块,用于在接收到用户提交的小程序开发文件时,根据所述小本文档来自技高网...
【技术保护点】
1.一种小程序加载方法,其特征在于,所述小程序加载方法包括以下步骤:
2.如权利要求1所述的小程序加载方法,其特征在于,所述获取所述依赖组件信息对应的组件代码的步骤,包括:
3.如权利要求2所述的小程序加载方法,其特征在于,所述检测组件缓存库中是否存在所述依赖组件信息对应的组件代码的步骤之后,还包括:
4.一种小程序上传方法,其特征在于,所述小程序上传方法包括以下步骤:
5.如权利要求4所述的小程序上传方法,其特征在于,所述根据所述小程序开发文件确定依赖组件信息的步骤,包括:
6.如权利要求5所述的小程序上传方法,其特征在于,所述检测所述小程序开发文件中是否存在组件配置文件的步骤之后,还包括:
7.一种小程序加载装置,其特征在于,所述小程序加载装置包括以下模块:
8.一种小程序上传装置,其特征在于,所述小程序上传装置包括以下模块:
9.一种小程序管理设备,其特征在于,所述小程序管理设备包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的小程序加载程序或小程序上传程序,所述小
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有小程序加载程序或小程序上传程序,所述小程序加载程序执行时实现如权利要求1-5中任一项所述的小程序加载方法的步骤,所述小程序上传程序执行时实现如权利要求6所述的小程序上传方法的步骤。
...【技术特征摘要】
1.一种小程序加载方法,其特征在于,所述小程序加载方法包括以下步骤:
2.如权利要求1所述的小程序加载方法,其特征在于,所述获取所述依赖组件信息对应的组件代码的步骤,包括:
3.如权利要求2所述的小程序加载方法,其特征在于,所述检测组件缓存库中是否存在所述依赖组件信息对应的组件代码的步骤之后,还包括:
4.一种小程序上传方法,其特征在于,所述小程序上传方法包括以下步骤:
5.如权利要求4所述的小程序上传方法,其特征在于,所述根据所述小程序开发文件确定依赖组件信息的步骤,包括:
6.如权利要求5所述的小程序上传方法,其特征在于,所述检测所述小程序开发文件中是否存在组件配置文件的步骤之后,还包括:
7.一种小程序加载装置,其特征在于,...
【专利技术属性】
技术研发人员:李智杰,何烁,
申请(专利权)人:北京奇虎科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。