CN104182241A - 一种网页应用程序更新方法及通信设备 - Google Patents
一种网页应用程序更新方法及通信设备 Download PDFInfo
- Publication number
- CN104182241A CN104182241A CN201310198466.2A CN201310198466A CN104182241A CN 104182241 A CN104182241 A CN 104182241A CN 201310198466 A CN201310198466 A CN 201310198466A CN 104182241 A CN104182241 A CN 104182241A
- Authority
- CN
- China
- Prior art keywords
- redaction
- web app
- application program
- web page
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例公开了一种Web App更新方法,包括:当接收到用于更新当前运行的网页应用程序的更新请求时,继续运行所述网页应用程序,并下载所述网页应用程序的新版本的更新包;当所述更新包下载完毕后,在后台对所述更新包执行安装,且所述安装生成的新安装文件存储于第一路径,所述第一路径不同于所述网页应用程序的当前版本的安装文件存储的第二路径;将所述新安装文件中的页面文件加载至所述网页应用程序,以显示新版本页面。相应地,本发明实施例还提供一种通信设备。本发明实施例可以使采用开放Web App技术来构建的移动操作系统中的打包封闭形式的Web App更新变得很简便,且更新过程中用户体验比较高。
Description
技术领域
本发明涉及通信领域,尤其涉及一种网页应用程序更新方法及通信设备。
背景技术
随着网页(Web)技术和超文本标记语言5(Hypertext Markup Language,HTML5)的快速发展,出现了采用开放Web技术来构建的移动操作系统(例如:Firefox OS系统),这种类型的移动操作系统是一种网络作业环境,整个系统和运行在该系统上的应用程序(Application,App)均是基于开放网络技术构建的,从而具有应用跨平台、设备廉价和系统开源等优势。其中,运行在该系统上的Web App主要有网页形式的Web App和打包封闭形式的Web App,打包封闭形式的Web App能够访问设备底层的应用程序接口(Application ProgrammingInterface,API),如重力传感器和方向传感器等API,从而能够开发具有极强用户体验的Web App。但这种Web App在新版本时,用户需要退出当前使用的WebApp,安装新的版本后再重新启动Web App,用户才能继续使用。即采用开放Web App技术来构建的移动操作系统中的打包封闭形式的Web App更新麻烦,且更新过程中用户体验较差。
发明内容
本发明实施例提供了一种网页应用程序更新方法及通信设备,可以使采用开放Web App技术来构建的移动操作系统中的打包封闭形式的Web App更新变得很简便,且更新过程中用户体验比较高。
第一方面,本发明实施例提供的一种网页应用程序更新方法,包括:
当接收到用于更新当前运行的网页应用程序的更新请求时,继续运行所述网页应用程序,并下载所述网页应用程序的新版本的更新包;
当所述更新包下载完毕后,在后台对所述更新包执行安装,且所述安装生成的新安装文件存储于第一路径,所述第一路径不同于所述网页应用程序的当前版本的安装文件存储的第二路径;
将所述新安装文件中的页面文件加载至所述网页应用程序,以显示新版本页面。
在第一方面的第一种可能的实现方式中,所述页面文件包括:
所述新安装文件中与所述网页应用程序当前所在页面对应的页面文件;或者
所述新安装文件中用于显示所述新版本的网页应用程序的首页的页面文件。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述将所述新安装文件中的页面文件加载至所述网页应用程序,包括:
确定所述网页应用程序当前所在页面在所述第二路径的子路径;
将所述第一路径的所述子路径的页面文件加载至所述网页应用程序。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述以显示新版本页面之前,所述方法包括:
缓存用于表示所述网页应用程序的当前状态的数据;
所述以显示新版本页面之后,所述方法包括:
在所述新版本页面中加载所述数据,以在所述新版本页面中显示所述当前状态。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述缓存用于表示所述网页应用程序的当前状态的数据,包括:
调用预先设置的应用程序接口中的第一命令,将用于表示所述网页应用程序的当前状态的数据缓存至与所述应用程序接口对应的缓存文件夹;
所述在所述新版本页面中加载所述数据,包括:
调用所述应用程序接口的第二命令,在所述新版本页面中加载所述缓存文件夹的所述数据。
结合第一方面的上述任一实现方式,在第一方面的第五所述下载所述网页应用程序的新版本的更新包,包括:
下载所述网页应用程序的新版本的所有数据包;或者
下载所述网页应用程序的新版本中与所述网页应用程序的当前版本的区别数据包。种可能的实现方式中,
结合第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,所述下载所述网页应用程序的新版本中与所述网页应用程序的当前版本的区别文件的数据包之后,所述在后台对所述更新包执行安装之前,所述方法还包括:
将所述当前版本中与所述新版本的相同文件转移用于存储所述区别文件的数据包的文件夹。
结合第一方面或者第一方面的第一种至第四种中任一实现方式,在第一方面的第七种可能的实现方式中,所述在后台对所述更新包执行安装之后,所述方法还包括:
将所述第一路径设置为所述网页应用程序的默认路径。
结合第一方面第七种可能的实现方式,在第一方面的第八种可能的实现方式中,所述将所述第一路径设置为所述网页应用程序的默认路径,包括:
将所述第一路径与所述网页应用程序的应用标识符进行绑定,以将所述第一路径设置为所述网页应用程序的默认路径。
结合第一方面或者第一方面的第一种至第四种中任一实现方式,在第一方面的第九种可能的实现方式中,所述接收到用于更新当前运行的网页应用程序的更新请求,包括:
接收用户输入的用于更新当前运行的网页应用程序的更新请求;或者
自动生成用于更新当前运行的网页应用程序的更新请求。
第二方面,本发明实施例提供一种通信设备,包括:下载单元、安装单元和加载单元,其中:
所述下载单元,用于当接收到用于更新当前运行的网页应用程序的更新请求时,继续运行所述网页应用程序,并下载所述网页应用程序的新版本的更新包;
所述安装单元,用于当所述更新包下载完毕后,在后台对所述更新包执行安装,且所述安装生成的新安装文件存储于第一路径,所述第一路径不同于所述网页应用程序的当前版本的安装文件存储的第二路径;
所述加载单元,用于将所述新安装文件中的页面文件加载至所述网页应用程序,以显示新版本页面。
在第二方面的第一种可能的实现方式中,所述页面文件包括:
所述新安装文件中与所述网页应用程序当前所在页面对应的页面文件;或者
所述新安装文件中用于显示所述新版本的网页应用程序的首页的页面文件。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述加载单元还用于确定所述网页应用程序当前所在页面在所述第二路径的子路径,并将所述第一路径的所述子路径的页面文件加载至所述网页应用程序。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述设备还包括:
缓存单元,用于缓存用于表示所述网页应用程序的当前状态的数据;
所述加载单元进一步还用于在所述新版本页面中加载所述数据,以在所述新版本页面中显示所述当前状态。
结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述设备还包括:所述缓存单元还用于调用预先设置的应用程序接口中的第一命令,将用于表示所述网页应用程序的当前状态的数据缓存至与所述应用程序接口对应的缓存文件夹;
所述加载单元还用于调用所述应用程序接口的第二命令,在所述新版本页面中加载所述缓存文件夹的所述数据。
结合第二方面或者第一方面的第一种至第四种中任一实现方式,在第二方面的第五种可能的实现方式中,所述下载单元还用于下载所述网页应用程序的新版本的所有数据包;或者
所述下载单元还用于下载所述网页应用程序的新版本中与所述网页应用程序的当前版本的区别数据包。
结合第二方面的第五种可能的实现方式,在第二方面的第六种可能的实现方式中,所述设备还包括:
转移单元,用于将所述当前版本中与所述新版本的相同文件转移用于存储所述区别文件的数据包的文件夹。
结合第二方面或者第一方面的第一种至第四种中任一实现方式,在第二方面的第七种可能的实现方式中,所述设备还包括:
设置单元,用于将所述第一路径设置为所述网页应用程序的默认路径。
结合第二方面或者第一方面的第一种至第四种中任一实现方式,在第二方面的第八种可能的实现方式中,所述接收到用于更新当前运行的网页应用程序的更新请求,包括:
接收用户输入的用于更新当前运行的网页应用程序的更新请求;或者
自动生成用于更新当前运行的网页应用程序的更新请求。
上述技术方案中,当接收到用于更新当前运行的网页应用程序的更新请求时,继续运行所述网页应用程序,并下载所述网页应用程序的新版本的更新包;当所述更新包下载完毕后,在后台对所述更新包执行安装,且所述安装生成的新安装文件存储于第一路径,所述第一路径不同于所述网页应用程序的当前版本的安装文件存储的第二路径;将所述新安装文件中的页面文件加载至所述网页应用程序,以显示新版本页面。这样在整个更新过程中网页应用程序是一直在运行的,用户可以一直使用该所述网页应用程序,从而实现使采用开放WebApp技术来构建的移动操作系统中的打包封闭形式的Web App更新变得很简便,且更新过程中用户体验比较高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供一种Web App更新方法的流程示意图;
图2是本发明实施例提供另一种Web App更新方法的流程示意图;
图3是本发明实施例提供另一种Web App更新方法的流程示意图;
图4是本发明实施例提供的另一种通信设备的结构示意图;
图5是本发明实施例提供的另一种通信设备的结构示意图;
图6是本发明实施例提供的另一种通信设备的结构示意图;
图7是本发明实施例提供的另一种通信设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,图1是本发明实施例公开的一种Web App更新方法的流程图。在图1所描述的Web App更新方法中,为了采用开放Web App技术来构建的移动操作系统中的打包封闭形式的Web App更新变得很简便,且更新过程中用户体验比较高,在图1所示的实施例中,当接收到用于更新当前运行的Web App的更新请求时,继续运行所述Web App,并下载所述Web App的新版本的更新包;当所述更新包下载完毕后,在后台对所述更新包执行安装,且所述安装生成的新安装文件存储于第一路径,所述第一路径不同于所述Web App的当前版本的安装文件存储的第二路径;将所述新安装文件中的页面文件加载至所述Web App,以显示新版本页面。这样就可以实现采用开放Web App技术来构建的移动操作系统中的打包封闭形式的Web App更新变得很简便,且更新过程中用户体验比较高。
图1是本发明实施例提供一种Web App更新方法的流程示意图,如图1所示,包括:
101、当接收到用于更新当前运行的Web App的更新请求时,继续运行所述Web App,并下载所述Web App的新版本的更新包。
上述Web App可以是通信设备上可以运行的任何Web App,例如:采用开放Web App技术来构建的移动操作系统(例如:Firefox OS系统)上运行的打包封闭形式的Web App,还可以是其它移动操作系统上可以运行的Web App,例如:Android系统、iOS系统或者Windows Phone系统上可以运行的Web App。其中,上述下载所述新版本的更新包的方式本实施例不作限定,例如可以是通过向服务器发送至用于请求返回所述更新包的请求消息,再接收该服务器发送的所述更新包;例如是接收服务器主动发送的所述更新包。
102、当所述更新包下载完毕后,在后台对所述更新包执行安装,且所述安装生成的新安装文件存储于第一路径,所述第一路径不同于所述Web App的当前版本的安装文件存储的第二路径。
该步骤可以是后台对所述更新包执行安装是指在运行所述Web App的同时,对更新包执行安装,并将安装生成的新安装文件存储于第一路径,所述第一路径不同于所述Web App的当前版本的安装文件存储的第二路径。
103、将所述新安装文件中的页面文件加载至所述Web App,以显示新版本页面。
其中,上述页面文件为所述新安装文件中的页面文件,这样加载所述页面文件得到页面就是新版本的页面,即所述新版本页面为新版本的页面,即所述Web App显示的页面为新版本的页面,即对所述Web App完成了更新。
本实施例可以应用于任何支持Web App的通信设备,即这些通信设备可以实现上述方法,例如:手机、平板电脑,计算机、车载设备等通信设备。
上述技术方案中,当接收到用于更新当前运行的Web App的更新请求时,继续运行所述Web App,并下载所述Web App的新版本的更新包;当所述更新包下载完毕后,在后台对所述更新包执行安装,且所述安装生成的新安装文件存储于第一路径,所述第一路径不同于所述Web App的当前版本的安装文件存储的第二路径;将所述新安装文件中的页面文件加载至所述Web App,以显示新版本页面。这样在整个更新过程中Web App是一直在运行的,用户可以一直使用该所述Web App,从而实现使采用开放Web App技术来构建的移动操作系统中的打包封闭形式的Web App更新变得很简便,且更新过程中用户体验比较高。
图2是本发明实施例提供一种Web App更新方法的流程示意图,如图2所示,包括:
201、当接收到用于更新当前运行的Web App的更新请求时,继续运行所述Web App,并下载所述Web App的新版本的更新包。
上述Web App可以是通信设备上可以运行的任何Web App,例如:采用开放Web App技术来构建的移动操作系统(例如:Firefox OS系统)上运行的打包封闭形式的Web App,还可以是其它移动操作系统上可以运行的Web App,例如:Android系统、iOS系统或者Windows Phone系统上可以运行的Web App。其中,上述下载所述新版本的更新包的方式本实施例不作限定,例如可以是通过向服务器发送至用于请求返回所述更新包的请求消息,再接收该服务器发送的所述更新包;例如是接收服务器主动发送的所述更新包。
上述获知的当前运行的Web App有新版本的方式本实施例对此不作限定,例如:可以是通过与应用程序商店(App Store)进行通信获得到当前运行的WebApp有新版本,还可以是App Store主动告诉当前运行的Web App有新版本,还可以是通过与服务器进行通信获得到当前运行的Web App有新版本,还可以是服务器主动告诉当前运行的Web App有新版本。
上述更新包可以是新版本的所有文件,或者上述更新包可以是所述新版本中与所述Web App的当前版本的区别文件。即步骤201可以是下载新版本的所有文件或者下载所述新版本中与所述Web App的当前版本的区别文件。
202、当所述更新包下载完毕后,在后台对所述更新包执行安装,且所述安装生成的新安装文件存储于第一路径,所述第一路径不同于所述Web App的当前版本的安装文件存储的第二路径。
该步骤后台对所述更新包执行安装是指在运行所述Web App的同时,对更新包执行安装,并将安装生成的新安装文件存储于第一路径,所述第一路径不同于所述Web App的当前版本的安装文件存储的第二路径。
203、缓存用于表示所述Web App的当前状态的数据。
上述当前状态可以是指继续运行的Web App当前的行为,继续运行的WebApp当前处理处理的事务。缓存用于表示所述Web App的当前状态的数据,即缓存继续运行的Web App的当前状态,例如:继续中运行的Web App的当前状态是与好友在聊天,则步骤203可以是缓存该聊天的网页,即该聊天的内容信息。其中,本实施例中的缓存数据只有在更新时由Web App主动调用的,且将当前状态加载至Web App后,数据就会立即删除。需要缓存的数据包括以下数据中的一种或多种:用户登录状态信息(用户名、密码、cookie等)、已打开的窗口信息、已输入或者已上传的媒体信息(文字、图片、音频、视频等)、页面运行所涉及的缓存、用户登录该Web App后所生成的历史记录信息、页面的缩放比例信息、用户的个性化设置信息等。
204、将所述新安装文件中的页面文件加载至所述Web App,以显示新版本页面。
其中,上述页面文件为所述新安装文件中的页面文件,这样加载所述页面文件得到页面就是新版本的页面,即所述Web App显示的页面为新版本的页面,即对所述Web App完成了更新。
所述页面文件可以包括:
所述新安装文件中与所述Web App当前所在页面对应的页面文件;或者
所述新安装文件中用于显示所述新版本的Web App的首页的页面文件(例如:index.html文件,该文件没有具体的中文意思)。
205、在所述新版本页面中加载所述数据,以在所述新版本页面中显示所述当前状态。
由于上述数据是用于表示所述Web App的当前状态,即步骤205在更新的新版本页面中,所述新版本页面可以重现恢复上述当前状态,而在实际应用中步骤204和步骤205完成的时间很短,用户基本上不会感知的,这样给用户的感觉就是一直在显示上述当前状态,只是通过不同的版本的页面显示上述当前状态。
作为一种可选的实施方式,所述页面文件包括所述新安装文件中与所述Web App当前所在页面对应的页面文件,步骤204中的将所述新安装文件中的页面文件加载至所述Web App可以包括:
确定所述Web App当前所在页面在所述第二路径的子路径;
将所述第一路径的所述子路径的页面文件加载至所述Web App。
即所述页面文件为在所述第一路径中的子路径与所述Web App当前所在页面在所述第二路径的子路径是相同的。例如:Web App当前所在页面为“第二路径/modules/purchase/purchase.html”,那么需要加载的第一路径中的页面文件为“第一路径/modules/purchase/purchase.html”。即“/modules/purchase/”这个子路径是相同的。
作为一种可选的实施方式,步骤203可以包括:
调用预先设置的应用程序接口中的第一命令,将用于表示所述Web App的当前状态的数据缓存至与所述应用程序接口对应的缓存文件夹。具体可以控制所述Web App调用预先设置的应用程序接口中的第一命令,将用于表示所述WebApp的当前状态的数据缓存至与所述应用程序接口对应的缓存文件夹。
步骤202安装完毕后,可以是显示一个用于提示用户安装完毕的提示消息,当用户看到该提示消息时,再接收用户输入用于确定缓存Web App的当前状态的确认消息时,所述Web App调用就可以预先设置的应用程序接口中的第一命令,将用于表示所述Web App的当前状态的数据缓存至与所述应用程序接口对应的缓存文件夹;还可以是当安装完毕时,Web App直接调用预先设置的应用程序接口中的第一命令,将用于表示所述Web App的当前状态的数据缓存至与所述应用程序接口对应的缓存文件夹。
其中,上述应用程序接口可以包含两个命令,即第一命令和第二命令,其中,第一命令用于缓存用于表示所述Web App的当前状态的数据,第二命令用于加载第一命令缓存的数据。且第一命令缓存的数据是缓存至指定的文件夹,即上述缓存文件夹,该文件夹缓存的数据可以是json格式(该格式没有具体的中文意思)的数据,且该文件为的后缀为也是指定的后缀,例如:.db后缀。即第二命令加载.db后缀的文件夹的当前状态。且第一命令缓存的当前状态还可以根据Web App的开发者而设置的,即数据与当前状态的对应的关系是开发者设定的,即开发者预先就指定是行为与数据的对应关系,即知道所述Web App的当前状态就可以知道上述数据。例如:所述Web App的当前状态处在私信聊天网页,且正与好友a聊天。这样步骤203中的数据就可以包括:
“page”:”chat”和“friend”:”a”,其中,“page”:”chat”用于表示私信聊天网页,“friend”:”a”用于表示正与好友a聊天。即上述“page”:”chat”为由开发者指定的与私信聊天网页对应,“friend”:”a”为由开发者指定的正与好友a聊天对应,这样当得到所述Web App的当前状态处在私信聊天网页,且正与好友a聊天,步骤203就可以调用第一命令,将“page”:”chat”和“friend”:”a”缓存至与所述应用程序接口对应的缓存文件夹。
下面以一个具体的实例为说明上述应用程序接口,即该应用程序接口可以定义为如下:
其中,updateCache(userData)为上述第一命令,userData为上述数据,且userData是json格式的数据;updateCacheLoad()为上述第二命令,用于调用上述数据。且上述缓存文件夹可以是为“/data/data/org.mozilla.firefox/files/mozilla/WebApp/Apps/AppName/temp”中的updateCache.db文件夹。
所述Web App的当前状态处在私信聊天网页,且正与好友a聊天,上述userData如下:
步骤205可以包括:
调用所述应用程序接口的第二命令,在所述新版本页面中加载所述缓存文件夹的所述数据,以在所述新版本页面中显示所述当前状态。具体可以是所述Web App调用所述应用程序接口的第二命令,在所述新版本页面中加载所述缓存文件夹的所述数据,以在所述新版本页面中显示所述当前状态。
当安装完毕后,就可以运行Web App,Web App调用所述应用程序接口的第二命令加载所述数据,从而恢复所述当前状态。具体可以是调用上述updateCacheLoad(),加载上述缓存文件夹中的数据,恢复上述当前状态。这样整个过程中上述当前状态没有被中断过,从而整个更新过程中用户可以一直使用Web App。
作为一种可选的实施方式,上述更新包可以为所述新版本的所有文件,还可以是所述新版本中与所述Web App的当前版本的区别文件,即上述下载所述新版本的更新包,可以包括:
下载所述Web App的新版本的所有数据包,即将新版本的所有数据包都下载,其中,下载的路径本发明实施例对些不作限定。
上述下载所述新版本的更新包,还可以包括:
下载所述Web App的新版本中与所述Web App的当前版本的区别数据包。这样只需要下载所述新版本中与所述Web App的当前版本的区别文件,从而可以节省网络资源。但由于只下载了上述区别文件,而这些区别文件一般是不可能完成Web App的运行,这样就需要将所述当前版本中与所述新版本的相同文件转移至用于存储所述区别文件的数据包的文件夹,即所述下载所述Web App的新版本中与所述Web App的当前版本的区别文件的数据包之后,所述在后台对所述更新包执行安装之前,所述方法还可以包括:
将所述当前版本中与所述新版本的相同文件转移用于存储所述区别文件的数据包的文件夹。
用于存储所述区别文件的数据包的文件夹就包含了上述区别文件以及上述相同文件,即包含了所述新版本的所有数据包,这样就可以进行安装,即执行步骤202。
具体可以由App开发者App Store或者服务器上与上述Web App相应的文件(例如manifest.webapp文件)中更新情况进行说明,即App Store包含有所述新版本中与所述Web App的当前版本的区别文件的说明信息,即App Store知道所述Web App的当前版本的区别文件。例如:在与上述Web App相应的文件(例如manifest.webapp文件)中增加一个字段“改变(change)”,该change字段里包含用于表示上述区别文件,即该change字段里包含一些具体的值来说明是哪些文件发生了更新变化。当App Store或者服务器接收到请求下载所述下载更新包的请求消息时,或者App Store或者服务器获知前运行的Web App有新版本时,就可以将所述新版本中与所述Web App的当前版本的区别文件发送至通信设备的上述第一路径,该通信设备为实现本方法的设备。
需要说明的是,上述区别文件还可以包含用于表示调用其它文件的相对位置的文件,例如:index.html(该文件为网页技术中公知的文件,没有具体的中文意思)文件。
下面以一个具体的实例说明上述与上述Web App相应的文件(例如manifest.webapp文件)中更新情况,在该文件中的具体Manifest(该字段为网页技术中公知的字段,没有具体的中文意思)字段如下:
其中,带有下划线的字段为上述change字段。
在另一个实施例中,在步骤203之后,所述方法还可以包括:
将所述第一路径设置为所述Web App的默认路径。具体还包括:将所述第一路径与所述Web App的应用标识符进行绑定,即将所述第一路径与所述WebApp原来安装时生成的应用标识符(App URI,即App Uniform ResourceIdentifier,应用程序统一资源标识符)进行绑定,代替原来所关联的路径,从而实现第一路径作为所述Web App的默认路径。
例如:将下述路径设置为所述Web App的默认路径:
“/data/data/org.mozilla.firefox/files/mozilla/WebApp/Apps/AppName/version2.0”
再例如:将下述路径与所述Web App的原有App URI进行绑定,作为其默认路径:
“/data/data/org.mozilla.firefox/files/mozilla/WebApp/Apps/AppName/version2.0”与原有App URI(例如:app://c13c6f30-ce25-11e0-9572-0800200c9a66/index.html)进行绑定,代替原来所关联的路径。
在现有的Web App OS中,Web App安装后,系统为其生成一个App URI,作为其默认的打开路径,但该URI只是一个逻辑上的字符串,需要映射到具体的文件路径上。
在将所述第一路径设置为所述Web App的默认路径之后,所述方法还可以包括:
将所述第二路径中的文件删除,以及卸载当前版本的Web App。
在另一实施例中,步骤201还可以包括:
接收用户输入的用于更新当前运行的Web App的更新请求,继续运行所述Web App,并下载所述新版本的更新包。即可以实现由更新过程由用户触发的。
在另一实施例中,还可以不根据用户输入的命令,直接完成更新,即步骤201还可以是自动生成用于更新当前运行的Web App的更新请求时,继续运行所述Web App,并直接下载所述新版本的更新包。当然下载更新包是在后台执行的。
本实施例可以应用于任何支持Web App的通信设备,即这些通信设备可以实现上述方法,例如:手机、平板电脑,计算机、车载设备等通信设备。
上述技术方案中,在上面实施例的基础增加了多种可选的实施方式,且都可以实现使采用开放Web App技术来构建的移动操作系统中的打包封闭形式的Web App更新变得很简便,且更新过程中用户体验比较高。
图3是本发明实施例提供另一种面应用程序更新方法的流程示意图,如图3所示,包括:
301、通过与App Store或者开发者服务器的通信识别出当前运行的Web App有新版本。
步骤301可以包括:
向App Store发送包含所述Web App的版本号的查询消息,由所述App Store比较所述Web App的版本号和所述App Store上该Web App的版本号是否一致,若不一致,则确定当前运行的Web App有新版本。具体如下:
开发者可以每次向App Store提交新版本Web App的数据包(例如:zip包)时,App Store将自动依据该数据包中manifest.WebApp(该文件为网页技术中公知的文件,没有具体的中文意思)文件中的内容为该数据包生成一个包含WebApp的版本信息的文件(例如:mini manifest文件),例如:该文件中包含“版本version”字段,该字段用于标识的是该数据包的版本号。
当在通信设备上下载并安装上述当前版本的Web App后,将自动生成一个包含该Web App版本号的文件(WebApp.json文件),并且存储在通信设备上,例如:该文件中包含“version”字段,该字段用于标识的是该该Web App的版本号。
上述当前版本的Web App可以同期性地主动与App Store进行一次通信,比较App Store上“version”字段与通信设备上的“version”字段是否一致,当不一致时,就表示当前运行的Web App有新版本,例如:比较App Store上mini manifest文件中的“version”字段与通信设备上的Web App.json文件中的“version”字段。
步骤301可以包括:
当App Store确定当前运行的Web App有新版本时,接收App Store发送的用于表示Web App有新版本的指示消息。具体如下:
每当通信设备从App Store上下载并安装某个Web App时,App Store可以生成一条记录,记录通信设备已经下载过的版本。同时,App Store会定期检查通信设备上的Web App,即步骤201中运行的Web App,并将通信设备上的App版本号与App Store上拥有的作比较,从而确定当前运行的Web App有新版本。
步骤301可以包括:
向开发者服务器发送包含所述Web App的基本信息的查询消息,由所述AppStore比较所述Web App的基本信息和所述App Store上该Web App的基本信息是否一致,若不一致,则确定当前运行的Web App有新版本。具体如下:
在上述当前版本的Web App的打包文件中(例如:manifest.Web App中)增加一个可选字段(例如:updateByServer),该字段可以如下:
updateByServer:{
“url”:“http://xxxxxxx”
}
其中,“url”:http://xxxxxxx用于表示开发者服务器端提供的检测更新并返回最新版本的接口。
在安装上述当前版本的Web App,该Web App的默认路径中生成一个包含该Web App的基本信息的文件,例如:版本号和Web App的名字。
上述当前版本的Web App可以周期性地获取updateByServer里面的统一资源定位符(Uniform Resource Locator,URL)值,然后将本地存储的该Web App的基本信息作为参数,访问该URL,开发者服务器接收到该Web App发来的参数后,根据Web App的基本信息查询该Web App是否具有新版本,如果没有新版本则返回用于表示该Web App不具有新版本消息,并且不执行操作。如果有新版本返回用于表示该Web App具有新版本消息。
步骤301可以包括:
当开发者服务器确定当前运行的Web App有新版本时,接收开发者服务器发送的用于表示Web App有新版本的指示消息。具体如下:
开发者服务器主动获取用户设备信息,从而完成检测当前运行的Web App有新版本的过程,为了使开发者服务器方便的找到各个通信设备上安装的WebApp,需要增加注册机制,同时为了减少通信设备注册的麻烦,可以利用App Store的账号登录开发者服务器。这里需要App Store开放一个基于总管(outh)的账号认证接口,可以让开发者调用该接口,使通信设备通过App Store账号能够安全登录到开发者服务器。
通信设备通过App Store账号登录的前提下,开发者服务器就能通过账号找到通信设备上安装的App Store,定期检查通信设备上的App Store及版本号,通过对比版本号确定所述当前运行的Web App是否有新版本。
302、当接收到用于更新当前运行的Web App的更新请求时,继续运行所述Web App,并下载所述Web App的新版本的更新包。
步骤302还可以是当所述更新包下载完毕时,可以是显示一个用于提示用户新版本下载完毕的提示消息,当用户看到该提示消息时,再接收用户输入用于确定缓存当前版本的Web App的当前状态的确认消息时,下载所述新版本的更新包;还可以是当所述更新包下载完毕时,下载所述新版本的更新包。
上述Web App可以是通信设备上可以运行的任何Web App,例如:采用开放Web App技术来构建的移动操作系统(例如:Firefox OS系统)上运行的打包封闭形式的Web App,还可以是其它移动操作系统上可以运行的Web App,例如:Android系统、iOS系统或者Windows Phone系统上可以运行的Web App。
上述更新包可以是新版本的所有文件,或者上述更新包可以是所述新版本中与所述Web App的当前版本的区别文件。即步骤302可以是下载新版本的所有文件或者下载所述新版本中与所述Web App的当前版本的区别文件。
303、当所述更新包下载完毕后,在后台对所述更新包执行安装,且所述安装生成的新安装文件存储于第一路径,所述第一路径不同于所述Web App的当前版本的安装文件存储的第二路径。
304、将所述新安装文件中的页面文件加载至所述Web App,以显示新版本页面。
作为一种可选的实施方式,在步骤304之前,所述方法还可以包括:
缓存用于表示所述Web App的当前状态的数据。
其中,缓存这个步骤可以参考上面实施例描述的实施方式。
步骤304之后,所述方法还可以包括:
在所述新版本页面中加载所述数据,以在所述新版本页面中显示所述当前状态。
其中,该步骤可以参考上面实施例描述的实施方式。
在另一个实施例中,上述更新包可以为所述新版本的所有文件,还可以是所述新版本中与所述Web App的当前版本的区别文件,即上述下载所述新版本的更新包,可以包括:
将所述新版本的所有文件下载至第一路径,所述第一路径不同于所述当前版本的文件的存储路径。
上述下载所述新版本的更新包,还可以包括:
将所述新版本中与所述Web App的当前版本的区别文件下载至第一路径,所述第一路径不同于所述当前版本的文件的存储路径。这样只需要下载所述新版本中与所述Web App的当前版本的区别文件,从而可以节省网络资源。但由于只下载了上述区别文件,而这些区别文件一般是不可能完成Web App的运行,这样就需要将所述当前版本中与所述新版本的相同文件转移至用于存储所述区别文件的数据包的文件夹,即所述下载所述Web App的新版本中与所述Web App的当前版本的区别文件的数据包之后,所述在后台对所述更新包执行安装,所述方法还可以包括:
将所述当前版本中与所述新版本的相同文件转移用于存储所述区别文件的数据包的文件夹。
用于存储所述区别文件的数据包的文件夹就包含了上述区别文件以及上述相同文件,即包含了所述新版本的所有数据包,这样就可以进行安装,即执行步骤303。
本实施例可以应用于任何支持Web App的通信设备,即这些通信设备可以实现上述方法,例如:手机、平板电脑,计算机、车载设备等通信设备。
上述技术方案中,在上面实施例的基础增加了多种可选的实施方式,且都可以实现使采用开放Web App技术来构建的移动操作系统中的打包封闭形式的Web App更新变得很简便,且更新过程中用户体验比较高。
下面为本发明装置实施例,本发明装置实施例用于执行本发明方法实施例一、实施例二和实施例三的方法,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例一、实施例二和实施例三。
图4是本发明实施例提供的一种通信设备的结构示意图,用于执行本发明实施例公开的Web App更新方法,如图4所示,包括:下载单元41、安装单元42和加载单元43,其中:
下载单元41,用于当接收到用于更新当前运行的Web App的更新请求时,继续运行所述Web App,并下载所述Web App的新版本的更新包。
上述Web App可以是通信设备上可以运行的任何Web App,例如:采用开放Web App技术来构建的移动操作系统(例如:Firefox OS系统)上运行的打包封闭形式的Web App,还可以是其它移动操作系统上可以运行的Web App,例如:Android系统、iOS系统或者Windows Phone系统上可以运行的Web App。其中,上述下载所述新版本的更新包的方式本实施例不作限定,例如可以是通过向服务器发送至用于请求返回所述更新包的请求消息,再接收该服务器发送的所述更新包;例如是接收服务器主动发送的所述更新包。
缓存单元42,用于当所述更新包下载完毕后,在后台对所述更新包执行安装,且所述安装生成的新安装文件存储于第一路径,所述第一路径不同于所述Web App的当前版本的安装文件存储的第二路径。
缓存单元42可以是后台对所述更新包执行安装是指在运行所述Web App的同时,对更新包执行安装,并将安装生成的新安装文件存储于第一路径,所述第一路径不同于所述Web App的当前版本的安装文件存储的第二路径。
加载单元43,用于将所述新安装文件中的页面文件加载至所述Web App,以显示新版本页面。
其中,上述页面文件为所述新安装文件中的页面文件,这样加载所述页面文件得到页面就是新版本的页面,即所述Web App显示的页面为新版本的页面,即对所述Web App完成了更新。
本实施例提供的通信设备可以是任何支持Web App的通信设备,例如:手机、平板电脑,计算机、车载设备等通信设备。
上述技术方案中,当接收到用于更新当前运行的Web App的更新请求时,继续运行所述Web App,并下载所述Web App的新版本的更新包;当所述更新包下载完毕后,在后台对所述更新包执行安装,且所述安装生成的新安装文件存储于第一路径,所述第一路径不同于所述Web App的当前版本的安装文件存储的第二路径;将所述新安装文件中的页面文件加载至所述Web App,以显示新版本页面。这样在整个更新过程中Web App是一直在运行的,用户可以一直使用该所述Web App,从而实现使采用开放Web App技术来构建的移动操作系统中的打包封闭形式的Web App更新变得很简便,且更新过程中用户体验比较高。
图5是本发明实施例提供的另一种通信设备的结构示意图,如图5所示,包括:下载单元51、安装单元52、缓存单元53和加载单元54,其中:
下载单元51,用于当接收到用于更新当前运行的Web App的更新请求时,继续运行所述Web App,并下载所述Web App的新版本的更新包。
上述Web App可以是通信设备上可以运行的任何Web App,例如:采用开放Web App技术来构建的移动操作系统(例如:Firefox OS系统)上运行的打包封闭形式的Web App,还可以是其它移动操作系统上可以运行的Web App,例如:Android系统、iOS系统或者Windows Phone系统上可以运行的Web App。其中,上述下载所述新版本的更新包的方式本实施例不作限定,例如可以是通过向服务器发送至用于请求返回所述更新包的请求消息,再接收该服务器发送的所述更新包;例如是接收服务器主动发送的所述更新包。
上述获知的当前运行的Web App有新版本的方式本实施例对此不作限定,例如:可以是通过与应用程序商店(App Store)进行通信获得到当前运行的WebApp有新版本,还可以是App Store主动告诉当前运行的Web App有新版本,还可以是通过与服务器进行通信获得到当前运行的Web App有新版本,还可以是服务器主动告诉当前运行的Web App有新版本。
上述更新包可以是新版本的所有文件,或者上述更新包可以是所述新版本中与所述Web App的当前版本的区别文件。即下载单元51可以是下载新版本的所有文件或者下载所述新版本中与所述Web App的当前版本的区别文件。
安装单元52,用于当所述更新包下载完毕后,在后台对所述更新包执行安装,且所述安装生成的新安装文件存储于第一路径,所述第一路径不同于所述Web App的当前版本的安装文件存储的第二路径。
该步骤后台对所述更新包执行安装是指在运行所述Web App的同时,对更新包执行安装,并将安装生成的新安装文件存储于第一路径,所述第一路径不同于所述Web App的当前版本的安装文件存储的第二路径。
缓存单元53,用于缓存用于表示所述Web App的当前状态的数据。
上述当前状态可以是指继续运行的Web App当前的行为,继续运行的WebApp当前处理处理的事务。缓存用于表示所述Web App的当前状态的数据,即缓存继续运行的Web App的当前状态,例如:继续中运行的Web App的当前状态是与好友在聊天,则缓存单元53可以是缓存该聊天的网页,即该聊天的内容信息。其中,本实施例中的缓存数据只有在更新时由Web App主动调用的,且将当前状态加载至Web App后,数据就会立即删除。需要缓存的数据包括以下数据中的一种或多种:用户登录状态信息(用户名、密码、cookie等)、已打开的窗口信息、已输入或者已上传的媒体信息(文字、图片、音频、视频等)、页面运行所涉及的缓存、用户登录该Web App后所生成的历史记录信息、页面的缩放比例信息、用户的个性化设置信息等。
加载单元54,用于将所述新安装文件中的页面文件加载至所述Web App,以显示新版本页面,并在所述新版本页面中加载所述数据,以在所述新版本页面中显示所述当前状态。
由于上述数据是用于表示所述Web App的当前状态,即步骤加载单元54在更新的页面中,所述新版本页面重现恢复上述当前状态,而在实际应用中更新页面和加载数据完成的时间很短,用户基本上不会感知的,这样给用户的感觉就是一直在显示上述当前状态,只是通过不同的版本的页面显示上述当前状态。
作为一种可选的实施方式,所述页面文件包括所述新安装文件中与所述Web App当前所在页面对应的页面文件步骤,加载单元54还可以用于确定所述Web App当前所在页面在所述第二路径的子路径,并将所述第一路径的所述子路径的页面文件加载至所述Web App。
即所述页面文件为在所述第一路径中的子路径与所述Web App当前所在页面在所述第二路径的子路径是相同的。
作为一种可选的实施方式,缓存单元53还可以用于调用预先设置的应用程序接口中的第一命令,将用于表示所述Web App的当前状态的数据缓存至与所述应用程序接口对应的缓存文件夹。具体可以控制所述Web App调用预先设置的应用程序接口中的第一命令,将用于表示所述Web App的当前状态的数据缓存至与所述应用程序接口对应的缓存文件夹。
在安装单元52安装完毕后,可以是显示一个用于提示用户安装完毕的提示消息,当用户看到该提示消息时,再接收用户输入用于确定缓存Web App的当前状态的确认消息时,所述Web App调用就可以预先设置的应用程序接口中的第一命令,将用于表示所述Web App的当前状态的数据缓存至与所述应用程序接口对应的缓存文件夹;还可以是当安装完毕时,Web App直接调用预先设置的应用程序接口中的第一命令,将用于表示所述Web App的当前状态的数据缓存至与所述应用程序接口对应的缓存文件夹。
其中,上述应用程序接口可以包含两个命令,即第一命令和第二命令,其中,第一命令用于缓存用于表示所述Web App的当前状态的数据,第二命令用于加载第一命令缓存的数据。且第一命令缓存的数据是缓存至指定的文件夹,即上述缓存文件夹,该文件夹缓存的数据可以是json格式(该格式没有具体的中文意思)的数据,且该文件为的后缀为也是指定的后缀,例如:.db后缀。即第二命令加载.db后缀的文件夹的当前状态。且第一命令缓存的当前状态还可以根据Web App的开发者而设置的,即数据与当前状态的对应的关系是开发者设定的,即开发者预先就指定是行为与数据的对应关系,即知道所述Web App的当前状态就可以知道上述数据。例如:所述Web App的当前状态处在私信聊天网页,且正与好友a聊天。这样缓存单元53中的数据就可以包括:
“page”:”chat”和“friend”:”a”,其中,“page”:”chat”用于表示私信聊天网页,“friend”:”a”用于表示正与好友a聊天。即上述“page”:”chat”为由开发者指定的与私信聊天网页对应,“friend”:”a”为由开发者指定的正与好友a聊天对应,这样当得到所述Web App的当前状态处在私信聊天网页,且正与好友a聊天,步骤203就可以调用第一命令,将“page”:”chat”和“friend”:”a”缓存至与所述应用程序接口对应的缓存文件夹。
下面以一个具体的实例为说明上述应用程序接口,即该应用程序接口可以定义为如下:
其中,updateCache(userData)为上述第一命令,userData为上述数据,且userData是json格式的数据;updateCacheLoad()为上述第二命令,用于调用上述数据。且上述缓存文件夹可以是为“/data/data/org.mozilla.firefox/files/mozilla/WebApp/Apps/AppName/temp”中的updateCache.db文件夹。
所述Web App的当前状态处在私信聊天网页,且正与好友a聊天,上述userData如下:
加载单元54还可以用于调用所述应用程序接口的第二命令,在所述新版本页面中加载所述缓存文件夹的所述数据,以在所述新版本页面中显示所述当前状态。具体可以是所述Web App调用所述应用程序接口的第二命令,在所述新版本页面中加载所述缓存文件夹的所述数据,以在所述新版本页面中显示所述当前状态。
当安装完毕后,就可以运行Web App,Web App调用所述应用程序接口的第二命令加载所述数据,从而恢复所述当前状态。具体可以是调用上述updateCacheLoad(),加载上述缓存文件夹中的数据,恢复上述当前状态。这样整个过程中上述当前状态没有被中断过,从而整个更新过程中用户可以一直使用Web App。
作为一种可选的实施方式,上述更新包可以为所述新版本的所有文件,还可以是所述新版本中与所述Web App的当前版本的区别文件,即上述下载所述新版本的更新包,可以包括:
下载所述Web App的新版本的所有数据包,即将新版本的所有数据包都下载,其中,下载的路径本发明实施例对些不作限定。即下载单元51还可以用于下载所述Web App的新版本的所有数据包。
上述下载所述新版本的更新包,还可以包括:
下载所述Web App的新版本中与所述Web App的当前版本的区别数据包。即下载单元51还可以用于下载所述Web App的新版本中与所述Web App的当前版本的区别数据包。这样只需要下载所述新版本中与所述Web App的当前版本的区别文件,从而可以节省网络资源。但由于只下载了上述区别文件,而这些区别文件一般是不可能完成Web App的运行,这样就需要将所述当前版本中与所述新版本的相同文件转移至用于存储所述区别文件的数据包的文件夹,所述设备还可以包括:
转移单元(附图中未画出),用于将所述当前版本中与所述新版本的相同文件转移用于存储所述区别文件的数据包的文件夹。
用于存储所述区别文件的数据包的文件夹就包含了上述区别文件以及上述相同文件,即包含了所述新版本的所有数据包,这样就可以进行安装,即执行安装。
具体可以由App开发者App Store或者服务器上与上述Web App相应的文件(例如manifest.webapp文件)中更新情况进行说明,即App Store包含有所述新版本中与所述Web App的当前版本的区别文件的说明信息,即App Store知道所述Web App的当前版本的区别文件。例如:在与上述Web App相应的文件(例如manifest.webapp文件)中增加一个字段“改变(change)”,该change字段里包含用于表示上述区别文件,即该change字段里包含一些具体的值来说明是哪些文件发生了更新变化。当App Store或者服务器接收到请求下载所述下载更新包的请求消息时,或者App Store或者服务器获知前运行的Web App有新版本时,就可以将所述新版本中与所述Web App的当前版本的区别文件发送至通信设备的上述第一路径,该通信设备为实现本方法的设备。
需要说明的是,上述区别文件还可以包含用于表示调用其它文件的相对位置的文件,例如:index.html(该文件为网页技术中公知的文件,没有具体的中文意思)文件。
下面以一个具体的实例说明上述与上述Web App相应的文件(例如manifest.webapp文件)中更新情况,在该文件夹的Manifest(该字段为网页技术中公知的字段,没有具体的中文意思)字段如下:
其中,带有下划线的字段为上述change字段。
在另一个实施例中,所述设备还可以包括:
设置单元(附图中未画出),用于将所述第一路径设置为所述Web App的默认路径。设置单元(附图中未画出)还可以用于将所述第一路径与所述Web App的应用标识符进行绑定,即将所述第一路径与所述Web App原来安装时生成的应用标识符(App URI,即App Uniform Resource Identifier,应用程序统一资源标识符)进行绑定,代替原来所关联的路径,从而实现第一路径作为所述Web App的默认路径。
例如:将下述路径设置为所述Web App的默认路径:
“/data/data/org.mozilla.firefox/files/mozilla/WebApp/Apps/AppName/version2.0”
再例如:将下述路径与所述Web App的原有App URI进行绑定,作为其默认路径:
“/data/data/org.mozilla.firefox/files/mozilla/WebApp/Apps/AppName/version2.0”与原有App URI(例如:app://c13c6f30-ce25-11e0-9572-0800200c9a66/index.html)进行绑定,代替原来所关联的路径。
在现有的Web App OS中,Web App安装后,系统为其生成一个App URI,作为其默认的打开路径,但该URI只是一个逻辑上的字符串,需要映射到具体的文件路径上。
在将所述第一路径设置为所述Web App的默认路径之后,所述方法还可以包括:
将所述第二路径中的文件删除,以及卸载当前版本的Web App。
在另一实施例中,下载单元51还可以用于当接收用户输入的用于更新当前运行的Web App的更新请求时,继续运行所述Web App,并下载所述新版本的更新包。即可以实现由更新过程由用户触发的。
在另一实施例中,还可以不根据用户输入的命令,直接完成更新,即下载单元51自动生成用于更新当前运行的Web App的更新请求时,继续运行所述Web App,并直接下载所述新版本的更新包。当然下载更新包是在后台执行的。
本实施例提供的通信设备可以是手机、平板电脑,计算机、车载设备等通信设备。
上述技术方案中,在上面实施例的基础增加了多种可选的实施方式,且都可以实现使采用开放Web App技术来构建的移动操作系统中的打包封闭形式的Web App更新变得很简便,且更新过程中用户体验比较高。
图6是本发明实施例提供的另一种通信设备的结构示意图,如图6所示,包括:认别单元61、下载单元62、安装单元63和加载单元64,其中:
识别单元61、用于通过与App Store或者开发者服务器的通信识别出当前运行的Web App有新版本。
识别单元61还可以用于向App Store发送包含所述Web App的版本号的查询消息,由所述App Store比较所述Web App的版本号和所述App Store上该Web App的版本号是否一致,若不一致,则确定当前运行的Web App有新版本。具体如下:
开发者可以每次向App Store提交新版本Web App的数据包(例如:zip包)时,App Store将自动依据该数据包中manifest.Web App(该文件为网页技术中公知的文件,没有具体的中文意思)文件中的内容为该数据包生成一个包含WebApp的版本信息的文件(例如:mini manifest文件),例如:该文件中包含“版本version”字段,该字段用于标识的是该数据包的版本号。
当在通信设备上下载并安装上述当前版本的Web App后,将自动生成一个包含该Web App版本号的文件(Web App.json文件),并且存储在通信设备上,例如:该文件中包含“version”字段,该字段用于标识的是该该Web App的版本号。
上述当前版本的Web App可以同期性地主动与App Store进行一次通信,比较App Store上“version”字段与通信设备上的“version”字段是否一致,当不一致时,就表示当前运行的Web App有新版本,例如:比较App Store上mini manifest文件中的“version”字段与通信设备上的Web App.json文件中的“version”字段。
识别单元61还可以用于当App Store确定当前运行的Web App有新版本时,接收App Store发送的用于表示Web App有新版本的指示消息。具体如下:
每当通信设备从App Store上下载并安装某个Web App时,App Store可以生成一条记录,记录通信设备已经下载过的版本。同时,App Store会定期检查通信设备上的Web App,即下载单元51中运行的Web App,并将通信设备上的App版本号与App Store上拥有的作比较,从而确定当前运行的Web App有新版本。
识别单元61还可以用于向开发者服务器发送包含所述Web App的基本信息的查询消息,由所述App Store比较所述Web App的基本信息和所述App Store上该Web App的基本信息是否一致,若不一致,则确定当前运行的Web App有新版本。具体如下:
在上述当前版本的Web App的打包文件中(例如:manifest.Web App中)增加一个可选字段(例如:updateByServer),该字段可以如下:
updateByServer:{
“url”:“http://xxxxxxx”
}
其中,“url”:http://xxxxxxx用于表示开发者服务器端提供的检测更新并返回最新版本的接口。
在安装上述当前版本的Web App,该Web App的默认路径中生成一个包含该Web App的基本信息的文件,例如:版本号和Web App的名字。
上述当前版本的Web App可以周期性地获取updateByServer里面的统一资源定位符(Uniform Resource Locator,URL)值,然后将本地存储的该Web App的基本信息作为参数,访问该URL,开发者服务器接收到该Web App发来的参数后,根据Web App的基本信息查询该Web App是否具有新版本,如果没有新版本则返回用于表示该Web App不具有新版本消息,并且不执行操作。如果有新版本返回用于表示该Web App具有新版本消息。
识别单元61还可以用于当开发者服务器确定当前运行的Web App有新版本时,接收开发者服务器发送的用于表示Web App有新版本的指示消息。具体如下:
开发者服务器主动获取用户设备信息,从而完成检测当前运行的Web App有新版本的过程,为了使开发者服务器方便的找到各个通信设备上安装的WebApp,需要增加注册机制,同时为了减少通信设备注册的麻烦,可以利用App Store的账号登录开发者服务器。这里需要App Store开放一个基于总管(outh)的账号认证接口,可以让开发者调用该接口,使通信设备通过App Store账号能够安全登录到开发者服务器。
通信设备通过App Store账号登录的前提下,开发者服务器就能通过账号找到通信设备上安装的App Store,定期检查通信设备上的App Store及版本号,通过对比版本号确定所述当前运行的Web App是否有新版本。
下载单元62,用于当接收到用于更新当前运行的Web App的更新请求时,继续运行所述Web App,并下载所述Web App的新版本的更新包。
下载单元62还可以是当所述更新包下载完毕时,可以是显示一个用于提示用户新版本下载完毕的提示消息,当用户看到该提示消息时,再接收用户输入用于确定缓存当前版本的Web App的当前状态的确认消息时,下载所述新版本的更新包;还可以是当所述更新包下载完毕时,下载所述新版本的更新包。
上述Web App可以是通信设备上可以运行的任何Web App,例如:采用开放Web App技术来构建的移动操作系统(例如:Firefox OS系统)上运行的打包封闭形式的Web App,还可以是其它移动操作系统上可以运行的Web App,例如:Android系统、iOS系统或者Windows Phone系统上可以运行的Web App。
上述更新包可以是新版本的所有文件,或者上述更新包可以是所述新版本中与所述Web App的当前版本的区别文件。即步骤201可以是下载新版本的所有文件或者下载所述新版本中与所述Web App的当前版本的区别文件。
安装单元63,当所述更新包下载完毕后,在后台对所述更新包执行安装,且所述安装生成的新安装文件存储于第一路径,所述第一路径不同于所述WebApp的当前版本的安装文件存储的第二路径。
加载单元64,用于将所述新安装文件中的页面文件加载至所述Web App,以显示新版本页面。
作为一种可选的实施方式,所述通信设备还可以包括:
缓存单元(附图中未画出),用于缓存用于表示所述Web App的当前状态的数据。
加载单元64进一步还可以用于在所述新版本页面中加载所述数据,以在所述新版本页面中显示所述当前状态。
在另一个实施例中,上述更新包可以为所述新版本的所有文件,还可以是所述新版本中与所述Web App的当前版本的区别文件,即上述下载所述新版本的更新包,可以包括:
将所述新版本的所有文件下载至第一路径,所述第一路径不同于所述当前版本的文件的存储路径。
上述下载所述新版本的更新包,还可以包括:
将所述新版本中与所述Web App的当前版本的区别文件下载至第一路径,所述第一路径不同于所述当前版本的文件的存储路径。这样只需要下载所述新版本中与所述Web App的当前版本的区别文件,从而可以节省网络资源。但由于只下载了上述区别文件,而这些区别文件一般是不可能完成Web App的运行,这样就需要将所述当前版本中与所述新版本的相同文件转移至用于存储所述区别文件的数据包的文件夹,所述通信设备还可以包括:
转移单元(附图中未画出),用于将所述当前版本中与所述新版本的相同文件转移用于存储所述区别文件的数据包的文件夹。
用于存储所述区别文件的数据包的文件夹就包含了上述区别文件以及上述相同文件,即包含了所述新版本的所有数据包,这样就可以进行安装。
本实施例提供的通信设备可以为任何支持Web App的通信设备,例如:手机、平板电脑,计算机、车载设备等通信设备。
上述技术方案中,在上面实施例的基础增加了多种可选的实施方式,且都可以实现使采用开放Web App技术来构建的移动操作系统中的打包封闭形式的Web App更新变得很简便,且更新过程中用户体验比较高。
图7是本发明实施例提供的另一种通信设备的结构示意图,用于执行本发明实施例公开的Web App更新方法,如图7所示,该通信设备包括:至少一个处理器71,例如CPU,至少一个网络接口74或者其他用户接口73,存储器75,至少一个通信总线72。通信总线72用于实现这些组件之间的连接通信。其中,用户接口73可选的可以包括USB接口以及其他标准接口、有线接口。网络接口74可选的可以包括Wi-Fi接口以及其他无线接口。存储器75可能包含高速RAM存储器,也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器75可选的可以包含至少一个位于远离前述处理器71的存储装置。
在一些实施方式中,存储器75存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
操作系统751,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务;
应用模块752,包含设备控制服务程序、设备识别服务程序等各种应用程序,用于实现各种应用业务。
具体地,处理器71用于调用存储器75中存储的程序,执行以下操作:
当接收到用于更新当前运行的Web App的更新请求时,继续运行所述WebApp,并下载所述Web App的新版本的更新包;
当所述更新包下载完毕后,在后台对所述更新包执行安装,且所述安装生成的新安装文件存储于第一路径,所述第一路径不同于所述Web App的当前版本的安装文件存储的第二路径;
将所述新安装文件中的页面文件加载至所述Web App,以显示新版本页面。
上述Web App可以是通信设备上可以运行的任何Web App,例如:采用开放Web App技术来构建的移动操作系统(例如:Firefox OS系统)上运行的打包封闭形式的Web App,还可以是其它移动操作系统上可以运行的Web App,例如:Android系统、iOS系统或者Windows Phone系统上可以运行的Web App。其中,上述下载所述新版本的更新包的方式本实施例不作限定,例如可以是通过向服务器发送至用于请求返回所述更新包的请求消息,再接收该服务器发送的所述更新包;例如是接收服务器主动发送的所述更新包。
安装可以是后台对所述更新包执行安装是指在运行所述Web App的同时,对更新包执行安装,并将安装生成的新安装文件存储于第一路径,所述第一路径不同于所述Web App的当前版本的安装文件存储的第二路径。
其中,上述页面文件为所述新安装文件中的页面文件,这样加载所述页面文件得到页面就是新版本的页面,即所述Web App显示的页面为新版本的页面,即对所述Web App完成了更新。
在另一个实施例中,处理器71还可以用于执行如下操作:
当接收到用于更新当前运行的Web App的更新请求时,继续运行所述WebApp,并下载所述Web App的新版本的更新包;
当所述更新包下载完毕后,在后台对所述更新包执行安装,且所述安装生成的新安装文件存储于第一路径,所述第一路径不同于所述Web App的当前版本的安装文件存储的第二路径;
缓存用于表示所述Web App的当前状态的数据;
将所述新安装文件中的页面文件加载至所述Web App,以显示新版本页面;
在所述新版本页面中加载所述数据,以在所述新版本页面中显示所述当前状态。
上述获知的当前运行的Web App有新版本的方式本实施例对此不作限定,例如:可以是通过与应用程序商店(App Store)进行通信获得到当前运行的WebApp有新版本,还可以是App Store主动告诉当前运行的Web App有新版本,还可以是通过与服务器进行通信获得到当前运行的Web App有新版本,还可以是服务器主动告诉当前运行的Web App有新版本。
上述更新包可以是新版本的所有文件,或者上述更新包可以是所述新版本中与所述Web App的当前版本的区别文件。即步骤201可以是下载新版本的所有文件或者下载所述新版本中与所述Web App的当前版本的区别文件。
上述当前状态可以是指继续运行的Web App当前的行为,继续运行的WebApp当前处理处理的事务。缓存用于表示所述Web App的当前状态的数据,即缓存继续运行的Web App的当前状态,例如:继续中运行的Web App的当前状态是与好友在聊天,则处理器71可以是缓存该聊天的网页,即该聊天的内容信息。其中,本实施例中的缓存数据只有在更新时由Web App主动调用的,且将当前状态加载至Web App后,数据就会立即删除。
其中,上述页面文件为所述新安装文件中的页面文件,这样加载所述页面文件得到页面就是新版本的页面,即所述Web App显示的页面为新版本的页面,即对所述Web App完成了更新。
所述页面文件可以包括:
所述新安装文件中与所述Web App当前所在页面对应的页面文件;或者
所述新安装文件中用于显示所述新版本的Web App的首页的页面文件(例如:index.html文件)。
由于上述数据是用于表示所述Web App的当前状态,即处理器71在更新的页面中,所述新版本页面重现恢复上述当前状态,而在实际应用中更新页面和加载所述数据完成的时间很短,用户基本上不会感知的,这样给用户的感觉就是一直在显示上述当前状态,只是通过不同的版本的页面显示上述当前状态。
作为一种可选的实施方式,所述页面文件包括所述新安装文件中与所述Web App当前所在页面对应的页面文件步骤,处理器71执行的将所述新安装文件中的页面文件加载至所述Web App的操作可以包括:
确定所述Web App当前所在页面在所述第二路径的子路径;
将所述第一路径的所述子路径的页面文件加载至所述Web App。
即所述页面文件为在所述第一路径中的子路径与所述Web App当前所在页面在所述第二路径的子路径是相同的。
作为一种可选的实施方式,处理器71执行的缓存用于表示所述Web App的当前状态的数据操作可以包括:
调用预先设置的应用程序接口中的第一命令,将用于表示所述Web App的当前状态的数据缓存至与所述应用程序接口对应的缓存文件夹。具体可以控制所述Web App调用预先设置的应用程序接口中的第一命令,将用于表示所述WebApp的当前状态的数据缓存至与所述应用程序接口对应的缓存文件夹。
安装完毕后,可以是显示一个用于提示用户安装完毕的提示消息,当用户看到该提示消息时,再接收用户输入用于确定缓存Web App的当前状态的确认消息时,所述Web App调用就可以预先设置的应用程序接口中的第一命令,将用于表示所述Web App的当前状态的数据缓存至与所述应用程序接口对应的缓存文件夹;还可以是当安装完毕时,Web App直接调用预先设置的应用程序接口中的第一命令,将用于表示所述Web App的当前状态的数据缓存至与所述应用程序接口对应的缓存文件夹。
其中,上述应用程序接口可以包含两个命令,即第一命令和第二命令,其中,第一命令用于缓存用于表示所述Web App的当前状态的数据,第二命令用于加载第一命令缓存的数据。且第一命令缓存的数据是缓存至指定的文件夹,即上述缓存文件夹,该文件夹缓存的数据可以是json格式(该格式没有具体的中文意思)的数据,且该文件为的后缀为也是指定的后缀,例如:.db后缀。即第二命令加载.db后缀的文件夹的当前状态。且第一命令缓存的当前状态还可以根据Web App的开发者而设置的,即数据与当前状态的对应的关系是开发者设定的,即开发者预先就指定是行为与数据的对应关系,即知道所述Web App的当前状态就可以知道上述数据。例如:所述Web App的当前状态处在私信聊天网页,且正与好友a聊天。这样处理器71缓存的数据就可以包括:
“page”:”chat”和“friend”:”a”,其中,“page”:”chat”用于表示私信聊天网页,“friend”:”a”用于表示正与好友a聊天。即上述“page”:”chat”为由开发者指定的与私信聊天网页对应,“friend”:”a”为由开发者指定的正与好友a聊天对应,这样当得到所述Web App的当前状态处在私信聊天网页,且正与好友a聊天,步骤203就可以调用第一命令,将“page”:”chat”和“friend”:”a”缓存至与所述应用程序接口对应的缓存文件夹。
下面以一个具体的实例为说明上述应用程序接口,即该应用程序接口可以定义为如下:
其中,updateCache(userData)为上述第一命令,userData为上述数据,且userData是json格式的数据;updateCacheLoad()为上述第二命令,用于调用上述数据。且上述缓存文件夹可以是为“/data/data/org.mozilla.firefox/files/mozilla/WebApp/Apps/AppName/temp”中的updateCache.db文件夹。
所述Web App的当前状态处在私信聊天网页,且正与好友a聊天,上述userData如下:
处理器71执行的在所述新版本页面中加载所述数据,以在所述新版本页面中显示所述当前状态的操作可以包括:
调用所述应用程序接口的第二命令,在所述新版本页面中加载所述缓存文件夹的所述数据,以在所述新版本页面中显示所述当前状态。具体可以是所述Web App调用所述应用程序接口的第二命令,在所述新版本页面中加载所述缓存文件夹的所述数据,以在所述新版本页面中显示所述当前状态。
当安装完毕后,就可以运行Web App,Web App调用所述应用程序接口的第二命令加载所述数据,从而恢复所述当前状态。具体可以是调用上述updateCacheLoad(),加载上述缓存文件夹中的数据,恢复上述当前状态。这样整个过程中上述当前状态没有被中断过,从而整个更新过程中用户可以一直使用Web App。
作为一种可选的实施方式,上述更新包可以为所述新版本的所有文件,还可以是所述新版本中与所述Web App的当前版本的区别文件,即上述下载所述新版本的更新包,可以包括:
下载所述Web App的新版本的所有数据包,即将新版本的所有数据包都下载,其中,下载的路径本发明实施例对些不作限定。
上述下载所述新版本的更新包,还可以包括:
下载所述Web App的新版本中与所述Web App的当前版本的区别数据包。这样只需要下载所述新版本中与所述Web App的当前版本的区别文件,从而可以节省网络资源。但由于只下载了上述区别文件,而这些区别文件一般是不可能完成Web App的运行,这样就需要将所述当前版本中与所述新版本的相同文件转移至用于存储所述区别文件的数据包的文件夹,即处理器71执行下载所述Web App的新版本中与所述Web App的当前版本的区别文件的数据包的操作之后,处理器71执行在后台对所述更新包执行安装的操作之前,处理器71还可以执行如下操作:
将所述当前版本中与所述新版本的相同文件转移用于存储所述区别文件的数据包的文件夹。
用于存储所述区别文件的数据包的文件夹就包含了上述区别文件以及上述相同文件,即包含了所述新版本的所有数据包,这样就可以进行安装。
在另一个实施例中,处理器71执行缓存用于表示所述Web App的当前状态的数据的操作之后,处理器71还可以执行如下操作:
将所述第一路径设置为所述Web App的默认路径。具体还包括:将所述第一路径与所述Web App的应用标识符进行绑定,即将所述第一路径与所述WebApp原来安装时生成的应用标识符(App URI,即App Uniform ResourceIdentifier,应用程序统一资源标识符)进行绑定,代替原来所关联的路径,从而实现第一路径作为所述Web App的默认路径。
处理器71在将所述第一路径设置为所述Web App的默认路径之后,还可以执行如下操作:
将所述第二路径中的文件删除,以及卸载当前版本的Web App。
在另一实施例中,处理器71执行的当接收到用于更新当前运行的Web App的更新请求时,继续运行所述Web App,并下载所述Web App的新版本的更新包的操作,还可以包括:
接收用户输入的用于更新当前运行的Web App的更新请求时,继续运行所述Web App,并下载所述新版本的更新包。即可以实现由更新过程由用户触发的。
在另一实施例中,还可以不根据用户输入的命令,直接完成更新,即处理器71当自动生成用于更新当前运行的网页应用程序的更新请求时,继续运行所述Web App,并直接下载所述新版本的更新包。当然下载更新包是在后台执行的。
在另一个实施例中,处理器71还可以用于执行如下操作:
通过与App Store或者开发者服务器的通信识别出当前运行的Web App有新版本;
当接收到用于更新当前运行的Web App的更新请求时,继续运行所述WebApp,并下载所述Web App的新版本的更新包;
当所述更新包下载完毕后,在后台对所述更新包执行安装,且所述安装生成的新安装文件存储于第一路径,所述第一路径不同于所述Web App的当前版本的安装文件存储的第二路径;
将所述新安装文件中的页面文件加载至所述Web App,以显示新版本页面。
作为一种可选的实施方式,处理器71在执行将所述新安装文件中的页面文件加载至所述Web App,以显示新版本页面之前,还可以执行如下操作:
缓存用于表示所述Web App的当前状态的数据。
处理器71在执行将所述新安装文件中的页面文件加载至所述Web App,以显示新版本页面之后,还可以执行如下操作:
在所述新版本页面中加载所述数据,以在所述新版本页面中显示所述当前状态。
处理器71执行的通过与App Store或者开发者服务器的通信识别出当前运行的Web App有新版本的操作可以包括:
向App Store发送包含所述Web App的版本号的查询消息,由所述App Store比较所述Web App的版本号和所述App Store上该Web App的版本号是否一致,若不一致,则确定当前运行的Web App有新版本。具体如下:
开发者可以每次向App Store提交新版本Web App的数据包(例如:zip包)时,App Store将自动依据该数据包中manifest.Web App(该文件为网页技术中公知的文件,没有具体的中文意思)文件中的内容为该数据包生成一个包含WebApp的版本信息的文件(例如:mini manifest文件),例如:该文件中包含“版本version”字段,该字段用于标识的是该数据包的版本号。
当在通信设备上下载并安装上述当前版本的Web App后,将自动生成一个包含该Web App版本号的文件(Web App.json文件),并且存储在通信设备上,例如:该文件中包含“version”字段,该字段用于标识的是该该Web App的版本号。
上述当前版本的Web App可以同期性地主动与App Store进行一次通信,比较App Store上“version”字段与通信设备上的“version”字段是否一致,当不一致时,就表示当前运行的Web App有新版本,例如:比较App Store上mini manifest文件中的“version”字段与通信设备上的Web App.json文件中的“version”字段。
处理器71执行的通过与App Store或者开发者服务器的通信识别出当前运行的Web App有新版本的操作可以包括:
当App Store确定当前运行的Web App有新版本时,接收App Store发送的用于表示Web App有新版本的指示消息。具体如下:
每当通信设备从App Store上下载并安装某个Web App时,App Store可以生成一条记录,记录通信设备已经下载过的版本。同时,App Store会定期检查通信设备上的Web App,即步骤201中运行的Web App,并将通信设备上的App版本号与App Store上拥有的作比较,从而确定当前运行的Web App有新版本。
处理器71执行的通过与App Store或者开发者服务器的通信识别出当前运行的Web App有新版本的操作可以包括:向开发者服务器发送包含所述Web App的基本信息的查询消息,由所述App Store比较所述Web App的基本信息和所述App Store上该Web App的基本信息是否一致,若不一致,则确定当前运行的Web App有新版本。具体如下:
在上述当前版本的Web App的打包文件中(例如:manifest.Web App中)增加一个可选字段(例如:updateByServer),该字段可以如下:
updateByServer:{
“url”:“http://xxxxxxx”
}
其中,“url”:http://xxxxxxx用于表示开发者服务器端提供的检测更新并返回最新版本的接口。
在安装上述当前版本的Web App,该Web App的默认路径中生成一个包含该Web App的基本信息的文件,例如:版本号和Web App的名字。
上述当前版本的Web App可以周期性地获取updateByServer里面的统一资源定位符(Uniform Resource Locator,URL)值,然后将本地存储的该Web App的基本信息作为参数,访问该URL,开发者服务器接收到该Web App发来的参数后,根据Web App的基本信息查询该Web App是否具有新版本,如果没有新版本则返回用于表示该Web App不具有新版本消息,并且不执行操作。如果有新版本返回用于表示该Web App具有新版本消息。
处理器71执行的通过与App Store或者开发者服务器的通信识别出当前运行的Web App有新版本的操作可以包括:
当开发者服务器确定当前运行的Web App有新版本时,接收开发者服务器发送的用于表示Web App有新版本的指示消息。具体如下:
开发者服务器主动获取用户设备信息,从而完成检测当前运行的Web App有新版本的过程,为了使开发者服务器方便的找到各个通信设备上安装的WebApp,需要增加注册机制,同时为了减少通信设备注册的麻烦,可以利用App Store的账号登录开发者服务器。这里需要App Store开放一个基于总管(outh)的账号认证接口,可以让开发者调用该接口,使通信设备通过App Store账号能够安全登录到开发者服务器。
通信设备通过App Store账号登录的前提下,开发者服务器就能通过账号找到通信设备上安装的App Store,定期检查通信设备上的App Store及版本号,通过对比版本号确定所述当前运行的Web App是否有新版本。
本实施例提供通信设备可以任何支持Web App的通信设备,例如:手机、平板电脑,计算机、车载设备等通信设备。
上述技术方案中,当接收到用于更新当前运行的Web App的更新请求时,继续运行所述Web App,并下载所述Web App的新版本的更新包;当所述更新包下载完毕后,在后台对所述更新包执行安装,且所述安装生成的新安装文件存储于第一路径,所述第一路径不同于所述Web App的当前版本的安装文件存储的第二路径;将所述新安装文件中的页面文件加载至所述Web App,以显示新版本页面。这样在整个更新过程中Web App是一直在运行的,用户可以一直使用该所述Web App,从而实现使采用开放Web App技术来构建的移动操作系统中的打包封闭形式的Web App更新变得很简便,且更新过程中用户体验比较高。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存取存储器(Random Access Memory,简称RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (19)
1.一种网页应用程序更新方法,其特征在于,包括:
当接收到用于更新当前运行的网页应用程序的更新请求时,继续运行所述网页应用程序,并下载所述网页应用程序的新版本的更新包;
当所述更新包下载完毕后,在后台对所述更新包执行安装,且所述安装生成的新安装文件存储于第一路径,所述第一路径不同于所述网页应用程序的当前版本的安装文件存储的第二路径;
将所述新安装文件中的页面文件加载至所述网页应用程序,以显示新版本页面。
2.如权利要求1所述的方法,其特征在于,所述页面文件包括:
所述新安装文件中与所述网页应用程序当前所在页面对应的页面文件;或者
所述新安装文件中用于显示所述新版本的网页应用程序的首页的页面文件。
3.如权利要求2所述的方法,其特征在于,所述将所述新安装文件中的页面文件加载至所述网页应用程序,包括:
确定所述网页应用程序当前所在页面在所述第二路径的子路径;
将所述第一路径的所述子路径的页面文件加载至所述网页应用程序。
4.如权利要求3所述的方法,其特征在于,所述以显示新版本页面之前,所述方法包括:
缓存用于表示所述网页应用程序的当前状态的数据;
所述以显示新版本页面之后,所述方法包括:
在所述新版本页面中加载所述数据,以在所述新版本页面中显示所述当前状态。
5.如权利要求4所述的方法,其特征在于,所述缓存用于表示所述网页应用程序的当前状态的数据,包括:
调用预先设置的应用程序接口中的第一命令,将用于表示所述网页应用程序的当前状态的数据缓存至与所述应用程序接口对应的缓存文件夹;
所述在所述新版本页面中加载所述数据,包括:
调用所述应用程序接口的第二命令,在所述新版本页面中加载所述缓存文件夹的所述数据。
6.如权利要求1-5中任一项所述的方法,其特征在于,所述下载所述网页应用程序的新版本的更新包,包括:
下载所述网页应用程序的新版本的所有数据包;或者
下载所述网页应用程序的新版本中与所述网页应用程序的当前版本的区别数据包。
7.如权利要求6所述的方法,其特征在于,所述下载所述网页应用程序的新版本中与所述网页应用程序的当前版本的区别文件的数据包之后,所述在后台对所述更新包执行安装之前,所述方法还包括:
将所述当前版本中与所述新版本的相同文件转移用于存储所述区别文件的数据包的文件夹。
8.如权利要求1-5中任一项所述的方法,其特征在于,所述在后台对所述更新包执行安装之后,所述方法还包括:
将所述第一路径设置为所述网页应用程序的默认路径。
9.如权利要求4所述的方法,其特征在于,所述将所述第一路径设置为所述网页应用程序的默认路径,包括:
将所述第一路径与所述网页应用程序的应用标识符进行绑定,以将所述第一路径设置为所述网页应用程序的默认路径。
10.如权利要求1-5中任一项所述的方法,其特征在于,所述接收到用于更新当前运行的网页应用程序的更新请求,包括:
接收用户输入的用于更新当前运行的网页应用程序的更新请求;或者
自动生成用于更新当前运行的网页应用程序的更新请求。
11.一种通信设备,其特征在于,包括:下载单元、安装单元和加载单元,其中:
所述下载单元,用于当接收到用于更新当前运行的网页应用程序的更新请求时,继续运行所述网页应用程序,并下载所述网页应用程序的新版本的更新包;
所述安装单元,用于当所述更新包下载完毕后,在后台对所述更新包执行安装,且所述安装生成的新安装文件存储于第一路径,所述第一路径不同于所述网页应用程序的当前版本的安装文件存储的第二路径;
所述加载单元,用于将所述新安装文件中的页面文件加载至所述网页应用程序,以显示新版本页面。
12.如权利要求11所述的设备,其特征在于,所述页面文件包括:
所述新安装文件中与所述网页应用程序当前所在页面对应的页面文件;或者
所述新安装文件中用于显示所述新版本的网页应用程序的首页的页面文件。
13.如权利要求12所述的设备,其特征在于,所述加载单元还用于确定所述网页应用程序当前所在页面在所述第二路径的子路径,并将所述第一路径的所述子路径的页面文件加载至所述网页应用程序。
14.如权利要求13所述的设备,其特征在于,所述设备还包括:
缓存单元,用于缓存用于表示所述网页应用程序的当前状态的数据;
所述加载单元进一步还用于在所述新版本页面中加载所述数据,以在所述新版本页面中显示所述当前状态。
15.如权利要求14所述的设备,其特征在于,所述缓存单元还用于调用预先设置的应用程序接口中的第一命令,将用于表示所述网页应用程序的当前状态的数据缓存至与所述应用程序接口对应的缓存文件夹;
所述加载单元还用于调用所述应用程序接口的第二命令,在所述新版本页面中加载所述缓存文件夹的所述数据。
16.如权利要求11-15中任一项所述的设备,其特征在于,所述下载单元还用于下载所述网页应用程序的新版本的所有数据包;或者
所述下载单元还用于下载所述网页应用程序的新版本中与所述网页应用程序的当前版本的区别数据包。
17.如权利要求16所述的设备,其特征在于,所述设备还包括:
转移单元,用于将所述当前版本中与所述新版本的相同文件转移用于存储所述区别文件的数据包的文件夹。
18.如权利要求11-15中任一项所述的设备,其特征在于,所述设备还包括:
设置单元,用于将所述第一路径设置为所述网页应用程序的默认路径。
19.如权利要求11-15中任一项所述的设备,其特征在于,所述接收到用于更新当前运行的网页应用程序的更新请求,包括:
接收用户输入的用于更新当前运行的网页应用程序的更新请求;或者
自动生成用于更新当前运行的网页应用程序的更新请求。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310198466.2A CN104182241A (zh) | 2013-05-24 | 2013-05-24 | 一种网页应用程序更新方法及通信设备 |
EP20140160807 EP2806357A1 (en) | 2013-05-24 | 2014-03-20 | Method and communication device for updating a web application |
US14/287,829 US20140351807A1 (en) | 2013-05-24 | 2014-05-27 | Method and communication device for updating web application |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310198466.2A CN104182241A (zh) | 2013-05-24 | 2013-05-24 | 一种网页应用程序更新方法及通信设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104182241A true CN104182241A (zh) | 2014-12-03 |
Family
ID=50473016
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310198466.2A Pending CN104182241A (zh) | 2013-05-24 | 2013-05-24 | 一种网页应用程序更新方法及通信设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20140351807A1 (zh) |
EP (1) | EP2806357A1 (zh) |
CN (1) | CN104182241A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104866340A (zh) * | 2015-04-29 | 2015-08-26 | 小米科技有限责任公司 | 终端设备软件更新方法及装置 |
CN105278962A (zh) * | 2015-11-04 | 2016-01-27 | 北京星网锐捷网络技术有限公司 | 应用程序及数据库的热部署方法及装置 |
CN106033361A (zh) * | 2015-03-13 | 2016-10-19 | 阿里巴巴集团控股有限公司 | 一种应用页面呈现、应用页面数据更新方法及装置 |
CN106293790A (zh) * | 2015-05-28 | 2017-01-04 | Tcl集团股份有限公司 | 基于Firefox操作系统的应用程序升级方法和装置 |
CN107885516A (zh) * | 2016-09-30 | 2018-04-06 | 环鸿电子(昆山)有限公司 | 应用程序更新方法及移动装置 |
CN108762807A (zh) * | 2018-05-28 | 2018-11-06 | 北京酷我科技有限公司 | 一种基于强离线包的h5页面解析方法 |
WO2019033995A1 (zh) * | 2017-08-16 | 2019-02-21 | 阿里巴巴集团控股有限公司 | 一种页面更新方法和装置 |
CN109960521A (zh) * | 2019-03-20 | 2019-07-02 | 北京顺丰同城科技有限公司 | 应用程序升级方法、装置、电子设备及存储介质 |
CN110290160A (zh) * | 2018-03-19 | 2019-09-27 | 北京视联动力国际信息技术有限公司 | 一种视联网的数据处理方法和装置 |
CN110321227A (zh) * | 2018-03-29 | 2019-10-11 | 腾讯科技(深圳)有限公司 | 页面数据同步方法、电子装置及计算机可读存储介质 |
CN111752575A (zh) * | 2020-05-11 | 2020-10-09 | 宁波吉利汽车研究开发有限公司 | 一种车载应用更新方法、装置、设备及存储介质 |
CN112445498A (zh) * | 2020-11-27 | 2021-03-05 | 杭州海康威视数字技术股份有限公司 | 一种程序安装方法、装置、电子设备及存储介质 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9619244B2 (en) * | 2014-09-05 | 2017-04-11 | Xiaomi Inc. | Method and system for upgrading an electronic device |
US9652220B2 (en) * | 2015-05-11 | 2017-05-16 | Sap Portals Israel Ltd. | Zero down-time deployment of new application versions |
US10884727B2 (en) * | 2015-05-20 | 2021-01-05 | International Business Machines Corporation | Rolling upgrade of a distributed application |
CN105867966A (zh) * | 2015-12-31 | 2016-08-17 | 乐视网信息技术(北京)股份有限公司 | 应用软件的安装方法及装置 |
CN106990975B (zh) * | 2016-01-21 | 2021-07-23 | 斑马智行网络(香港)有限公司 | 一种应用热部署方法、装置和系统 |
US10671376B2 (en) * | 2016-03-15 | 2020-06-02 | Shenzhen Skyworth-Rgb Electronic Co., Ltd. | Server program hot upgrading method and device |
US10230712B2 (en) | 2016-09-12 | 2019-03-12 | Microsoft Technology Licensing, Llc | Binary experimentation on running web servers |
EP3757754B1 (en) * | 2016-11-14 | 2023-01-04 | Google LLC | Sorting for data-parallel computing devices |
US20180136929A1 (en) * | 2016-11-15 | 2018-05-17 | International Business Machines Corporation | Content driven automated upgrade of running web applications in on-premise environments |
CN107315606A (zh) | 2017-06-14 | 2017-11-03 | 北京小米移动软件有限公司 | 应用更新方法及装置 |
CN109032646B (zh) * | 2018-08-28 | 2023-04-07 | 杭州迪普科技股份有限公司 | 一种更新应用的方法、装置和系统 |
CN110032501B (zh) * | 2019-04-01 | 2023-04-25 | 北京奇艺世纪科技有限公司 | 一种app安装包的处理方法、装置和电子设备 |
CN110245307A (zh) * | 2019-05-07 | 2019-09-17 | 广州虎牙信息科技有限公司 | 页面缓存管理方法及系统、终端设备及存储介质 |
US11494177B2 (en) * | 2019-09-30 | 2022-11-08 | SlackTechnologies, LLC | Method, apparatus, and computer program product for organizing the booting operation of a group-based communication browser session |
CN112015450B (zh) * | 2020-08-25 | 2024-01-19 | 深圳Tcl新技术有限公司 | 加载智能设备控制页面的方法、装置和存储介质 |
CN112291600B (zh) * | 2020-10-26 | 2023-04-18 | Vidaa(荷兰)国际控股有限公司 | 一种缓存方法及显示设备 |
CN112948018B (zh) * | 2021-03-01 | 2023-08-01 | 北京百度网讯科技有限公司 | 用于小程序的动态库加载方法、装置、设备及介质 |
CN112988193B (zh) * | 2021-03-26 | 2023-04-07 | 深圳壹账通创配科技有限公司 | 代码更新识别方法、装置、计算机设备及可读存储介质 |
CN114138361A (zh) * | 2021-11-18 | 2022-03-04 | 四川启睿克科技有限公司 | 一种Hybrid App加载子应用的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6510439B1 (en) * | 1999-08-06 | 2003-01-21 | Lucent Technologies Inc. | Method and system for consistent update and retrieval of document in a WWW server |
US20040010786A1 (en) * | 2002-07-11 | 2004-01-15 | Microsoft Corporation | System and method for automatically upgrading a software application |
US20060075076A1 (en) * | 2004-09-30 | 2006-04-06 | Microsoft Corporation | Updating software while it is running |
CN101192937A (zh) * | 2006-11-24 | 2008-06-04 | 华为技术有限公司 | 一种可热部署的方法及其系统 |
US20120216184A1 (en) * | 2011-02-22 | 2012-08-23 | International Business Machines Corporation | Runtime code replacement |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7305672B2 (en) * | 2004-01-06 | 2007-12-04 | International Business Machines Corporation | Dynamic software update system, method and program product |
CN102170365B (zh) * | 2010-02-26 | 2013-12-25 | 阿里巴巴集团控股有限公司 | 实现软件系统热部署的方法及系统 |
US20130205277A1 (en) * | 2012-02-07 | 2013-08-08 | Telerik, AD | Environment and method for cross-platform development of software applications |
-
2013
- 2013-05-24 CN CN201310198466.2A patent/CN104182241A/zh active Pending
-
2014
- 2014-03-20 EP EP20140160807 patent/EP2806357A1/en not_active Withdrawn
- 2014-05-27 US US14/287,829 patent/US20140351807A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6510439B1 (en) * | 1999-08-06 | 2003-01-21 | Lucent Technologies Inc. | Method and system for consistent update and retrieval of document in a WWW server |
US20040010786A1 (en) * | 2002-07-11 | 2004-01-15 | Microsoft Corporation | System and method for automatically upgrading a software application |
US20060075076A1 (en) * | 2004-09-30 | 2006-04-06 | Microsoft Corporation | Updating software while it is running |
CN101192937A (zh) * | 2006-11-24 | 2008-06-04 | 华为技术有限公司 | 一种可热部署的方法及其系统 |
US20120216184A1 (en) * | 2011-02-22 | 2012-08-23 | International Business Machines Corporation | Runtime code replacement |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106033361A (zh) * | 2015-03-13 | 2016-10-19 | 阿里巴巴集团控股有限公司 | 一种应用页面呈现、应用页面数据更新方法及装置 |
CN104866340A (zh) * | 2015-04-29 | 2015-08-26 | 小米科技有限责任公司 | 终端设备软件更新方法及装置 |
CN106293790B (zh) * | 2015-05-28 | 2019-12-13 | Tcl集团股份有限公司 | 基于Firefox操作系统的应用程序升级方法和装置 |
CN106293790A (zh) * | 2015-05-28 | 2017-01-04 | Tcl集团股份有限公司 | 基于Firefox操作系统的应用程序升级方法和装置 |
CN105278962A (zh) * | 2015-11-04 | 2016-01-27 | 北京星网锐捷网络技术有限公司 | 应用程序及数据库的热部署方法及装置 |
CN107885516A (zh) * | 2016-09-30 | 2018-04-06 | 环鸿电子(昆山)有限公司 | 应用程序更新方法及移动装置 |
US10908893B2 (en) | 2017-08-16 | 2021-02-02 | Advanced New Technologies Co., Ltd. | Page update method and apparatus |
WO2019033995A1 (zh) * | 2017-08-16 | 2019-02-21 | 阿里巴巴集团控股有限公司 | 一种页面更新方法和装置 |
CN110290160A (zh) * | 2018-03-19 | 2019-09-27 | 北京视联动力国际信息技术有限公司 | 一种视联网的数据处理方法和装置 |
CN110321227A (zh) * | 2018-03-29 | 2019-10-11 | 腾讯科技(深圳)有限公司 | 页面数据同步方法、电子装置及计算机可读存储介质 |
CN108762807A (zh) * | 2018-05-28 | 2018-11-06 | 北京酷我科技有限公司 | 一种基于强离线包的h5页面解析方法 |
CN108762807B (zh) * | 2018-05-28 | 2022-03-25 | 北京酷我科技有限公司 | 一种基于强离线包的h5页面解析方法 |
CN109960521A (zh) * | 2019-03-20 | 2019-07-02 | 北京顺丰同城科技有限公司 | 应用程序升级方法、装置、电子设备及存储介质 |
CN109960521B (zh) * | 2019-03-20 | 2022-08-02 | 北京顺丰同城科技有限公司 | 应用程序升级方法、装置、电子设备及存储介质 |
CN111752575A (zh) * | 2020-05-11 | 2020-10-09 | 宁波吉利汽车研究开发有限公司 | 一种车载应用更新方法、装置、设备及存储介质 |
CN112445498A (zh) * | 2020-11-27 | 2021-03-05 | 杭州海康威视数字技术股份有限公司 | 一种程序安装方法、装置、电子设备及存储介质 |
CN112445498B (zh) * | 2020-11-27 | 2024-03-05 | 杭州海康威视数字技术股份有限公司 | 一种程序安装方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP2806357A1 (en) | 2014-11-26 |
US20140351807A1 (en) | 2014-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104182241A (zh) | 一种网页应用程序更新方法及通信设备 | |
US8612947B2 (en) | System and method for remotely compiling multi-platform native applications for mobile devices | |
US9077770B2 (en) | Mobile web app infrastructure | |
US9946526B2 (en) | Development and hosting for platform independent applications | |
CN106686200B (zh) | 移动应用程序更新方法、移动终端及更新系统 | |
US10037215B2 (en) | Method and apparatus for interworking application and web browser | |
US10404568B2 (en) | Agent manager for distributed transaction monitoring system | |
US20160011864A1 (en) | Development of Platform Independent Applications | |
CN103955495A (zh) | 页面子资源的下载方法及装置 | |
CN103634393A (zh) | Ivr及其实现方法 | |
CN108600377B (zh) | 一种文件下载的暂停方法、装置、终端和存储介质 | |
US20130036197A1 (en) | Method and system for a mobile local server | |
CN104052769A (zh) | 一种对移动终端应用包含的资源更新的方法、装置和系统 | |
CN104809011A (zh) | 一种应用程序的管理方法 | |
EP3313022B1 (en) | Resending method and device for hypertext transfer request, and client | |
US20110107311A1 (en) | Communicating with Locally Networked Device from Remotely Hosted Browser Based Tool | |
US11172014B2 (en) | Smart URL integration using serverless service | |
US20160117304A1 (en) | Standalone document management method | |
CN111045695A (zh) | WebLogic中间件部署装置、方法及设备和介质 | |
CN113778543B (zh) | 一种应用于插件的页面内容更新方法和装置 | |
US20140313215A1 (en) | Scene-isolated internet application | |
US20130132467A1 (en) | Method of using application, gateway using the method, terminal using the method, and terminal system using the method | |
US20220179775A1 (en) | Browserless testing | |
KR102368826B1 (ko) | 클라우드 서버 및 클라우드 서버의 동작 | |
CN113626330A (zh) | 混合模式移动应用调试方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20171030 Address after: Metro Songshan Lake high tech Industrial Development Zone, Guangdong Province, Dongguan City Road 523808 No. 2 South Factory (1) project B2 -5 production workshop Applicant after: HUAWEI terminal (Dongguan) Co., Ltd. Address before: 518129 Longgang District, Guangdong, Bantian HUAWEI base B District, building 2, building No. Applicant before: Huawei Device Co., Ltd. |
|
TA01 | Transfer of patent application right | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20141203 |
|
RJ01 | Rejection of invention patent application after publication |