CN111176754A - Html5应用运行方法、装置、运行器及计算机可读存储介质 - Google Patents
Html5应用运行方法、装置、运行器及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111176754A CN111176754A CN201911352294.3A CN201911352294A CN111176754A CN 111176754 A CN111176754 A CN 111176754A CN 201911352294 A CN201911352294 A CN 201911352294A CN 111176754 A CN111176754 A CN 111176754A
- Authority
- CN
- China
- Prior art keywords
- storage address
- html5
- application
- local
- specified file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000003860 storage Methods 0.000 title claims abstract description 209
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000012545 processing Methods 0.000 claims abstract description 30
- 238000004590 computer program Methods 0.000 claims description 21
- 230000001960 triggered effect Effects 0.000 claims description 4
- 238000012550 audit Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 10
- 230000008901 benefit Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004806 packaging method and process Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 208000001613 Gambling Diseases 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000002574 poison Substances 0.000 description 1
- 231100000614 poison Toxicity 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000035922 thirst Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例公开了一种基于iOS系统的HTML5应用运行方法、装置和运行器、计算机可读存储介质。该方法包括:接收启动HTML5应用的触发指令,以启动所述HTML5应用,HTML5应用的主应用程序调用iOS系统提供的原生浏览器控件加载HTML5项目资源包的网络存储地址,当原生浏览器控件加载所述网络存储地址以访问HTML5项目资源包中的指定文件的指令时,确定所述网络存储地址对应的本地存储地址,判断本地存储地址指向的本地缓存内是否存在所述指定文件,如果存在,则从所述本地缓存中获取所述指定文件并提交给所述原生浏览器控件处理;如果不存在,则从网络服务器上下载所述指定文件,并将下载的所述指定文件提交给所述原生浏览器控件处理。通过该技术方案可以解决现有技术中存在的缓存“不可控”等问题。
Description
技术领域
本申请涉及HTML5应用技术领域,尤其涉及一种基于iOS系统的HTML5应用运行方法、装置及运行器、计算机可读存储介质。
背景技术
HTML5是最新的HTML(HyperText Markup Language,超文本标记语言)标准,专门为承载丰富的WEB内容而设计,它通过Canvas提供标准绘图API(比如:DrawImage、FillRect、Translate、scale、rotate等)实现WEB内容更好效果的展现。HTML5还可以通过WebGL协议直接控制GPU(显卡),利用显卡硬件加速,进一步提高显示效率和增强显示效果。
为了进行HTML5应用的展现,iOS系统提供Safari浏览器供用户访问HTML5应用内容。现有HTML5应用以JavaScript语言编写,底层通过封装JavaScript引擎做到JavaScript语言和C++语言的相互调用,再通过调用OpenGLES进行画面显示,但是苹果公司规定,在iOS系统中JIT(Just In Time)功能除了在Safari浏览器中可以开启外,其他JS引擎均不能开启,导致HTML5应用运行效率低下。
为此,业界提供了另一种做法,直接使用WKWebview浏览器控件(一种原生浏览器控件)展现HTML5应用,即通过WKWebview浏览器控件加载HTML5应用的网络存储地址,从该网络存储地址获取HTML5应用对应的网络资源,进而在本地呈现出HTML5网页内容。但是,由于网络资源大小不一,这种直接使用WKWebview的方式将导致本地文件缓存不可控,同时,基于本地文件缓存大小受限,也不能适应网络资源存储量不确定带来的变动特性。此外,这种直接使用WKWebview的方式,可以动态更新网页地址和内容,存在潜在风险,导致在进行HTML5应用的发布时,可能无法审核通过,影响HTML5应用项目的正常发布。
发明内容
为解决现有技术中存在的问题,本申请实施例提供一种基于iOS系统的HTML5应用运行方法、装置、运行器和计算机可读存储介质。
第一方面,本申请实施例提供的基于iOS系统的HTML5应用运行方法包括:接收启动HTML5应用的触发指令,以启动所述HTML5应用,所述HTML5应用的主应用程序调用iOS系统提供的原生浏览器控件,所述原生浏览器控件用于加载所述HTML5应用的HTML5项目资源包的网络存储地址,所述网络存储地址与本地存储地址对应,所述本地存储地址指向用于预先存储所述HTML5应用的HTML5项目资源包的本地缓存;
当所述原生浏览器控件加载所述网络存储地址以访问HTML5项目资源包中的指定文件的指令时,确定所述网络存储地址对应的本地存储地址,判断所述本地存储地址指向的本地缓存内是否存在所述指定文件,如果存在,则根据所述本地存储地址从所述本地缓存中获取所述指定文件并提交给所述原生浏览器控件处理;如果不存在,则根据所述网络存储地址从网络服务器上下载所述指定文件,并将下载的所述指定文件提交给所述原生浏览器控件处理。
优选地,所述HTML5应用启动时,所述HTML5应用的主应用程序启动网页服务器HttpServer,所述网络存储地址与本地存储地址对应关系按照如下方式建立:
当所述原生浏览器控件加载HTML5项目资源包的网络存储地址时,所述网页服务器HttpServer根据所述网络存储地址生成本地存储地址,所述本地存储地址包括所述网络存储地址,或者不包括所述网络存储地址;
建立所述网络存储地址与所述本地存储地址之间的对应关系。
优选地,当所述本地存储地址包括所述网络存储地址时,如果所述缓存内不存在所述指定文件,则根据所述本地存储地址中包括的网络存储地址从网络服务器上下载所述指定文件。
优选地,所述HTML5应用启动时,所述HTML5应用的主应用程序启动网页服务器HttpServer,则所述根据所述本地存储地址从所述本地缓存中获取所述指定文件并提交给所述原生浏览器控件处理包括:
所述网页服务器HttpServer根据所述本地存储地址从所述本地缓存中获取所述指定文件并提交给所述原生浏览器控件处理。
优选地,当所述HTML5项目资源包存在更新时,对更新后的资源包重新打包并存储在本地缓存。
优选地,当需要在iOS系统指定的应用发布平台发布所述HTML5应用时,将所述更新后重新打包的资源包提交所述应用发布平台审核。
另一方面,本申请实施例提供的基于iOS系统的HTML5应用运行装置包括指令接收单元、地址确定单元、缓存判断单元以及文件获取单元,其中:
所述指令接收单元,用于接收启动HTML5应用的触发指令,以启动所述HTML5应用,所述HTML5应用的主应用程序调用iOS系统提供的原生浏览器控件,所述原生浏览器控件用于加载所述HTML5应用的HTML5项目资源包的网络存储地址,所述网络存储地址与本地存储地址对应,所述本地存储地址指向用于预先存储所述HTML5应用的HTML5项目资源包的本地缓存;
所述地址确定单元,用于在所述原生浏览器控件加载所述网络存储地址以访问HTML5项目资源包中的指定文件的指令时,确定所述网络存储地址对应的本地存储地址;
所述缓存判断单元,用于判断所述本地缓存地址指向的本地缓存内是否存在所述指定文件,如果存在,触发所述文件获取单元;如果不存在,触发所述文件获取单元;
所述文件获取单元,用于在所述缓存内存在所述指定文件时,根据所述本地存储地址从所述本地缓存中获取所述指定文件并提交给所述原生浏览器控件处理;在所述缓存不存在所述指定文件时,根据所述网络存储地址从网络服务器上下载所述指定文件,并将下载的所述指定文件提交给所述原生浏览器控件处理。
再一方面,本申请实施例提供的另一基于iOS系统的HTML5应用运行装置包括HTML5应用模块、原生浏览器控件、网页服务器HttpServer以及本地缓存,其中:
所述HTML5应用模块,在接收到启动HTML5应用的触发指令时,调用iOS系统提供的原生浏览器控件,以便加载与所述HTML5应用对应的HTML5项目资源包的所述网络存储地址;
所述HTML5应用模块,在接收到启动HTML5应用的触发指令时,HTML5应用模块启动网页服务器HttpServer,所述网页服务器HttpServer根据所述网络存储地址生成本地存储地址,所述本地存储地址包括所述网络存储地址,或者不包括所述网络存储地址;
所述网页服务器HttpServer判断所述本地存储地址指向的本地缓存内是否存在所述指定文件,如果存在,则根据所述本地存储地址从所述本地缓存中获取所述指定文件并提交给所述原生浏览器控件处理;如果不存在,则根据所述网络存储地址从网络服务器上下载所述指定文件,并将下载的所述指定文件提交给所述原生浏览器控件处理。
又一方面,本申请实施例提供的运行器,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时,实现如上述方法的步骤。
再一方面,本申请实施例提供的计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现如上述方法的步骤。
本申请实施例将iOS系统的浏览器控件接收到的网络存储地址进行改向到本地存储地址,且将本地存储地址指向预先打包并存储的HTML5应用资源包的本地缓存,使HTML5应用的运行可以避免或者减少到网络上去下载相关的资源,加快了运行效率,节约了资源;同时,这种地址改向的手法,使得整个HTML5应用的资源包均缓存在本地,而该缓存可以占用内存、高速缓存、磁盘存储,空间可以足够的大,以存储下即便是有几个G大小的HTML5应用,所有的资源包不用再争抢狭小的“缓存空间”,从而使得“缓存”不再出现现有技术中的不可控的状态。此外,本申请实施例还较好地兼容了HTML5应用的热更优势和应用发布平台的严审标准,有利于HTML5应用的正常发布。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的基于iOS系统的HTML5应用运行方法流程示意图;
图2为基于iOS系统的HTML5应用运行方法实施例的一个实例图;
图3为本申请实施例提供的基于iOS系统的HTML5应用运行装置结构示意图;
图4为本申请实施例提供的一种运行器的结构示意图。
具体实施方式
在前述背景技术介绍中,提到HTML5的项目通过WKWebview浏览器控件加载HTML5应用的网络存储地址,通过该网络存储地址从网络服务器上加载HTML5的项目资源包,然后将部分资源放置在本地预置的缓存(cache)内,但是该缓存通常是由iOS系统内部控件决定的,开发者无法更改。而且,相对于HTML5应用的项目资源包(通常几百兆,甚至几个G)而言,该缓存显得过小(通常15M左右),这将导致两方面的问题:一是绝大部分项目资源包始终是无法加载进入缓存的,下次打开同样的HTML5或者对当前HTML5进行刷新时,必然要重新下载,这严重影响HTML5应用的运行速度,用户体验较差;二是即便对于被缓存下来的极小的那部分资源,由于HTML5应用运行的实时性,该被缓存的部分资源可能在较长时间内仍然在缓存之中,也有可能较短时间内被后续资源包“挤兑”出该缓存区域,使该存储区域中缓存的资源变成另外的新资源。在这一过程中,可以发现该缓存是“不可控的”。也就是说,“不可控”体现在当某些时候重新加载/刷新时,该需要重新加载的资源有可能仍然在缓存中,从而能够通过缓存迅速获取到相应的资源,加速HTML5应用的运行,但在另一些时候,也可能根本没有“缘分”加载进入本地缓存,或者虽然曾加载进入本地缓存,在需要利用时已被“挤兑”掉而不得不从网络服务器上重新下载,大大增加了延时。除上述这种不可控之外,还经常存在的一种可能的现象是“更新延迟”,即当系统配置人员在后台对项目资源进行了新配置后,由于缓存的不可控,即便多次进行刷新操作,也可能导致该新配置的项目资源不能及时、确定地更换掉本地缓存中的“旧资源”,使得这一更新操作,未能充分发挥作用。
基于上述考虑,在实际应用过程中,特别需要一种新的HTML5应用的运行方法,该运行方法能够弥补前述技术存在的缺陷,解决缓存“不可控”的问题。本申请的发明人经过创造性劳动,提出一种全新的HTML5应用运行的方法。参见图1、图2,其中:图1示出了基于iOS系统的HTML5应用运行方法的一个实施例流程,图2示出了上述基于iOS系统的HTML5应用运行方法实施例的一个实例。该实施例的方法包括:
步骤S101:接收启动HTML5应用的触发指令,以启动HTML5应用;
由于HTML5应用为一个独立的应用,其运行需要在接收到触发指令后,才可能启动。通常情况下,在HTML5应用的桌面系统中,会呈现出HTML5的图标,该图标与HTML5应用的启动程序相关联,用户触发该图标时,即向桌面系统发送了触发指令,当HTML5应用接收到桌面系统传递的触发指令后,即正式触发了HTML5应用的启动过程。在本申请实施例中,启动过程触发后,HTML5应用的主应用程序将调用iOS系统提供的原生浏览器控件,该控件可用于加载HTML5应用的HTML5项目资源包的网络存储地址,在现有技术中,该网络存储地址即是HTML5项目资源包在网络服务器上的存储位置,传统的safari浏览器通过加载该网络存储地址,即可从网络服务器上下载该网络存储地址对应的HTML5项目资源包。这里需要特别说明的是,与现有或常规的HTML5应用不同的是,本申请实施例中采用HTML5应用的主应用程序调用iOS系统提供的浏览器控件(比如,WKWebview)的方式,可充分利用iOS系统浏览器控件的一些特殊优势。比如,通过WKWebview浏览器控件,可以开启iOS系统提供JIT功能,而其他诸如JavaScriptCore引擎、Google-V8、SpiderMonkey等JS引擎,则不具有这种能力。通过开启JIT功能,可以将JavaScript编写的HTML5应用程序中的一些代码动态编译成二进制码,从而提高运行效率,克服JavaScript应用程序作为解释执行型运行执行效率低于编译型语言的缺点。
由于iOS系统浏览器控件的存在,其可以加载HTML5应用项目资源包对应的网络存储地址。如前所述,该网络存储地址通常对应于存储在网络服务器上的HTML5应用资源包,通过该地址即可访问到HTML5应用资源包,从而下载到本地运行。但是,本申请实施例的做法打破这种常规,将该网络存储地址仅仅作为一种“虚拟地址”,让其对应到本地的本地存储地址,该本地端口地址用于指向本地缓存,在该本地缓存中,预先打包并存储了HTML5应用资源包。比如:假设本来需要访问的网络存储地址为:http://www.layabox.com/ layaPainter/index.html,通过前述的对应关系,可以将该网络存储地址“改向”为本地端口地址:http://127.0.0.1:8888,同时由该本地存储地址来指向HTML5应用运行所需要的资源包,该资源包预先已被打包好存储在本地存储地址指向的缓存之中。
通过上述这种“偷梁换柱”的做法,上层的浏览器控件仍然以为是真正的网络存储地址,可以毫无障碍的继续访问,在这一过程中顺利将浏览器控件本身的功能优势予以了保留,而下层实际的HTML5应用资源包通过打包存储本地而非网络,又带来一系列的好处:用户进入应用程序更加直接,只需要触发应用即可(比如直接点击HTML5应用的图标),而不用再在浏览器地址栏中输入地址;同时,打包后解决了二次入口的问题。此外,对HTML5应用资源进行打包,还可以使得该应用能顺畅接入平台方的支付,例如苹果公司的IAP支付接口,从而更符合iOS用户的使用习惯。
步骤S102:当所述原生浏览器加载所述网络存储地址以访问HTML5项目资源包中的指定文件的指令时,确定所述网络存储地址对应的本地存储地址;
通过前述步骤启动HTML5应用后,HTML5应用基于运行该应用的需要,必然要调用其涉及的相关资源包或资源包中的某个指定文件,资源包中有保障HTML5应用功能实现的JS代码、图片资源、配置文件等内容。在原生浏览器看来,到需要运行HTML5应用的某个指定文件时,它则会加载网络存储地址,以期望从该网络存储地址指向的网络服务器中下载该资源,进而导入内存供HTML5应用实现相关功能所需。与现有技术中拿着该网络存储地址即“兴冲冲”跑到该存储地址对应的网络服务器获取资源的方式不同,本申请实施例先确定该网络存储地址对应的某个本地存储地址,以期望从该本地存储地址指向的本地缓存中获取该目标资源。由于预先将HTML5应用的HTML5项目资源包打包到本地缓存中,那么原生浏览器希望取得的目标资源,则有很大可能,甚至正常情况下完全应该在本地缓存中找到该目标资源,从而利用“近水”解了“近渴”。
基于此,确定网络存储地址对应的本地存储地址变得十分重要。网络存储地址与本地存储地址之间的对应关系,可以是预先建立好的,也可以是临时建立好的。对于前者而言,在HTML5应用的开发者进行开发之时,即可将该HTML5应用的项目资源包的网络存储地址与iOS系统中某个通用端口地址建立对应关系,这样基于预先建立的映射关系即可迅速找到网络存储地址对应的本地存储地址;对于后者而言,由于该HTML5应用将在什么样的系统或平台上运行,预先很难准确获知,而不同的系统或平台的通用端口地址或者专用地址可能不同,那么在本申请的HTML5应用运行中予以建立上述对应关系,则是较为经济和可行的办法。这里在“HTML5应用运行中”可以进行最宽泛的理解,可以始于HTML5应用加载之初,而终于HTML5应用注销或退出之前,这之间的时间段都是可行的。一种实现的方式是,当原生浏览器控件记载HTML5项目资源包的网络存储地址时,HTML5应用的主应用程序启动网页服务器HttpServer,由HttpServer将网络存储地址转换为本地存储地址,从而满足后续需要。在具体进行“地址转换”时,可以有两种基本方式:一是将网络存储地址包含在转换后的本地存储地址之中,如前述的网络存储地址:http://www.layabox.com/layaPainter/index.html,转换后的本地存储地址可以是:http://127.0.0.1:8888/s/http://www.layabox.com/layaPainter/index.html,这里的“s”主要起到分隔两个不同地址的作用,当然,如果能够从转换后地址中明确找到本地存储地址对应的本地缓存,这种分隔也可以不需要,“8888”是示例性的端口地址,在临时性建立网络存储地址和本地存储地址之间的对应关系时,该端口地址可以是临时分配的,也可以是通用的,取决于系统当时的端口资源被占用情况(此示例之下,本地存储地址又可称为本地端口地址);二是转换后的本地存储地址不包含网络存储地址,这两个地址是对应关系,但互补包容。这两种方式各有好处:转换后本地存储地址包含网络存储地址的情形下,后续将提到的如果本地缓存中不存在需要的目的资源,则可以直接在该本地存储地址中截取网络存储地址用于访问网络服务器,从而获取到目的资源,不用单独存储网络存储地址,当需要时又增加对“网络存储地址”的寻址操作;转换后的本地存储地址不包含网络存储地址的情形下,将使得本地存储地址“轻盈”,起到其本应该发挥的专门作用。
步骤S103:判断所述本地存储地址指向的本地缓存内是否存在所述指定文件;如果存在,则执行步骤S104;如果不存在,则执行步骤S105;
通过前述步骤启动HTML5应用后,当HTML5应用需要访问HTML5应用资源包中的指定文件时,则会发出指定文件访问指令,该指令的发出可能在启动阶段,也可能在启动之后正式运行阶段,取决于HTML5应用需要访问什么指定文件。由于预先将HTML5应用的资源包打包缓存在本地的缓存之中,因而不用接到网络文件访问命令即马上到网络服务器上去获取,可首先在本地的缓存中查看是否存在该文件,如果存在,立即根据本地存储地址的指示,向前述的缓存“就地取用”(即步骤S104),大大加快了HTML5应用运行的效率,节约了网络资源,提高了用户体验。
尽管由于HTML5应用资源包已打包存储于本地,绝大部分访问的网络文件在本地即可获得,但也不排除仍然存在一些文件需要到网络去获取,比如,当前HTML5应用运行时可能使用到头像文件,而头像文件可能需要到该HTML5应用对应的网络服务器上或者别的应用对应的网络服务器(如用微信账号直接登录某个HTML5游戏应用)上去获取,这种情况下,则利用网络存储地址从网络服务器上进行文件下载(即步骤S104)。
步骤S104:根据所述本地存储地址从所述本地缓存中获取所述网络文件并提交给所述浏览器控件处理;
步骤S105:根据所述网络存储地址从网络服务器上下载所述网络文件,并将下载的所述网络文件提交给所述浏览器控件处理。
按照前述步骤或者从本地缓存中或者从网络服务器中获取到指定文件后,即可将该网络文件递交给浏览器控件,由浏览器控件调用相应的iOS系统资源进行渲染等处理,从而最终在用户面前呈现出来。
本申请前述实施例将iOS系统的浏览器控件接收到的网络存储地址进行改向到本地存储地址,且将本地存储地址指向预先打包并存储的HTML5应用资源包的本地缓存,一方面,绝大多数时候,HTML5应用的运行,自然不用再“跋山涉水”到网络上去下载相关的资源,加快了运行效率,节约了资源;另一方面,这种地址改向的手法,使得整个HTML5应用的资源包均缓存在本地,而该缓存可以占用内存、高速缓存、磁盘存储,空间可以足够的大,以存储下即便是有几个G大小的HTML5应用,所有的资源包不用再争抢狭小的“缓存空间”,从而使得“缓存”不再出现现有技术中的不可控的状态。
此外,在现有技术中,由于HTML5应用资源包位于网络服务器上,iOS系统浏览器插件访问的网络服务器上的HTML5应用资源包对应的地址已固定,当需要使用跨域文件时,即访问该网络服务器之外的其他网络服务器上的文件,将不能进行访问。而通过本申请实施例的技术方案,HTML5应用域内的资源已由网页服务器打包到本地缓存,不用或减少在HTML5应用对应网络服务器或者别的网络服务器上进行访问,便可直接得到需要的文件,从而实现了跨域访问。
下面结合改进的特征,进一步说明本申请实施例的优势。在iOS系统中,有专门的应用发布平台(比如AppStore),为了保证发布的应用可控,iOS系统对每次发布的HTML5应用均需要进行严格的审核,只有审核通过的HTML5应用才可发布在该平台上,但是,由于HTML5应用的一个重要的特点是“热更”,即可以迅速地修改JS代码,改变该HTML5应用的展示,但是,这样所谓的巨大“优势”在目前iOS系统下反倒是“劣势”,因为每有更新,为避免在该更新中夹带非法内容(比如,黄赌毒信息),均需要重新打包提交该应用发布平台审核,无论是对开发者而言,还是该应用发布平台的审核方而言,均增加了工作量。同时,应用发布平台要求严格时,可能会限制甚至禁止在该平台上发布HTML5应用,这对HTML5应用(产业/行业)不能不说是一种重要的打击。为兼容HTML5应用的热更优势和发布平台的严审标准,本申请实施例通过在每次热更后,将HTML5应用对应的项目资源进行重新打包,并将该资源包置于本地缓存之中。采用这种解决方案,即便热更之后再次提交给应用发布平台审核,由于热更的内容主要被打包在本地,并不会给该发布平台带来潜在的风险,从而符合了Apple公司的标准,消除了其担心的可能隐患,有利于HTML5应用成功审发布到专用平台(比如,AppStore)上。
前述实施例从方法的角度,详细介绍了本申请实施例的技术方案,并重点分析了该实施例是如何通过解决现有技术的问题而带来新的技术优势。实际上,除可以从方法侧面对该技术方案进行描述外,还可以从装置角度、计算机存储介质等角度予以说明。参见图3所示,该图示出了本申请从装置的角度提供的基于iOS系统的HTML5应用运行装置实施例。该装置实施例包括指令接收单元U301、地址确定单元U302、缓存判断单元U303以及文件获取单元U304,其中:
指令接收单元U301,用于接收启动HTML5应用的触发指令,以启动所述HTML5应用,所述HTML5应用的主应用程序调用iOS系统提供的原生浏览器控件,所述原生浏览器控件用于加载所述HTML5应用的HTML5项目资源包的网络存储地址,所述网络存储地址与本地存储地址对应,所述本地存储地址指向用于预先存储所述HTML5应用的HTML5项目资源包的本地缓存;
地址确定单元U302,用于在所述原生浏览器控件加载所述网络存储地址以访问HTML5项目资源包中的指定文件的指令时,确定所述网络存储地址对应的本地存储地址;
缓存判断单元U303,用于判断所述本地缓存地址指向的本地缓存内是否存在所述指定文件,如果存在,触发所述文件获取单元;如果不存在,触发所述文件获取单元;
文件获取单元U304,用于在所述缓存内存在所述指定文件时,根据所述本地存储地址从所述本地缓存中获取所述指定文件并提交给所述原生浏览器控件处理;在所述缓存不存在所述指定文件时,根据所述网络存储地址从网络服务器上下载所述指定文件,并将下载的所述指定文件提交给所述原生浏览器控件处理。
该装置是基于软件程序的运行过程而虚拟化出来的实施例,其功能与效果与前述的方法实施例相同或相似,此处不再赘言。基于同样的道理,前述方法实施例的优化方案同样可以虚拟化为相应的装置结构,从而构成本装置实施例的优化方案。除这种所谓虚拟化的装置方案外,本申请还提供另一种装置实施例,即基于iOS系统的HTML5应用运行装置,所述装置包括HTML5应用模块、原生浏览器控件、网页服务器HttpServer以及本地缓存,其中:
所述HTML5应用模块,在接收到启动HTML5应用的触发指令时,调用iOS系统提供的原生浏览器控件,以便加载与所述HTML5应用对应的HTML5项目资源包的所述网络存储地址;
所述HTML5应用模块,在接收到启动HTML5应用的触发指令时,HTML5应用模块启动网页服务器HttpServer,所述网页服务器HttpServer根据所述网络存储地址生成本地存储地址,所述本地存储地址包括所述网络存储地址,或者不包括所述网络存储地址;
所述网页服务器HttpServer判断所述本地存储地址指向的本地缓存内是否存在所述指定文件,如果存在,则根据所述本地存储地址从所述本地缓存中获取所述指定文件并提交给所述原生浏览器控件处理;如果不存在,则根据所述网络存储地址从网络服务器上下载所述指定文件,并将下载的所述指定文件提交给所述原生浏览器控件处理。
此外,本申请的实施例还提供一种运行器。参照图4,该图示出了运行器的一个实施例的结构示意图,所述运行器400中包含存储器401、处理器402及存储在所述存储器401上并可在所述处理器402上运行的计算机程序,所述计算机程序被所述处理器402执行时实现上述记载的基于区块链的数据处理方法的步骤。与此道理类似,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种基于iOS系统的HTML5应用运行方法,其特征在于,该方法包括:
接收启动HTML5应用的触发指令,以启动所述HTML5应用,所述HTML5应用的主应用程序调用iOS系统提供的原生浏览器控件,所述原生浏览器控件用于加载所述HTML5应用的HTML5项目资源包的网络存储地址,所述网络存储地址与本地存储地址对应,所述本地存储地址指向用于预先存储所述HTML5应用的HTML5项目资源包的本地缓存;
当所述原生浏览器控件加载所述网络存储地址以访问HTML5项目资源包中的指定文件的指令时,确定所述网络存储地址对应的本地存储地址,判断所述本地存储地址指向的本地缓存内是否存在所述指定文件,如果存在,则根据所述本地存储地址从所述本地缓存中获取所述指定文件并提交给所述原生浏览器控件处理;如果不存在,则根据所述网络存储地址从网络服务器上下载所述指定文件,并将下载的所述指定文件提交给所述原生浏览器控件处理。
2.根据权利要求1所述的方法,其特征在于,所述HTML5应用启动时,所述HTML5应用的主应用程序启动网页服务器HttpServer,所述网络存储地址与本地存储地址对应关系按照如下方式建立:
当所述原生浏览器控件加载HTML5项目资源包的网络存储地址时,所述网页服务器HttpServer根据所述网络存储地址生成本地存储地址,所述本地存储地址包括所述网络存储地址,或者不包括所述网络存储地址;
建立所述网络存储地址与所述本地存储地址之间的对应关系。
3.根据权利要求2所述的方法,其特征在于,当所述本地存储地址包括所述网络存储地址时,如果所述缓存内不存在所述指定文件,则根据所述本地存储地址中包括的网络存储地址从网络服务器上下载所述指定文件。
4.根据权利要求1所述的方法,其特征在于,所述HTML5应用启动时,所述HTML5应用的主应用程序启动网页服务器HttpServer,则所述根据所述本地存储地址从所述本地缓存中获取所述指定文件并提交给所述原生浏览器控件处理包括:
所述网页服务器HttpServer根据所述本地存储地址从所述本地缓存中获取所述指定文件并提交给所述原生浏览器控件处理。
5.根据权利要求1所述的方法,其特征在于,当所述HTML5项目资源包存在更新时,对更新后的资源包重新打包并存储在本地缓存。
6.根据权利要求5所述的方法,其特征在于,当需要在iOS系统指定的应用发布平台发布所述HTML5应用时,将所述更新后重新打包的资源包提交所述应用发布平台审核。
7.一种基于iOS系统的HTML5应用运行装置,其特征在于,所述装置包括指令接收单元、地址确定单元、缓存判断单元以及文件获取单元,其中:
所述指令接收单元,用于接收启动HTML5应用的触发指令,以启动所述HTML5应用,所述HTML5应用的主应用程序调用iOS系统提供的原生浏览器控件,所述原生浏览器控件用于加载所述HTML5应用的HTML5项目资源包的网络存储地址,所述网络存储地址与本地存储地址对应,所述本地存储地址指向用于预先存储所述HTML5应用的HTML5项目资源包的本地缓存;
所述地址确定单元,用于在所述原生浏览器控件加载所述网络存储地址以访问HTML5项目资源包中的指定文件的指令时,确定所述网络存储地址对应的本地存储地址;
所述缓存判断单元,用于判断所述本地缓存地址指向的本地缓存内是否存在所述指定文件,如果存在,触发所述文件获取单元;如果不存在,触发所述文件获取单元;
所述文件获取单元,用于在所述缓存内存在所述指定文件时,根据所述本地存储地址从所述本地缓存中获取所述指定文件并提交给所述原生浏览器控件处理;在所述缓存不存在所述指定文件时,根据所述网络存储地址从网络服务器上下载所述指定文件,并将下载的所述指定文件提交给所述原生浏览器控件处理。
8.一种基于iOS系统的HTML5应用运行装置,其特征在于,所述装置包括HTML5应用模块、原生浏览器控件、网页服务器HttpServer以及本地缓存,其中:
所述HTML5应用模块,在接收到启动HTML5应用的触发指令时,调用iOS系统提供的原生浏览器控件,以便加载与所述HTML5应用对应的HTML5项目资源包的所述网络存储地址;
所述HTML5应用模块,在接收到启动HTML5应用的触发指令时,HTML5应用模块启动网页服务器HttpServer,所述网页服务器HttpServer根据所述网络存储地址生成本地存储地址,所述本地存储地址包括所述网络存储地址,或者不包括所述网络存储地址;
所述网页服务器HttpServer判断所述本地存储地址指向的本地缓存内是否存在所述指定文件,如果存在,则根据所述本地存储地址从所述本地缓存中获取所述指定文件并提交给所述原生浏览器控件处理;如果不存在,则根据所述网络存储地址从网络服务器上下载所述指定文件,并将下载的所述指定文件提交给所述原生浏览器控件处理。
9.一种运行器,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时,实现如权利要求1至6中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现如权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911352294.3A CN111176754B (zh) | 2019-12-25 | 2019-12-25 | Html5应用运行方法、装置、运行器及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911352294.3A CN111176754B (zh) | 2019-12-25 | 2019-12-25 | Html5应用运行方法、装置、运行器及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111176754A true CN111176754A (zh) | 2020-05-19 |
CN111176754B CN111176754B (zh) | 2023-11-10 |
Family
ID=70648909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911352294.3A Active CN111176754B (zh) | 2019-12-25 | 2019-12-25 | Html5应用运行方法、装置、运行器及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111176754B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112163231A (zh) * | 2020-09-17 | 2021-01-01 | 北京一人一亩田网络科技有限公司 | iOS应用自动化打包预缓存数据的方法、装置、电子设备及计算机可读介质 |
CN112286592A (zh) * | 2020-10-29 | 2021-01-29 | 平安普惠企业管理有限公司 | 资源数据的加载方法及装置、存储介质、计算机设备 |
CN112540811A (zh) * | 2020-12-15 | 2021-03-23 | 平安科技(深圳)有限公司 | 缓存数据的检测方法、装置、计算机设备和存储介质 |
CN114116048A (zh) * | 2021-11-10 | 2022-03-01 | 北京乐驾科技有限公司 | 移动设备应用程序轻量化的实现方法以及装置 |
CN114760282A (zh) * | 2022-04-29 | 2022-07-15 | 深圳依时货拉拉科技有限公司 | 基于ios系统的网络请求方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105022750A (zh) * | 2014-04-28 | 2015-11-04 | 腾讯科技(北京)有限公司 | 资源文件加载方法和装置 |
CN106569859A (zh) * | 2016-10-28 | 2017-04-19 | 搜游网络科技(北京)有限公司 | 一种目标文件的加载方法及装置 |
CN107800769A (zh) * | 2017-09-15 | 2018-03-13 | 北京麒麟合盛网络技术有限公司 | 一种网页打开方法和装置 |
CN109800367A (zh) * | 2018-12-13 | 2019-05-24 | 平安科技(深圳)有限公司 | 网页加载方法、装置、计算机设备及存储介质 |
CN110263275A (zh) * | 2019-06-14 | 2019-09-20 | 深圳前海桔子信息技术有限公司 | 一种访问网页的方法、装置、移动终端和存储介质 |
-
2019
- 2019-12-25 CN CN201911352294.3A patent/CN111176754B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105022750A (zh) * | 2014-04-28 | 2015-11-04 | 腾讯科技(北京)有限公司 | 资源文件加载方法和装置 |
CN106569859A (zh) * | 2016-10-28 | 2017-04-19 | 搜游网络科技(北京)有限公司 | 一种目标文件的加载方法及装置 |
CN107800769A (zh) * | 2017-09-15 | 2018-03-13 | 北京麒麟合盛网络技术有限公司 | 一种网页打开方法和装置 |
CN109800367A (zh) * | 2018-12-13 | 2019-05-24 | 平安科技(深圳)有限公司 | 网页加载方法、装置、计算机设备及存储介质 |
CN110263275A (zh) * | 2019-06-14 | 2019-09-20 | 深圳前海桔子信息技术有限公司 | 一种访问网页的方法、装置、移动终端和存储介质 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112163231A (zh) * | 2020-09-17 | 2021-01-01 | 北京一人一亩田网络科技有限公司 | iOS应用自动化打包预缓存数据的方法、装置、电子设备及计算机可读介质 |
CN112286592A (zh) * | 2020-10-29 | 2021-01-29 | 平安普惠企业管理有限公司 | 资源数据的加载方法及装置、存储介质、计算机设备 |
CN112540811A (zh) * | 2020-12-15 | 2021-03-23 | 平安科技(深圳)有限公司 | 缓存数据的检测方法、装置、计算机设备和存储介质 |
CN112540811B (zh) * | 2020-12-15 | 2022-03-18 | 平安科技(深圳)有限公司 | 缓存数据的检测方法、装置、计算机设备和存储介质 |
CN114116048A (zh) * | 2021-11-10 | 2022-03-01 | 北京乐驾科技有限公司 | 移动设备应用程序轻量化的实现方法以及装置 |
CN114116048B (zh) * | 2021-11-10 | 2023-12-01 | 北京乐驾科技有限公司 | 移动设备应用程序轻量化的实现方法以及装置 |
CN114760282A (zh) * | 2022-04-29 | 2022-07-15 | 深圳依时货拉拉科技有限公司 | 基于ios系统的网络请求方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111176754B (zh) | 2023-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111176754B (zh) | Html5应用运行方法、装置、运行器及计算机可读存储介质 | |
US11010538B2 (en) | Systems and methods for hosted applications | |
CN107203555B (zh) | 页面加载处理方法及装置 | |
JP7464732B2 (ja) | 画像処理方法及びその装置、サーバ並びにコンピュータプログラム | |
US8595284B2 (en) | Web application script migration | |
CN110968824B (zh) | 页面数据处理方法和装置 | |
CN109388766B (zh) | 页面加载的方法和装置 | |
WO2022135178A1 (zh) | 微前端系统、子应用加载方法、电子设备、计算机程序产品及计算机可读存储介质 | |
US8161501B2 (en) | Apparatus, method and computer program product for facilitating the interoperability of virtual machines | |
CN111198998B (zh) | 基于Ajax请求的网络页面加载方法、装置及系统 | |
US20150317405A1 (en) | Web Page Variation | |
CN110825426B (zh) | 网页开发方法、预览方法、发布方法及开发系统 | |
CN111611037A (zh) | 用于电子书的视图对象处理方法、电子设备及存储介质 | |
WO2022257503A1 (zh) | 一种游戏翻译方法和装置 | |
US11537523B2 (en) | Command result caching for building application container images | |
EP2511820A1 (en) | Bypassing user mode redirection | |
CN111435382B (zh) | 一种页面的登录校验方法及终端 | |
US9639381B2 (en) | Sharing applications in a java virtual machine | |
CN111695060A (zh) | 页面切换方法、装置、设备和存储介质 | |
CN111679828A (zh) | 一种数据处理的方法及装置、电子设备、存储介质 | |
US20230390644A1 (en) | Method for translating game, electronic device, and storage medium | |
US9088463B1 (en) | Container contract for data dependencies | |
Yberg | Native-like performance and user experience with Progressive Web Apps | |
Hajian et al. | App Shell and Angular Performance | |
Wahid et al. | Rich internet application (RIA) new dimension with HTML5, CSS3 and javascript technology |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
CB02 | Change of applicant information |
Address after: 100094 1301, building 4, area 4, courtyard 81, Beiqing Road, Haidian District, Beijing Applicant after: Beijing LANYA Box Technology Co.,Ltd. Address before: 100097 Room 303, 3rd floor, building 1, No. 25, lantianchang South Road, Haidian District, Beijing Applicant before: SOUYOU NETWORK TECHNOLOGY (BEIJING) Co.,Ltd. |
|
CB02 | Change of applicant information | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |