跨应用共享数据的方法及网页浏览器
技术领域
本申请涉及数据共享技术领域,尤其涉及一种跨应用共享数据的方法及网页浏览器。
背景技术
传统技术中,移动终端上只有被划分为同一组(group)的应用之间才能共享数据,如,在操作系统为IOS的移动终端上,将开发商相同的多个应用(如,微信和QQ)划分为同一组,只有该多个应用之间才可以共享数据,也即传统技术中对共享数据的应用有严格的限制。因此,需要提供一种跨应用共享数据的方法,以实现同一移动终端上任意两个应用之间都可以共享数据。
发明内容
本申请描述了一种跨应用共享数据的方法及网页浏览器,以实现同一移动终端上任意两个应用之间数据的共享。
第一方面,提供了一种跨应用共享数据的方法,该方法包括:
网页服务器接收第一应用通过所述第一应用所在移动终端的网页浏览器发送的写数据请求,所述写数据请求包括待写入数据的网页页面的地址信息和待写入的数据;
向所述地址信息对应的网页页面写入所述数据,并指示所述网页浏览器将所述数据存储到所述网页页面在所述移动终端上对应的共享存储空间中;
接收所述移动终端上的第二应用通过所述网页浏览器发送的访问所述网页页面的访问请求;
根据所述访问请求,从所述共享存储空间中读取所述数据,并向所述第二应用发送所述数据。
第二方面,提供了一种网页浏览器,该网页浏览器包括:
接收单元,用于接收与所述网页浏览器在同一移动终端上的第一应用发送的写数据请求,所述写数据请求包括待写入数据的网页页面的地址信息和待写入的数据;
发送单元,用于向网页服务器发送所述接收单元接收的所述写数据请求;
所述接收单元,还用于接收所述网页服务器在根据所述写数据请求在所述网页浏览器上生成所述地址信息对应的网页页面,并向所述网页页面写入所述数据后发送的指示消息;
存储单元,用于根据所述接收单元接收的所述指示消息,将所述数据存储到所述网页页面在所述移动终端上对应的共享存储空间中;
所述接收单元,还用于接收所述移动终端上的第二应用发送的访问所述网页页面的访问请求;
读取单元,用于根据所述接收单元接收的所述访问请求,从所述共享存储空间中读取所述数据;
所述发送单元,还用于向所述第二应用发送所述读取单元读取的所述数据。
本申请提供的跨应用共享数据的方法及网页浏览器,当第一应用通过其所在移动终端的网页浏览器访问网页页面并向网页页面中写入数据时,网页服务器指示网页浏览器将上述数据保存到移动终端上与该网页页面对应的共享存储空间中,当该移动终端上的第二应用通过上述网页浏览器访问上述网页页面时,网页浏览器可以从共享存储空间中读取上述数据并发送给第二应用,由此方便地实现了同一移动终端上任意两个应用之间数据的共享。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请提供的跨应用共享数据的方法的应用场景示意图;
图2为本申请一种实施例提供的跨应用共享数据的方法流程图;
图3为本申请另一种实施例提供的跨应用共享数据的方法的交互示意图;
图4为本申请再一种实施例提供的网页浏览器示意图。
具体实施方式
下面结合附图,对本发明的实施例进行描述。
本申请实施例提供的跨应用共享数据的方法适用于同一移动终端上任意两个应用之间共享数据的场景,此处的移动终端包括但不限于移动电话、移动电脑、平板电脑、个人数字助理(Personal Digital Assistant,PDA)等,而移动终端上的操作系统可以为IOS9.0及以上的系统;此外,共享的数据可以包括登录认证信息(如用户名、用户ID等)以及应用互通数据等。
图1为本申请提供的跨应用共享数据的方法的应用场景示意图,图1中,应用A为向网页页面中写入数据的应用,称为第一应用;应用B为从网页页面中读取数据的应用,称为第二应用。图1中,应用A和应用B安装在同一移动终端上,且该移动终端具有自带的网页浏览器(如,safari)。需要说明的是,当应用A通过其所在移动终端自带的网页浏览器访问网页页面,并向网页页面中写入数据时,该网页浏览器会将写入的数据保存到移动终端上与上述网页页面对应的共享存储空间中;当有其它应用(如,应用B)通过移动终端自带的网页浏览器访问上述网页页面时,网页浏览器可以直接从该网页页面对应的共享存储空间中读取数据,并将读取的数据发送给应用B,从而实现了同一移动终端上任意两个应用之间数据的共享。
作为示例性说明,图1中只是给出了两个应用之间共享数据的方法,在实际应用中,当移动终端上的其它应用(如,应用C)通过移动终端自带的网页浏览器访问上述网页页面时,也可以从共享存储空间中读取上述数据,也即可以实现多个应用之间数据的共享,本申请对此不作限定。
图2为本申请一种实施例提供的跨应用共享数据的方法流程图。所述方法的执行主体可以为网页浏览器,如图2所示,所述方法具体可以包括:
步骤210,网页浏览器接收与网页浏览器在同一移动终端上的第一应用发送的写数据请求。
其中,该写数据请求可以包括待写入数据的网页页面的地址信息(如,统一资源定位符(Uniform Resource Locator,URL)以及待写入的数据,第一应用与网页浏览器安装在同一移动终端上。举例来说,待写入数据的网页页面的地址信息可以为:http://host.name/path/to/page。
可选地,第一应用可以通过实例化网页控制器(SFSafariViewController)类来向网页浏览器发送写数据请求,其中,SFSafariViewController类为IOS9.0及以上操作系统所提供的类,其可以为多个应用提供高级的共享功能(如共享内容拦截、密码输入等)。
在一种具体的实现方式中,对于上述例子中的网页页面,第一应用可以通过如下代码来实例化SFSafariViewController类:
using SafariServices;
……
var vc=new SFSafariViewController(“http://host.name/path/to/page”);
PresentViewControllerAsync(vc,true);
在运行上述代码之后,就可以实现第一应用向其所在移动终端的网页浏览器发送写数据请求。
步骤220,向网页服务器发送写数据请求,并接收网页服务器在根据写数据请求在网页浏览器上生成地址信息对应的网页页面,并向网页页面写入数据后发送的指示消息。
网页浏览器在接收到第一应用发送的写数据请求之后,可以将该写数据请求发送给网页服务器,从而由网页服务器根据写数据请求中的待写入数据的网页页面的地址信息,在网页浏览器中渲染生成待写入数据的网页页面,并向网页页面中写入待写入的数据。在网页服务器将待写入的数据写入网页页面之后;网页服务器可以向网页浏览器发送指示消息。
步骤230,根据指示消息,将数据存储到网页页面在移动终端上对应的共享存储空间中。
网页浏览器可以根据接收到的指示消息,将上述数据存储到网页页面在移动终端上对应的共享存储空间中。在一个例子中,此处的共享存储空间可以为网页服务器预先在移动终端上生成的Cookie条目,该Cookie条目的位置默认为根目录下。
可选地,当上述共享存储空间为Cookie条目时,本申请实施例还可以包括确定Cookie条目的步骤。具体地,网页浏览器在接收到上述指示消息之后,可以对网页页面的地址信息进行解析,以获得该网页页面的域名。如,当对前述例子中的网页页面的地址信息“http://host.name/path/to/page”进行解析后,可以获得的网页页面的域名为“host.name”。此处,从网页页面的地址信息中获取网页页面的域名为传统的常用技术,本申请在此不复赘述。在获得网页页面的域名之后,就可以根据网页页面的域名,确定对应的Cookie条目,并将数据写入该Cookie条目中。
当然,在实际应用中,网页服务器预先在移动终端上生成的Cookie条目可以有多个,也即根据网页页面的域名可以确定多个Cookie条目时,该多个Cookie条目可以以键值对的形式进行存储,即网页服务器会为每个Cookie条目唯一地赋予一个名称(key),且该多个Cookie条目可以按照一定的顺序进行排列。之后当网页浏览器请求网页服务器时,网页服务器可以指示网页浏览器向Cookie条目中写入数据,也即在发送上述指示消息时,会指示网页浏览器当前写入的Cookie条目的key;网页浏览器向该key对应的Cookie条目中写入数据。可以理解的是,在写入数据完成之后,网页服务器可以将已写入数据的Cookie条目的key发送给向网页页面中写入数据的对象(如,应用A)。
以图1为例来说,假设应用A向网页页面写入的数据被存储到了多个Cookie条目中,该应用A可以通过与网页服务器的交互来获取多个Cookie条目的key。而当应用A与应用B需要共享数据时,应用A和应用B可以使用约定一致的key来获取同一个Cookie条目中的数据。
步骤240,接收移动终端上的第二应用发送的访问上述网页页面的访问请求。
此处的访问请求可以为读数据请求,该访问请求可以包括上述网页页面的地址信息。此处的第二应用可以为上述移动终端上除第一应用之外的任一应用。
步骤250,根据访问请求,从共享存储空间中读取数据,并向第二应用发送数据。
当第二应用通过该移动终端上的网页浏览器访问上述网页页面时,也即当网页浏览器接收到第二应用发送的访问上述网页页面的访问请求时,网页浏览器可以对访问请求中的地址信息进行解析,以获得该网页页面的域名;之后,根据该网页页面的域名,在移动终端上查找网页页面对应的Cookie条目,并从Cookie条目中读取数据;之后将读取的数据发送给第二应用。由此,实现了同一移动终端上不同应用之间数据的共享。
需要说明的是,第二应用向网页浏览器发送访问请求的方式与第一应用向网页浏览器发送写数据请求的方式相同,在此不复赘述。
可以理解的是,移动终端上网页页面对应的Cookie条目有多个时,也即根据网页页面的域名可以确定多个Cookie条目时,若第二应用需要从部分Cookie条目中读取数据,则第二应用可以通过与第一应用约定的一致的名称来确定部分Cookie条目的key,之后根据确定的key,查找上述部分Cookie条目,并从中读取数据;或者可以协商读取部分Cookie条目的顺序(如,约定总是读取第一个Cookie条目中的数据)。
当第二应用通过Cookie的名称(key)读取Cookie条目时,其实现代码可以如下:
需要说明的是,传统技术中,第一应用一般会直接打开待访问的网页页面,而不会通过其所在移动终端的网页浏览器访问网页页面,当第一应用直接打开待访问的网页页面时,若该第一应用向网页页面中写入数据,则网页服务器会指示第一应用将写入的数据记录到与该第一应用对应的虚拟存储空间(如,沙箱(Sandbox))中,对于该虚拟存储空间的数据,其它应用不能直接读取,而只能由第一应用再次访问上述网页页面时读取,也即不能实现应用之间数据的共享。而本申请中,由于第一应用是通过网页浏览器访问网页页面,当该第一应用向网页页面中写入数据时,网页服务器会指示网页浏览器将数据存储到该网页浏览器可以读/写数据的存储空间中,当有其它应用通过该网页浏览器访问上述网页页面时,网页浏览器就可以直接从上述存储空间中读取已存储的数据,并将该数据发送给第二应用,从而实现了同一移动终端上任意两个应用之间数据的共享。
图3为本申请另一种实施例提供的跨应用共享数据的方法的交互示意图,如图3所示,所述方法具体可以包括:
步骤310,第一应用向网页浏览器发送写数据请求。
该写数据请求包括待写入数据的网页页面的地址信息和待写入的数据。
步骤320,网页浏览器向网页服务器转发上述写数据请求。
步骤330,网页服务器在网页浏览器上生成地址信息对应的网页页面,并向网页页面写入数据。
步骤340,网页服务器向网页浏览器发送指示消息。
步骤350,网页浏览器对网页页面的地址信息进行解析,获取网页页面的域名。
步骤360,网页浏览器根据网页页面的域名,确定网页页面在移动终端上对应的Cookie条目;
步骤370,网页浏览器向Cookie条目中写入数据。
步骤380,第二应用向网页浏览器发送访问上述网页页面的访问请求。
该访问请求包括上述网页页面的地址信息。
步骤390,网页浏览器对网页页面的地址信息进行解析,获取网页页面的域名。
步骤3100,网页浏览器根据网页页面的域名,在移动终端上查找网页页面对应的Cookie条目,并从Cookie条目中读取数据。
步骤3110,网页浏览器并向第二应用发送数据。
需要说明的是,在步骤380之后,在步骤390之前,网页浏览器可以向网页服务器转发上述访问请求,以使网页服务器在网页浏览器上渲染生成上述网页页面。
本申请提供的跨应用共享数据的方法,当第一应用通过其所在移动终端的网页浏览器访问网页页面并向网页页面中写入数据时,网页服务器指示网页浏览器将上述数据保存到移动终端上与该网页页面对应的共享存储空间中,当该移动终端上的第二应用通过上述网页浏览器访问上述网页页面时,网页浏览器可以从共享存储空间中读取上述数据并发送给第二应用,由此方便地实现了同一移动终端上任意两个应用之间数据的共享。
与上述跨应用共享数据的方法对应地,本申请实施例还提供的一种网页浏览器,如图4所示,该网页浏览器包括:
接收单元401,用于接收与网页浏览器在同一移动终端上的第一应用发送的写数据请求,该写数据请求包括待写入数据的网页页面的地址信息和待写入的数据。
其中,第一应用可以通过实例化网页控制器SFSafariViewController类来向网页浏览器发送写数据请求。
发送单元402,用于向网页服务器发送接收单元401接收的写数据请求。
接收单元401,还用于接收网页服务器在根据写数据请求在网页浏览器上生成地址信息对应的网页页面,并向网页页面写入数据后发送的指示消息。
存储单元403,用于根据接收单元401接收的指示消息,将数据存储到网页页面在移动终端上对应的共享存储空间中。
接收单元401,还用于接收移动终端上的第二应用发送的访问网页页面的访问请求。
读取单元404,用于根据接收单元401接收的访问请求,从共享存储空间中读取数据;
发送单元402,还用于向第二应用发送读取单元404读取的数据。
可选地,该网页浏览器还可以包括:
解析单元405,用于对网页页面的地址信息进行解析,获得网页页面的域名;
确定单元406,用于根据解析单元405获得的域名,确定网页页面在移动终端上对应的共享存储空间。
确定单元405具体用于:
根据域名,确定网页页面在移动终端上对应的Cookie条目;
存储单元403具体用于:
将数据存储到Cookie条目中。
可选地,访问请求包括地址信息;
读取单元404具体用于:
对地址信息进行解析,获得网页页面的域名;
根据网页页面的域名,在移动终端上查找网页页面对应的Cookie条目;
从Cookie条目中读取数据。
本申请实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本申请提供的装置的具体工作过程,在此不复赘述。
本申请提供的网页浏览器,接收单元401接收与网页浏览器在同一移动终端上的第一应用发送的写数据请求,该写数据请求包括待写入数据的网页页面的地址信息和待写入的数据;发送单元402向网页服务器发送写数据请求;接收单元401接收网页服务器在根据写数据请求在网页浏览器上生成地址信息对应的网页页面,并向网页页面写入数据后发送的指示消息;存储单元403根据指示消息,将数据存储到网页页面在移动终端上对应的共享存储空间中;接收单元401接收移动终端上的第二应用发送的访问网页页面的访问请求;读取单元404根据访问请求,从共享存储空间中读取数据;发送单元402向第二应用发送数据。由此方便地实现了同一移动终端上任意两个应用之间数据的共享。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。