一种web混合应用的更新方法和系统的制作方法
【技术领域】
[0001]本发明涉及互联网领域,具体涉及一种web混合应用的更新方法和系统。
【背景技术】
[0002]现如今,智能设备越来越广泛地应用在生活的方方面面,智能设备例如台式电脑、笔记本电脑、手机、平板电脑等,其上安装的应用(App)可以分为原生应用、web应用、web混合应用。
[0003]原生应用是专门针对某一类智能设备而生的,它们通常是被直接安装到设备里。Web应用是需要用到网络的应用,它们利用智能设备上的浏览器(例如windows系统中的IE、iPhone中的Safari)来运行,而且它们不需要在设备上下载后安装。web混合应用是指介于原生应用和web应用之间的应用,是原生应用和Web应用的结合体,采用了原生应用的一部分、Web应用的一部分,所以必须在部分在设备上运行、部分在Web上运行。它虽然看上去是一个原生应用,但只有一个原生应用的框架,里面访问的是一个Web应用。web混合应用兼具原生应用良好用户交互体验的优势和web应用跨平台开发的优势,现如今,市场上一些主流移动应用都是基于web混合应用的方式开发的。
[0004]现有的web混合应用通常把HTML、CSS、JavaScript、资源文件和web运行时框架打包成系统原生应用的格式来发布,但是这种方式下web混合应用不能像在浏览器中运行一样实时更新。而JavaScript的脚本解析随着web混合应用的日益复杂也变得更加耗时影响用户体验。
[0005]为了使用web技术开发系统级应用,现有的方法通常是将应用UI和逻辑使用HTML、CSS、JavaScr ipt开发好,然后把它们和web运行时环境的框架(比如Cordova、Crosswalk)打包在一起发布。这样打包的web混合应用可以跟原生应用一样访问系统级API。但是更新这样的web混合应用需要经过重新打包、发布、用户更新的流程。具体来说,图1所示为现有的web混合应用开发使用流程的示意图。如图1所示,开发人员在开发机10’上开发好HTML/CSS/JS以及资源文件以后,再通过Cordova等打包上传到应用商店20’,用户在智能设备中安装该web混合应用30 ’后,像其他应用一样使用,如果要提供在线更新功能,web混合应用30’需要在native层实现下载、更新以及失败回滚等功能,而且应用服务器40’和更新服务器50’也需要相应地调整。
【发明内容】
[0006]本发明实施例提供一种web混合应用的更新方法和系统,以解决现有技术存在的web混合应用不能像在浏览器中运行一样实时更新的问题。
[0007]在一实施例中,本发明提出一种web混合应用的更新方法,包括:
[0008]开发web混合应用所需要的资源,并将所开发的资源存放在web服务器上;
[0009]利用Service Worker将所开发的资源打包,生成应用缓存文件,所述web混合应用缓存文件包括Service Worker打包脚本和改变格式后的所述资源;
[0010]利用Service Worker客户端脚本替换所述Service Worker打包脚本;
[0011]将替换后的所述web混合应用缓存文件上传到应用商店,作为web混合应用发布;
[0012]当下载到智能设备的所述web混合应用需要更新时,所述web服务器接收所述智能设备中安装的所述web混合应用中的Service Worker客户端脚本发出的更新请求,并将对应的更新资源传输至所述智能设备。
[0013]在一实施例中,所述利用Service Worker将所开发的资源打包,是利用ServiceWorker和Web Runtime打包和存储所述资源。
[0014]在一实施例中,所述资源包括HTML文件、CSS文件、JavaScript脚本文件、文字、图片至少一者。
[0015]在一实施例中,利用ServiceWorker将所开发的资源打包,生成应用缓存文件的步骤中,还包括:
_0]将所述资源中的JavaScript脚本文件保存为二进制数据。
[0017]在一实施例中,所述web服务器在如下至少一种情形时接收更新请求:
[0018]所述Service Worker客户端脚本检测到所述web服务器上的替换后的所述web混合应用缓存文件具有更新;
[0019]所述的Service Worker客户端脚本检测到所述web混合应用到达使用者设定的更新周期,且所述web服务器上的替换后的所述web混合应用缓存文件具有更新版本;
[°02°] 所述Service Worker客户端脚本检测到使用者发出更新请求,且所述web服务器上的替换后的所述web混合应用缓存文件具有更新版本;
[0021]所述Service Worker客户端脚本检测所述智能设备处于未被使用的状态,且所述web服务器上的替换后的所述web混合应用缓存文件具有更新版本。
[0022 ]本发明另一实施例还提出一种web混合应用的更新系统,包括:
[0023]资源存放模块,用于将web混合应用所需要的资源存放在web服务器上;
[0024]资源打包模块,用于利用ServiceWorker将所开发的资源打包,生成应用缓存文件,所述web混合应用缓存文件包括Service Worker打包脚本和改变格式后的所述资源;
[0025]脚本替换模块,用于利用Service Worker客户端脚本替换所述Service Worker打包脚本;
[0026]发布模块,用于将替换后的所述web混合应用缓存文件上传到应用商店,作为web混合应用发布;
?0027] 更新模块,当下载到智能设备的所述web混合应用需要更新时,所述web服务器接收所述智能设备中安装的所述web混合应用中的Service Worker客户端脚本发出的更新请求,并将对应的更新资源传输至所述智能设备。
[0028]在一实施例中,所述资源打包模块具体用于利用Service Worker和Web Runtime存储所述资源。
[0029]在一实施例中,所述资源包括HTML文件、CSS文件、JavaScript脚本文件、文字、图片至少一者。
[°03°]在一实施例中,所述资源打包模块进一步用于将所述资源中的JavaScript脚本文件保存为二进制数据。
[0031 ]在一实施例中,所述更新模块在如下至少一种情形下接收更新请求:
[0032]所述Service Worker客户端脚本检测到所述web服务器上的替换后的所述web混合应用缓存文件具有更新;
[0033]所述的Service Worker客户端脚本检测到所述web混合应用到达使用者设定的更新周期,且所述web服务器上的替换后的所述web混合应用缓存文件具有更新版本;
[0034]所述Service Worker客户端脚本检测到使用者发出更新请求,且所述web服务器上的替换后的所述web混合应用缓存文件具有更新版本;
[0035]所述ServiceWorker客户端脚本检测所述智能设备处于未被使用的状态,且所述web服务器上的替换后的所述web混合应用缓存文件具有更新版本。
[0036]本发明提出的web混合应用的更新方法和更新系统中,利用Service Worker技术为在线网页提供的可编程后台离线缓存的能力,使web混合应用能够实时更新,相比于传统的web混合应用,本发明提出的web混合应用的更新方法和更新系统能够实现web混合应用的更新资源被开发人员开发并上传至web服务器之后直接同步至使用者的智能设备,更新资源可以直接被智能设备读取使用,无需进行编译等步骤,节省了更新和启动时间,为web混合应用提供更好的用户体验。
【附图说明】
[0037]图1所示为现有的web混合应用开发使用流程的示意图。
[0038]图2所示为本发明一实施例的web混合应用的更新流程的示意图。
[0039]图3所示为打包的过程示意图。
[0040]图4所示为本发明一实施例的web混合应用的更新方法的流程图。
[0041 ]图5所示为本发明一实施例的web混合应用的更新系统的方框图。
【具体实施方式】
[0042]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
[0043]本发明的核心构思之一在于,将在线网页的离线缓存技术引入web混合应用打包中,利用Service Worker技术为在线网页提供的可编程后台离线缓存的能力,解决现有技术中web混合应用无法实时更新的问题,使web混合应用既能成为系统的原生级别应用,又能享有网页级别的实时更新,为web混合应用提供更好的用户体验。
[0044]图2所示为本发明一实施例的web混合应用的更新流程的示意图。如图2所示,开发人员在开发机10上开发好HTML/CSS/JS等资源文件之后,将它们上传至web服