用于电子设备的已注册的应用程序的制作方法

文档序号:32438550发布日期:2022-12-06 20:23阅读:41来源:国知局
用于电子设备的已注册的应用程序的制作方法
用于电子设备的已注册的应用程序
1.相关申请的交叉引用
2.本专利申请要求2020年6月19日提交的名称为“registered applications for electronic devices”的美国临时专利申请号63/041,760的优先权的权益,并且还要求2020年4月10日提交的名称为“application clips for electronic devices”的美国临时专利申请63/008,577的优先权的权益,这些专利申请中的每一者的公开内容据此全文并入本文。
技术领域
3.本说明书包括整体涉及用于电子设备的应用程序,并且更具体地涉及已注册的应用程序诸如用于电子设备的应用程序小程序(clip)。


背景技术:

4.用户通常在他们的电子设备,特别是移动电子设备上安装用于执行各种功能的应用程序。在安装应用程序之前,用户通常访问远程服务器处的应用程序存储库、从该存储库中选择应用程序、向该服务器提供认证信息和/或付款以及在接收到对基于该认证的代码的访问之后,下载该应用程序的代码进行安装。通常,如果用户试图访问未安装在他们的设备上的应用程序,则设备将用户重新路由到与该应用程序的所有者相关联的网页,或者提供该用户使用以上步骤来认证、下载和安装该应用程序的机会。
附图说明
5.本主题技术的一些特征在所附权利要求书中被示出。然而,出于解释的目的,在以下附图中阐述了本主题技术的若干实施方案。
6.图1示出了根据一个或多个具体实施的示例性网络架构。
7.图2示出了根据一个或多个具体实施的可提供应用程序的简化功能版本的示例性环境。
8.图3示出了根据一个或多个具体实施的电子设备获得应用程序的简化功能版本的示例。
9.图4示出了根据一个或多个具体实施的用于提供应用程序的简化功能版本的示例性过程的流程图。
10.图5示出了根据一个或多个具体实施的用于将应用程序的简化功能版本替换为应用程序的完整版本的示例性过程的流程图。
11.图6示出了根据一个或多个具体实施的用于提供应用程序的临时版本的示例性过程的流程图。
12.图7示出了根据一个或多个具体实施的用于获得已注册的应用程序的示例性过程的流程图。
13.图8示出了可用来实现本主题技术的一个或多个具体实施的电子系统。
具体实施方式
14.下面示出的具体实施方式旨在作为本主题技术的各种配置的描述并且不旨在表示本主题技术可被实践的唯一配置。附图被并入本文并且构成具体实施方式的一部分。具体实施方式包括具体的细节旨在提供对本主题技术的透彻理解。然而,本主题技术不限于本文阐述的具体细节,而是可采用一个或多个其他具体实施来实践。在一个或多个具体实施中,以框图形式示出了结构和部件,以便避免使本主题技术的概念模糊。
15.本主题技术提供了在设备上尚未安装应用程序的情况下对该应用程序的功能中的一部分功能的立即访问。当存在对应用程序的功能的该部分的当前需要时,可提供这种立即访问。例如,可基于设备的位置、基于所扫描的快速响应(qr)码或者基于与应用程序相关联的所选择的链接来确定该当前需要。
16.例如,当用户尚未在他们的智能电话、智能手表、平板电脑或其他电子设备上安装针对商店的应用程序的情况下走进该商店时,这可能是有帮助的。基于用户在该商店处的位置、基于用户扫描由该商店提供的qr码或者响应于用户选择与该商店相关联的链接,应用程序的小程序(例如,该商店的应用的购买部分或该商店的应用的订购部分)可开始下载,同时向用户提供用于授权安装应用程序小程序的选项。以这种方式,当用户授权安装和/或启动时,应用程序小程序会立即安装、启动并准备使用。可以执行用于获得应用程序的小程序(在本文中有时被称为应用程序的简化功能版本、应用程序的临时版本、应用程序的一部分、应用程序小程序或应用小程序)的该过程,而无需用户的认证信息,并且无需下载针对完整应用程序的代码,因为这两种情况可能不期望地耗时和/或耗资源。
17.图1示出了根据一个或多个具体实施的包括可实现本主题系统的各种电子设备的示例性系统架构100。然而,并非所有所描绘的部件均可在所有具体实施中使用,并且一个或多个具体实施可包括与图中所示的那些相比附加的或不同的部件。可进行这些部件的布置和类型的变化,而不脱离本文所列出的权利要求的实质或范围。可提供附加的部件、不同的部件或更少的部件。
18.网络架构100包括电子设备110、电子设备115和服务器120。出于解释的目的,系统架构100在图1中被示出为包括电子设备110、电子设备115和服务器120;然而,系统架构100可包括任何数量的电子设备、外围设备和任何数量的服务器或包括多个服务器的数据中心。
19.网络106可将例如电子设备110和/或电子设备115与每个其他设备和/或服务器120通信地(直接或间接)耦接。在一个或多个具体实施中,网络106可以是可包括互联网或可通信地耦接到互联网的设备的互连网络。
20.电子设备110可包括触摸屏并且可以是例如智能电话、便携式计算设备,诸如膝上型计算机、外围设备(例如数字相机、耳机)、平板设备、可穿戴设备(诸如手表、腕带等)、包括例如触摸屏的任何其他适当设备或者任何具有触控板的电子设备。在一个或多个具体实施中,电子设备110可不包括触摸屏,但可支持触摸屏类似的手势。在一个或多个具体实施中,电子设备110可包括触控板。在图1中,通过举例的方式,电子设备110被描绘为具有触摸屏的移动智能电话设备。
21.电子设备110可以是例如便携式计算设备,诸如膝上型计算机、智能电话、外围设备(例如,数字相机、耳机)、平板设备、可穿戴设备(诸如手表、腕带等);或者包括例如一个
或多个无线接口的任何其他适当设备,诸如wlan无线电设备、蜂窝无线电设备、蓝牙无线电设备、zigbee无线电设备、近场通信(nfc)无线电设备和/或其他无线电设备。电子设备110可以是和/或可包括下文相对于图8所述的电子系统的全部或部分。在一个或多个具体实施中,电子设备110可以是另一个设备,诸如互联网协议(ip)相机、平板电脑或外围设备诸如电子触笔等。
22.电子设备115可以是例如台式计算机、便携式计算设备诸如膝上型计算机、智能电话、外围设备(例如,数字相机、耳机)、平板设备、可穿戴设备诸如手表、腕带等。在图1中,通过举例的方式,电子设备115被描绘为台式计算机。电子设备115可以是和/或可包括下文相对于图8所述的电子系统的全部或部分。
23.服务器120可形成计算机网络或服务器组130的全部或部分,诸如在云计算或数据中心实施中。例如,服务器120存储数据和软件,并且包括用于托管应用程序存储库、执行统一资源定位符(url)与应用标识符之间的隐私保护映射,以及/或者验证和/或认证服务器的用户(例如,用于访问应用程序存储库中的应用程序)的特定硬件(例如,处理器、图形处理器和其他专用或自定义处理器)。在一个具体实施中,服务器120可用作云服务器。
24.图2示出了根据一个或多个具体实施的其中可实现本主题系统的电子设备的示例性环境200。然而,并非所有所描绘的部件均可在所有具体实施中使用,并且一个或多个具体实施可包括与图中所示的那些相比附加的或不同的部件。可进行这些部件的布置和类型的变化,而不脱离本文所列出的权利要求的实质或范围。可提供附加的部件、不同的部件或更少的部件。
25.环境200包括电子设备110、商店202和无线接入点204(例如,wi-fi接入点、蜂窝接入点、nfc接入点等)。出于解释的目的,环境200在图2中被示出为包括单个电子设备110、单个商店202和一个无线接入点204;然而,环境200可包括任何数量的电子设备、任何数量的商店和任何数量的无线接入点。
26.环境200允许电子设备110识别未安装在电子设备110上的应用程序的至少一个版本,应用程序的该版本可用于用电子设备110立即使用(例如,无需认证电子设备110的用户的用户账户)。
27.在一个或多个具体实施中,可使用应用程序的多个版本。特定应用程序的每个版本和应用程序本身(例如,完整应用程序)可具有与相同应用程序的其他版本一致的相同应用程序标识符或应用程序标识符的相同部分。应用程序的每个版本可以是应用程序的简化功能版本,该简化功能版本具有少于应用程序的完整版本的功能。在一些示例中,应用程序可以是与商店202相关联的应用程序(例如,与特定线上和/或实体零售商相关联的应用程序)。
28.当电子设备110的用户访问远程服务器处的应用程序存储库、从应用程序存储库中的各种应用程序中选择应用程序、将认证信息提供给远程服务器120r以验证对远程服务器120r处的用户账户的访问、在认证信息被远程服务器验证之后下载并安装用于应用程序的代码以及然后安装并启动应用程序时,可诸如从远程服务器120r获得应用程序的完整版本。
29.应用程序的完整版本可提供各种功能,诸如支付功能、在线订购功能、商店定位器功能、账户访问功能、应用程序设置功能、搜索功能、帮助台功能、订单历史功能、新闻推送
功能、图像捕获功能、消息传送功能、映射功能等。与应用程序的简化功能版本相比,应用程序的完整版本可能够访问和/或请求授权访问电子设备110处的更多部件和/或更多数据。例如,应用程序的完整版本可能够请求访问与电子设备相关联的照片库,其中应用程序的简化功能版本被阻止请求访问照片库。在另一示例中,应用程序的简化功能版本可能够访问可由完整应用程序访问的部件(例如,传感器、相机等)的子集。
30.然而,在各种操作场景中,用户可能不需要完整应用程序的所有功能,并且/或者用户可能无法或不期望花费时间和/或精力来定位、认证、下载、安装和启动完整应用程序。例如,在图2的网络环境中,电子设备110的用户可在没有在电子设备110上安装与商店相关联的完整应用程序的情况下到达并且/或者走进商店202。然而,用户可受益于在商店202时使用针对该商店的应用程序的功能的一个或多个部分的能力。例如,用户可期望在商店202处使用应用程序的支付功能来支付商品或服务。又如,用户可期望通过利用应用程序的在线订购功能来跳过商店处的队伍。在一个或多个具体实施中,可使用应用程序的多个简化功能版本(例如,支付功能版本、订购功能版本、堂食订购功能、外带订购功能、预留功能、映射功能等)。
31.在这些场景中,向用户提供获得应用程序的简化功能版本中的一个或多个版本(在本文中有时被称为应用程序的小程序、应用程序小程序、具有少于完整应用程序的功能的完整应用程序的版本、具有少于完整应用程序的功能的应用程序的临时版本或应用程序的一部分)的能力,而无需花费定位、认证、下载和安装完整应用程序的时间和精力,可能是有帮助的。例如,应用程序的版本可临时安装在电子设备110上(例如,当用户到达或进入商店202时),并且然后在一段时间不使用之后(例如,在用户离开商店202之后)、当用户关闭应用程序的版本时以及/或者当用户获得应用程序的完整版本时删除。应用程序的版本诸如应用程序的简化功能版本(例如,应用小程序)可包括不同于(或不包括在)应用程序的完整版本的功能。
32.环境200允许电子设备110获得网络标识符或网络定位符,诸如用于应用程序(例如,与商店202相关联的完整应用程序)的统一资源定位符(url)或统一资源标识符(uri),并且使用统一资源定位符获得包括少于应用程序的完整版本的功能的应用程序的临时版本。
33.标识应用程序(例如,与商店202相关联的完整应用程序,或另一已注册的应用程序诸如应用程序小程序或另一体验)的url可在一个或多个具体实施中具有形式https://codes.server.com/experienceid?{arguments},其中“codes.server.com”标识了已注册的应用程序向其注册的远程服务器,“experienceid”是已注册的应用程序的标识符(例如,捆绑标识符),并且“{arguments}”包括要用于安装已注册的应用程序和/或在启动时要被传递到已注册的应用程序的一个或多个变量和/或参数。变量之前的url的部分(例如,https://codes.server.com/experienceid或codes.server.com/experienceid)可被称为url的前缀。
34.环境200允许电子设备110接收与应用程序相关联的统一资源定位符;确定应用程序未安装在电子设备110上;基于统一资源定位符的至少第一部分确定应用程序的至少一个版本在没有用户认证的情况下可用;向一个或多个远程服务器诸如远程服务器120r提供与统一资源定位符相关联的信息(例如,应用程序的标识符或应用程序的版本的标识符);
响应于该信息,从该一个或多个远程服务器接收用于应用程序的至少该版本的代码;提供对来自用户的安装和启动应用程序的至少该版本的用户授权的请求;接收用户授权;以及响应于接收到用户授权,安装和启动应用程序的至少该版本。
35.电子设备110可基于统一资源定位符的至少第一部分,部分地通过在电子设备处确定url是否与任何应用程序的标识符相关联来确定应用程序的至少该版本在没有用户认证的情况下可用。确定url是否与任何应用程序的标识符相关联可包括将url的散列(例如,整个url或url的一部分)提供给电子设备处的过滤器,诸如布隆过滤器(bloom filter),并且被配置为如果url可映射到应用程序标识符(例如,在存储url与应用程序标识符之间已注册的映射的服务器处),则返回肯定结果,或者如果url未映射到任何应用程序标识符,则返回否定结果。如果布隆过滤器指示url未映射到任何应用程序标识符,则电子设备可使用网络浏览器直接导航到url。
36.在一个或多个具体实施中,如果布隆过滤器基于完整url的散列指示url未映射到任何应用标识符(例如,在布隆过滤器不包括用于url中的变量的信息,并且因此指示url未映射到任何应用程序标识符的情况下),则电子设备110可将url的一个或多个渐进子集或截断提供给布隆过滤器。例如,电子设备110可渐进地从url中移除路径或查询部件后缀,并且根据布隆过滤器检查结果。例如,在一个或多个具体实施中,在使用网络浏览器直接导航到url之前,通过渐进地移除url的路径或查询部件后缀获得的url的一个或多个一个或多个前缀的散列可被提供给布隆过滤器以确定url是否可能对应于任何应用程序标识符。作为示例,电子设备110可移除(例如,忽视)url的末尾处的预先确定数量的字符,或者移除一个或多个特殊字符诸如问号(?)、正斜杠、主题标签等之后的字符。
37.基于统一资源定位符的至少第一部分确定应用程序的至少该版本在没有用户认证的情况下可用可包括(例如,如果电子设备处的本地布隆过滤器指示url可映射到应用程序标识符)向远程服务器诸如服务器120提供url的至少第一部分(例如,url的前缀、url的前缀的散列、url的散列的前缀或url的散列),并且从远程服务器接收应用程序的一个或多个标识符和/或与url的至少第一部分相关联的应用程序的版本的标识符。
38.在一个或多个具体实施中,确定应用程序的至少该版本可用可在隐私保护操作中完成,其中设备将url的散列、整个url的散列的一部分(例如,url的完整散列的前缀)或url的一部分的散列发送到服务器120。服务器120查找包括对应于该散列的应用标识符和/或应用程序小程序标识符的信息的集合或“桶”(例如,散列算法可被设计为具有散列到相同值的多个不同的url或其部分),并且然后发送回包括应用程序的可用版本的标识符和/或应用程序的标识符(例如,以及与桶中的那些标识符相关联的url或其部分)的信息的桶。设备可然后在本地确定与url相关联的应用程序和/或应用程序的一个或多个版本是否被包括和/或标识在桶中。如果与url相关联的应用程序的一个或多个版本被包括和/或标识在桶中,则电子设备下载、安装和/或启动应用程序的该版本。
39.例如,在一个或多个具体实施中,应用程序的版本的代码可(例如,与用于桶中的一个或多个其他应用程序或应用程序的版本的代码一起)被包括在数据桶中。在一个或多个其他具体实施中,应用程序的版本的标识符可从桶中获得,并且用于(例如,从提供该桶的相同服务器或从单独的服务器)获得用于应用程序的版本的相关联代码。例如,在一个或多个具体实施中,数据桶可以是各种应用程序的各种版本的元数据桶,该元数据是从第一
服务器(例如,用于已注册的应用程序的注册服务器)获得的。用于每个应用程序的每个版本的元数据可将用于在设备处显示的信息(例如,名称和/或图像)包括在对安装和启动应用程序的版本的授权的请求中,并且可包括标识符。可使用桶中对应于url的标识符从第二服务器(例如,与注册服务器分开的应用程序服务器)获得用于应用程序的所需版本的代码。以这种方式,设备可识别可用的应用程序的版本,同时避免例如向服务器透露设备的位置或用户的浏览或其他活动(例如,至少直到用户授权安装和启动特定应用程序或应用程序的版本为止)。
40.在一个或多个具体实施中,用于应用程序的版本的代码可通过以下方式获得:首先使用从注册服务器接收到的桶中获得的标识符从应用程序服务器获得用于应用程序的版本的应用程序元数据;使用获得的应用程序元数据提供启动用户界面;在设备处显示启动用户界面时,使用该标识符从应用程序服务器获得用于应用程序的版本的代码;以及当获得该代码时安装和启动应用程序的版本。在一个或多个具体实施中(例如,如果先前尚未使用桶中的数据获得用户授权),可使用来自从注册服务器接收到的桶中的多个标识符从应用服务器获得用于多个版本和/或多个应用程序的应用程序元数据。设备可使用标识符来选择用于提供适当的启动用户界面的适当的应用程序元数据,并且可包括对在启动用户界面中安装和启动应用程序的版本的授权的请求。在接收到安装和启动应用程序的版本的授权后,可下载、安装和启动用于应用程序的版本的代码。
41.在一个或多个具体实施中,如果第一桶不包括与url相关联的应用程序或应用程序的一个或多个版本,则电子设备110可向远程服务器(例如,注册服务器)提供url的一个或多个前缀的散列,该散列是通过从url渐进地移除路径或查询组件后缀而获得的。例如,在一个或多个具体实施中,在使用网络浏览器直接导航到url之前,可将url的一个或多个前缀的散列提供给远程服务器以获得信息的附加的桶,该信息包括对应于该散列的应用程序标识符和/或应用程序小程序标识符。
42.电子设备110可基于安装在设备上的应用程序不与url相关联的本地确定(例如,在确定应用程序的任何版本是否可用之前使用针对所安装的应用程序的存储在电子设备处的url信息)或使用由服务器提供的(例如,在桶中的)应用程序标识符来确定与url相关联的应用程序未安装在电子设备上。
43.在一个或多个具体实施中,应用程序小程序和/或相关联的应用程序可以是向远程服务器(例如,与服务器120中的一个或多个服务器对应的注册服务器)注册的已注册的应用程序。尽管应用程序和应用程序小程序在本文中被描述为已注册的应用程序的示例,但还预期了可由电子设备使用在远程服务器处注册的已注册的代码来提供并且使用本文所述的操作来获得的其他体验。
44.已注册的应用程序可先前已向服务器注册(例如,由应用程序的开发者向注册服务器注册)。注册应用程序可包括提供应用程序的标题、副标题和图像(例如,其可作为元数据从注册服务器获得在信息桶中,并且在对安装和启动应用程序的授权的请求的情况下通过它们的设备向用户显示)。注册应用程序还可包括提供用于应用程序的url,以及/或者提供、生成和/或将一个或多个编码的标识符(例如,qr码、nfc代码或其他基于图像的代码)链接到url。注册应用程序还可包括将用于应用程序的机器(例如,二进制或可执行的)代码提供给服务器或另一服务器(例如,与服务器130的一个或多个其他服务器对应的应用程序服
务器)。
45.提供如本文所述(例如,使用隐私保存操作而不需要用户认证)获得的已注册的应用程序可向电子设备的用户提供对新设备功能(例如,先前未安装在设备上的功能,以向用户提供新体验诸如应用程序小程序)的快速访问,该新设备功能是针对用户(例如,针对用户的当前环境、动作或位置)定制的并且是高质量、安全的应用程序。
46.在一个或多个具体实施中,可通过获得用于已注册的应用程序的代码(例如,二进制代码),同时请求来自用户的安装和启动已注册的应用程序的授权来减少用于提供用户访问已注册的应用程序诸如应用程序小程序的功能的时间。例如,服务器诸如服务器120可在第一组预取的元数据(例如,包括要包括在对安装和启动应用程序小程序或其他体验的用户授权的请求中的已注册的标题、副标题和图像的元数据,如下文结合图3进一步详细描述的)中将用于已注册的应用程序的二进制代码(例如,用于与已注册的应用程序相关联的应用程序小程序或其他体验的二进制代码)提供给用户设备。以这种方式,可在用户正在查看授权请求时下载二进制代码。当用户接受授权请求时,设备然后可从服务器(例如,相同服务器或另一服务器)获得/接收一个或多个密钥,以用于解包并安装已经下载的二进制代码。
47.在各种场景中,当用户点击链接(例如,网页上、电子邮件或文本消息中的链接,或在电子设备110上运行的另一应用程序诸如社交媒体应用程序、语音激活助理应用程序或任何其他应用程序内的链接)时、当用户(例如,使用电子设备的相机或nfc部件)扫描与商店202和/或特定位置相关联的代码时,以及/或者基于电子设备110的位置(例如,当电子设备110、商店202处的本地服务器120l和/或远程服务器120r诸如使用地理定位操作和/或一个或多个无线信标来确定电子设备110在商店202处或附近时)获得用于应用程序的统一资源定位符(url)。
48.在一个示例中,用户可使用电子设备110上的浏览器点击用于与商店202相关联的网页的链接(或点击该网页或另一网页内的链接),该链接(例如,基于先前已经诸如向服务器120注册的应用程序标识符与url之间的映射)映射到与商店202相关联的应用程序。在其他示例中,用户可选择或以其他方式选择打开从在电子设备上运行的另一应用程序(例如,地理地图应用程序)提供的或者在消息或电子邮件中提供的链接。
49.在另一示例中,用户可使用电子设备110的相机或其他传感器来扫描代码,诸如与商店相关联的条形码或qr码,并且基于所扫描的代码获得可由电子设备获得的统一资源定位符。例如,电子设备110可直接从qr码导出url,或者可与本地服务器120l和/或远程服务器120r通信以基于该代码获得url。
50.在图2的示例中,环境200包括在商店202的销售点206处的qr码208和商店202的入口212处的qr码210。qr码208和qr码210可以是相同的qr码,或者可以是不同的qr码。例如,在一个具体实施中,qr码208可以是与销售点206相关联的qr码,其使得电子设备110获得用于商店202的应用程序的版本,该版本包括仅支付功能。qr码210可以是与到商店202的入口212相关联的qr码,其使得电子设备110获得用于商店202的应用程序的版本,该版本包括仅在线订购功能或包括在线订购功能和支付功能。
51.在另一示例中,电子设备110可与一个或多个接入点诸如无线接入点204通信,以确定电子设备110在商店202的位置处或附近。电子设备110可与和商店202相关联的本地服
务器120l和/或远程服务器120r通信,以基于电子设备110在该商店处或附近的位置来确定获得用于与商店202相关联的应用程序的网络标识符诸如url。
52.在一个或多个具体实施中,环境200允许电子设备110基于一种或多种定位技术来确定其位置。此类定位技术的示例包括但不限于全球导航卫星系统(gnss)、无线接入点技术(例如,基于从已知的位置处的无线接入点接收到的信号的到达时间、到达角度和/或信号强度)、蜂窝电话信号定位、蓝牙信号定位和/或图像识别定位。此外,电子设备110可实现惯性导航系统(ins),其使用一个或多个设备传感器(例如,运动传感器诸如加速度计、陀螺仪)来计算设备状态(例如,位置、取向和速度)以用于补充由上述定位技术提供的位置数据。
53.环境200可基于确定电子设备110的位置在商店202内或在商店202的阈值距离内来促进提供用于电子设备110的应用程序的一个或多个临时版本和/或简化功能版本。商店202的示例包括但不限于零售商店、堂食餐厅、免下车餐厅、陈列室、自助服务机、加油站、博物馆、游乐园、公共市场、旅游地标、室内购物中心、室外购物中心、体育场馆、音乐场馆或任何可识别的位置,诸如可用地理围栏围起来的任何位置。
54.在图2的示例中,电子设备110位于商店202的入口212之外。然而,用户可例如通过位于商店202的阈值距离内的车辆(例如,汽车、摩托车、自行车)行进。例如,如果商店202是免下车餐厅,则用户可能正在通过汽车在免下车通道中行进,该免下车通道相对于实体餐厅处于预先确定的位置和距离。
55.除了有助于电子设备110的位置解决方案之外,无线接入点204还可用于将电子设备110连接到网络,诸如局域网、专用网络(例如,与本地服务器120l相关联的内联网)和/或公共网络(例如,互联网)。例如,在一个或多个具体实施中,无线接入点204可将电子设备110连接到与商店202和/或本地服务器120l相关联的内联网,用于获得应用程序的url或应用程序的版本。另选地或除此之外,无线接入点中的一个或多个无线接入点诸如无线接入点204可(例如,经由互联网)将电子设备110连接到远程服务器120r。
56.本文结合与商店和/或零售商相关联的应用程序描述了各种示例。然而,应当理解,本公开适用于具有在电子设备110上立即可用(例如,而无需认证)的版本的任何应用程序,诸如应用程序的临时版本和/或应用程序的简化功能版本。
57.图3示出了一个示例,其中(例如,为了提供对未安装在电子设备110上的应用程序的版本的立即访问)用于应用程序的小程序(例如,应用程序的简化功能版本或临时版本)的代码诸如可执行的代码或二进制代码(例如,加密的二进制代码)可在电子设备110提示用户对安装和启动应用程序小程序(例如,“应用小程序1”)的授权时(例如,从服务器120)下载到电子设备110。
58.在图3的示例中,电子设备110可能基于到应用程序的链接(或与应用程序相关联的内容诸如与媒体播放器应用程序相关联的视频内容或与餐厅应用程序或送货服务应用程序相关联的菜单内容)、所扫描的代码,以及/或者基于该电子设备的位置,已经获得用于应用程序(例如,与商店诸如商店202相关联的应用程序)的url(例如,与服务器120相关联的url,该服务器可以是本地服务器120l或远程服务器120r)。在图3的示例中,在电子设备110提供对安装和启动应用程序小程序的授权的请求300时,电子设备110已经开始下载代码(例如,二进制代码或其他可执行的代码诸如“应用小程序1二进制代码”)。
59.在图3的示例中,请求300包括说明“您是否愿意安装和启动应用小程序1”的文本。然而,这仅是说明性的并且其他文本和/或图形信息可用于该请求。例如,请求300还可包括在用于应用小程序1的注册事件中提供给服务器120(例如,注册服务器)的用于应用小程序1的信息,诸如用于应用小程序1的标题、副标题和/或图像。又如,请求300可包括对位置确认的请求(例如,访问设备的位置信息的请求)。对位置确认的请求可包括例如选择退出用于电子设备110的位置共享的选项,这可在选择了该选项的情况下阻止访问应用小程序1。
60.在图3的示例中,为用户提供了用于授权安装和启动应用程序小程序的可选选项302(例如,“是”按钮)和用于拒绝安装和启动应用程序小程序的可选选项304(例如,“否”按钮)。在图3的示例中,可选选项302和可选选项304是设置在电子设备110的触摸屏上的虚拟按钮,然而,这仅是说明性的,并且用户可以各种其他方式(例如,通过语音输入到电子设备110和/或使用电子设备110的小键盘、物理按钮或其他输入部件)提供或拒绝授权。在一个或多个具体实施中,请求300(例如,和/或在安装应用程序小程序之后提供的另一请求)可包括(例如,在安装应用程序小程序之后或在应用程序小程序的最后一次启动之后的一段时间内,诸如几个小时或几天)对用电子设备110提供推送通知的权限的请求。
61.在一个或多个具体实施中,推送通知可以是基于位置的通知。在一个或多个具体实施中,请求300可包括允许访问电子设备的位置(例如,一次性访问)以及/或者确认电子设备的位置(例如,确认由电子设备诸如使用地理定位和/或信标操作确定的位置)的请求。
62.例如,电子设备110的用户可在特定位置处的标签(例如,nfc或rfid标签,诸如商店202的无线接入点204的具体实施)上或附近轻击电子设备110或者扫描与特定位置相关联的qr码或其他编码的标识符。响应于轻击或扫描,电子设备110可(例如,使用经由轻击或扫描获得的url)识别应用程序小程序或其他体验,并且提供(例如,通过提供允许用户选择退出位置共享的复选框)确认电子设备110的位置的请求(例如,作为对授权的请求300的一部分和/或作为在对授权的该请求之前的初始请求)。对授权和/或位置共享的请求可包括在一个或多个具体实施中描述应用小程序的教学信息。
63.一旦由电子设备接收到授权(例如,包括提供位置确认的授权),就可安装和启动应用小程序。在启动之前或之后,应用小程序可执行位置检查(例如,如果已经批准位置确认)。执行位置检查可包括(例如,从服务器120)获得在其内允许安装和/或允许运行应用小程序的区域(例如,所轻击的标签或qr码的已知坐标和围绕这些坐标的半径、与已知蓝牙信标的接近度或区域的另一地理描述)。已知坐标和围绕这些已知坐标的地理围栏可在显示请求300时获得的信息桶中获得或者可在单独操作中获得。在一个或多个具体实施中,所提供的区域可包括最大半径(例如,两千米)和/或最小半径(例如,10米)。因为完整应用程序(例如,已注册的应用程序)可具有多个相关联的(例如,与用于应用程序的不同位置和/或不同功能相关联)应用程序小程序,所以可针对用于相同应用程序的不同标签或qr码提供不同的区域(例如,不同的大小诸如不同的半径)。
64.在一个或多个具体实施中,响应于从服务器接收到区域(例如,坐标和半径),应用小程序可获得设备的位置,将设备的位置与接收区域进行比较,并且向服务器返回二进制响应,该二进制响应指示电子设备110是否在由服务器定义的区域内(例如,设备是否在对应于所轻击的标签或所扫描的代码的期望位置中)。响应于接收到指示电子设备在区域内的响应,服务器可提供用于访问应用程序小程序的密钥或其他信息和/或用于运行应用程
序小程序的服务器数据。在一个或多个具体实施中,可以对应用小程序应用速率限制。例如,应用程序小程序可被限制为每次轻击或扫描特定位置相关标签或代码时仅提供一个位置确认响应。
65.还应当理解,可以在设备上执行位置确认(例如,出于额外的隐私目的,无需向服务器提供二进制或其他基于位置的响应)。例如,使用url的一部分的散列从服务器获得的信息桶可包括所轻击的nfc代码或所扫描的qr码的位置坐标以及相关联的阈值接近度(例如,地理围栏)信息。然后,设备可以在请求密钥或以其他方式与服务器通信之前确定其当前位置是否在阈值接近度位置坐标内。
66.当电子设备110接收到用于安装和启动应用小程序的授权时(例如,经由选择可选选项302),在授权请求期间已下载的代码可由电子设备110安装和/或启动。安装和启动所下载的二进制代码可包括响应于接收到授权而请求用于所下载的二进制代码的设备特定的密钥,该密钥独立于用户或用户的账户,以及使用该密钥安装所下载的二进制代码。在一个或多个具体实施中,可以在接收到授权之前下载密钥。
67.在一种示例性用例中,商店202的客户可以将没有安装与商店202相关联的应用程序的电子设备110带到销售点206。在一个或多个具体实施中,电子设备110可以检测(例如,经由与gps系统的通信和/或经由与无线接入点204的通信)电子设备在pos处或接近pos。电子设备110还可以或另选地用于扫描代码诸如与销售点206相关联的qr码208。响应于在销售点206处或附近检测到电子设备110,响应于qr码208的扫描,和/或响应于与商店202相关联的链接的选择,电子设备110可以开始下载用于商店202的应用程序的临时和/或简化功能版本或小程序的二进制代码,其例如仅包括应用程序的支付功能。在下载期间,电子设备110可以向用户提供请求300和可选选项302和304(例如,使用电子设备110的触敏显示器)。响应于对可选选项302的选择,电子设备可以启动具有支付功能的应用程序小程序,并显示应用程序小程序的用户界面(ui)以允许用户利用应用程序小程序来支付商品或服务。
68.稍后,诸如在用户带着电子设备110离开商店202后,在一段时间内不使用所安装的应用程序小程序后,当用户关闭应用程序小程序时,和/或当用户下载并安装与应用程序小程序和/或商店202相关联的完整应用程序时,用于应用程序小程序的代码可以从电子设备110中删除(例如,无需进一步的用户交互,诸如删除代码的明确请求)。在其中结合完整应用程序的安装删除用于应用程序小程序的代码(例如,二进制代码)的场景中,可以维护由应用程序小程序生成并且存储在电子设备上的应用程序数据以供完整应用程序使用。例如,由应用程序小程序存储的支付历史、支付卡信息、用户偏好等可以存储在电子设备110上的位置处,该位置稍后可以在应用程序小程序已从电子设备删除之后由完整应用程序访问。
69.还应当了解,为了进一步增强对应用程序的一个或多个应用程序小程序的立即访问,用于一个或多个应用程序小程序的代码诸如二进制代码和/或可执行代码可以在预期用户对应用程序小程序的潜在期望的情况下被预加载到电子设备上。可以基于对用户偏好的机器学习和/或众包信息来执行用于一个或多个应用程序小程序的代码的这种预加载。例如,当电子设备接近场馆和/或电子设备位于场馆内或附近时,服务器(诸如服务器120)可以确定许多电子设备的用户正在安装和启动具有特定场馆(例如,博物馆、音乐会场馆、体育赛事场馆、主题公园等)的地图功能的应用程序小程序。服务器可以确定新用户的电子
设备110正在接近场馆或位于场馆内或附近,并响应地将用于具有地图功能的同一应用程序的代码提供给新用户的电子设备110,甚至在用户到达场馆或收到授权安装和启动应用程序小程序的请求(例如,请求300)之前。在该示例中,授权请求可以由电子设备110在已下载代码时提供,也可以在后来用户在场馆扫描代码或输入指示需要地图功能的信息(例如,输入与场馆或场馆内的位置相关联的搜索请求,诸如使用安装在设备上但不是空间或地理地图绘制应用程序且不具有空间或地理地图绘制能力的搜索应用程序)。
70.尽管图3描绘了在安装和启动应用程序小程序之前请求用户授权的示例,但是在其他情况下,可以在没有特定授权请求的情况下(例如,并且没有认证)安装和启动应用程序小程序。例如,在一个或多个具体实施中,当电子设备110读取qr码(诸如qr码208或qr码210)时(例如,而不是当用户提供授权,诸如通过点击“安装”或“打开”应用程序小程序),应用程序小程序可以被下载、安装和启动。例如,当被电子设备110读取时,qr码可以使电子设备110作为单个动作执行深度链接和安装(例如,和启动)操作。例如,扫描qr码可以使应用程序的简化功能版本自动下载、安装和启动具有与所扫描的qr码对应的内容的用户界面。在一个或多个具体实施中,该用户界面可以被显示,以便看起来浮置在电子设备的显示屏上先前显示的内容上方。
71.图4示出了根据一个或多个具体实施的用于在电子设备上提供应用程序的版本的示例性过程的流程图。出于解释的目的,本文主要参考图1的电子设备110和服务器120来描述过程400。然而,过程400不限于图1的电子设备110和服务器120,并且过程400的一个或多个框(或操作)可由服务器120或电子设备110的一个或多个其他部件和/或由其他合适设备诸如电子设备115来执行。进一步出于解释的目的,过程400的框在本文中被描述为顺序地或线性地发生。然而,过程400的多个框可并行发生。此外,过程400的框不必按所示顺序执行,并且/或者过程400的一个或多个框不必执行和/或可由其他操作替代。
72.在框402处,电子设备诸如电子设备110接收与应用程序(例如,完整应用程序或应用程序的完整版本)相关联的统一资源定位符(url)。当安装在电子设备上时,应用程序可以为电子设备提供多个功能。接收统一资源定位符可以包括由电子设备扫描qr码。接收统一资源定位符可以包括接收对链接的选择(例如,由在电子设备上运行的另一应用程序提供的链接)。接收统一资源定位符可以包括基于电子设备的位置接收统一资源定位符(例如,如上文结合图2所述)。
73.在框404处,电子设备确定应用程序未安装在电子设备上。
74.在框406处,电子设备基于统一资源定位符的至少第一部分确定应用程序的至少一个版本在没有用户认证的情况下可用。该应用程序的版本可以是应用程序的简化功能版本,该简化功能版本具有少于应用程序的完整版本的功能。该应用程序的版本可以是应用程序的临时版本,该临时版本具有少于应用程序的完整版本的功能。该应用程序的版本在本文中可以称为应用程序小程序或应用小程序。确定应用程序的版本可用可包括将url或url的散列提供给电子设备处的布隆过滤器和/或向一个或多个远程服务器诸如服务器120(例如,如上文结合图2和图3所述的注册服务器)提供url的散列的一部分或url的一部分的散列。
75.在框408处,电子设备可以向一个或多个远程服务器诸如服务器120提供与统一资源定位符相关联的信息。与统一资源定位符相关联的信息可包括应用程序的至少版本的标
识符(例如,应用程序的标识符和/或应用程序的一个或多个简化功能版本或临时版本的一个或多个标识符)。响应于向该一个或多个远程服务器提供统一资源定位符的散列的部分或统一资源定位符的部分的散列,在隐私保护操作中,可以从该一个或多个远程服务器获得与url相关联的信息。
76.在框410处,电子设备可以从该一个或多个远程服务器(例如,从提供与url相关联的信息的相同服务器或从另一服务器诸如应用程序服务器等)且响应于该信息而接收用于应用程序的至少该版本的代码。用于应用程序的该版本的代码可以小于用于完整应用程序的代码。例如,为了帮助减少下载、安装和启动应用程序的该版本的时间,用于应用程序的该版本的代码可能小于10兆字节、小于20兆字节、小于50兆字节、小于100兆字节,或者小于用于完整应用程序的代码的任何大小。在一个或多个具体实施中,代码包括用于应用程序的版本的二进制代码。在一个或多个具体实施中,代码可以是加密的二进制代码(例如,数字版权管理(drm)加密的二进制代码)。
77.在框412处,电子设备可提供对来自用户的用户授权的请求(例如,如图3所示的请求300),以安装和启动应用程序的至少该版本。在一个或多个具体实施中,在框410处的代码的接收期间提供在框412处对用户授权的请求。
78.在框414处,电子设备可以接收用户授权(例如,经由选择可选选项302以授权安装和启动)。在一个或多个具体实施中,在没有接收到用户认证的情况下接收到用户授权。用户认证可包括向远程服务器诸如服务器120提供用户的标识信息和/或与用户的账户相关联的用户的安全信息(例如,密码)。用户授权可以是独立于与任何特定用户相关联的信息提供的权限。
79.在框416处,响应于接收到用户授权,电子设备可以安装和启动应用程序的至少该版本。在一个或多个具体实施中,安装和启动应用程序的该版本可包括响应于接收到用户授权而从该一个或多个远程服务器请求用于二进制代码的密钥;响应于该请求,接收密钥;以及使用该密钥安装和启动应用程序的至少该版本。在二进制代码是加密的二进制代码(诸如drm加密的二进制代码)的具体实施中,密钥可以是与用户无关的设备特定解密密钥。
80.在一个或多个具体实施中,电子设备110还可以根据应用程序的版本限制数据使用的速率和/或量。例如,电子设备110可以在启动应用程序的至少该版本之后,监视应用程序的至少该版本的数据使用达预先确定的时间量(例如,一分钟、几分钟、小于一分钟);以及如果在该预先确定的时间量期间该数据使用超过预先确定的速率,则终止应用程序的至少该版本的操作。又如,在一个或多个具体实施中,电子设备110可以基于用户的位置来限制应用程序的版本的使用(例如,当用户离开商店202时,可以防止或限制对应用程序的版本的使用)。
81.在一个或多个具体实施中,电子设备还可基于电子设备110的位置和/或来自与该位置相关联的其他电子设备的众包信息,将至少一个应用程序的至少一个简化功能版本从该一个或多个远程服务器预加载到电子设备(例如,预期用户需要或期望一个或多个应用程序的一个或更多个子功能时)。
82.在一个或多个具体实施中,用于应用程序的该版本的代码可以在用户完成对应用程序的该版本的使用后自动删除,而无需用户输入。例如,电子设备110可以识别应用程序的该版本的不使用时间段超过阈值时间段(例如,一小时、一天、一周、十天或一个月的时间
段);以及从电子设备删除用于应用程序的该版本的代码。删除代码可包括该不使用时间段超过阈值时间段而自动删除代码,且不需要用户交互。
83.在一个或多个具体实施中,当安装了对应于应用程序的该版本的完整应用程序时,可以删除应用程序的该版本的代码,使得应用程序的临时和/或简化功能版本被完整应用程序替换。在一个或多个具体实施中,可以响应于选择在应用程序的该版本内提供的这样做的选项而获得完整应用程序。
84.图5示出了根据一个或多个具体实施的用于将应用程序的版本(例如,应用程序小程序或应用程序的简化功能版本或临时版本)替换为完整应用程序(例如,应用程序的完整版本)的示例性过程的流程图。出于解释的目的,本文主要参考图1的电子设备110和服务器120来描述过程500。然而,过程500不限于图1的电子设备110和服务器120,并且过程500的一个或多个框(或操作)可由服务器120或电子设备110的一个或多个其他部件和/或由其他合适设备诸如电子设备115来执行。进一步出于解释的目的,过程500的框在本文中被描述为顺序地或线性地发生。然而,过程500的多个框可并行发生。此外,过程500的框不必按所示顺序执行,并且/或者过程500的一个或多个框不必执行和/或可由其他操作替代。
85.在框502处,电子设备诸如电子设备110接收获得完整应用程序的请求(例如,与已安装在电子设备上的应用程序小程序对应的完整应用程序)。当用户启动用于访问远程应用程序商店或存储库(例如,在服务器120处)的附加应用程序,并在应用程序商店中定位完整应用程序时,电子设备110可接收获得完整应用程序的请求;并选择完整应用程序进行下载和安装。
86.在框504处,电子设备存储在应用程序的简化功能版本操作期间生成的数据(例如,在电子设备本地或云存储装置诸如远程服务器(诸如服务器120)处的存储装置中)。所存储的数据可包括用户活动数据、购买历史数据、位置历史数据、消息传送历史数据、日历数据和/或由应用程序的简化功能版本生成的任何其他数据。可以阻止非完整应用程序的应用程序访问由简化功能版本生成的存储数据。在一个或多个具体实施中,在电子设备上已安装应用程序的简化功能版本之后,可经由应用程序的简化功能版本提供用户认证信息(例如,用于与服务器120进行认证)(例如,为了增强应用程序的简化功能版本的性能,诸如允许更长时间或远程存储由应用程序的简化功能版本生成的数据,和/或访问与用户帐户相关联的存储在远程服务器120处或电子设备110上的其他用户数据)。
87.在框506处,电子设备从电子设备中删除应用程序的简化功能版本。电子设备可以删除应用程序的简化功能版本,而无需接收明确地请求或指示删除的用户输入。
88.在框508处,电子设备将完整应用程序从该一个或多个远程服务器下载并安装到电子设备。在一个或多个具体实施中,电子设备在下载并安装完整应用程序之前,请求用户的用户账户认证信息以用于接收该完整应用程序。对认证信息的请求可以由附加应用程序生成以用于访问远程应用程序商店。可以当启动附加应用程序时和/或当接收到获得完整应用程序的请求时提供对认证信息的请求。附加应用程序可以使用接收到的认证信息在电子设备处本地认证用户,或者附加应用程序可以将认证信息或与认证信息相关联的信息提供给托管应用程序商店的远程服务器,以对用户进行认证。
89.在框510处,电子设备通过完整应用程序提供对所存储的数据的访问。然后,完整应用程序可以基于所存储的数据为用户提供用户特定的功能,即使用户从未使用过完整应
用程序也是如此。
90.在一个或多个具体实施中,电子设备还可以生成能够由用户选择以启动完整应用程序的完整应用程序的图标。可以提供应用程序的该版本以供用户使用而无需提供相关联的可选图标(例如,应用程序的至少简化功能版本不具有相关联的可选图标)。图标可以设置在例如电子设备上的主屏幕上。图标可以在电子设备处创建或者可以从远程服务器120获得。
91.图6示出了根据一个或多个具体实施的用于在电子设备上提供应用程序的临时版本的示例性过程的流程图。出于解释的目的,本文主要参考图1的电子设备110和服务器120来描述过程600。然而,过程600不限于图1的电子设备110和服务器120,并且过程600的一个或多个框(或操作)可由服务器120或电子设备110的一个或多个其他部件和/或由其他合适设备诸如电子设备115来执行。进一步出于解释的目的,过程600的框在本文中被描述为顺序地或线性地发生。然而,过程600的多个框可并行发生。此外,过程600的框不必按所示顺序执行,并且/或者过程600的一个或多个框不必执行和/或可由其他操作替代。
92.在框602处,电子设备诸如电子设备110接收用于应用程序的统一资源定位符。接收统一资源定位符可以包括由电子设备扫描qr码。接收统一资源定位符可以包括接收对链接的选择(例如,由在电子设备上运行的另一应用程序提供的链接)。接收统一资源定位符可以包括基于电子设备的位置接收统一资源定位符(例如,如上文结合图2所述)。该应用程序的临时版本在本文中可以称为应用程序小程序或应用小程序。
93.在框604处,使用统一资源定位符,电子设备接收应用程序的临时版本,该临时版本包括少于该应用程序的完整版本的功能。电子设备还可以在获得应用程序的临时版本之前,接收来自电子设备的用户的授权以获得应用程序的临时版本。可以响应于由电子设备提供的对授权的请求而接收来自用户的授权,如上文结合图3的示例所述。
94.在一个或多个具体实施中,在没有用户认证的情况下接收到来自用户的授权。在一个或多个具体实施中,电子设备在接收到应用程序的临时版本之前确定应用程序的完整版本未安装在电子设备上。在一个或多个具体实施中,电子设备确定(例如,在电子设备处使用布隆过滤器)url与应用程序标识符相关联,并且确定(例如,通过向服务器提供url的一部分的散列或url的散列的一部分,以及响应于url的一部分的散列或url的散列的部分对从服务器接收到的信息进行本地排序)应用程序的临时版本可用。
95.在一个或多个具体实施中,电子设备还可以在电子设备处接收用户的认证信息。电子设备可以使用认证信息获得应用程序的完整版本,从电子设备删除应用程序的临时版本,并在电子设备上安装应用程序的完整版本。电子设备还可以在删除应用程序的临时版本之前,向应用程序的所安装的完整版本提供对由该应用程序的该临时版本生成的数据的访问(例如,如上文结合图5所述)。
96.本文描述了用于获得应用小程序(例如,相对于完整应用程序具有减少的功能的应用程序的临时版本)的各种示例。然而,应当理解,用于获得、安装和启动本文所述的应用程序小程序的操作可被应用来获得能够由电子设备提供的任何合适的应用程序或其他体验。例如,代码诸如二进制或可执行代码可被存储在服务器(例如,服务器120)处,作为该应用程序或体验的连接注册信息。该注册信息可包括网络标识符,诸如本文所述的url,以及用于在授权请求中显示的信息,诸如标题、副标题、图像等。
97.图7示出了根据一个或多个具体实施的用于获得电子设备的已注册的应用程序的示例性过程的流程图,诸如用于获得向远程服务器注册的体验,该体验将由电子设备提供。出于解释的目的,本文主要参考图1的电子设备110和服务器120来描述过程700。然而,过程700不限于图1的电子设备110和服务器120,并且过程700的一个或多个框(或操作)可由服务器120或电子设备110的一个或多个其他部件和/或由其他合适设备诸如电子设备115来执行。进一步出于解释的目的,过程700的框在本文中被描述为顺序地或线性地发生。然而,过程700的多个框可并行发生。此外,过程700的框不必按所示顺序执行,并且/或者过程700的一个或多个框不必执行和/或可由其他操作替代。
98.在框702处,电子设备可以接收统一资源定位符(url)。例如,接收统一资源定位符可包括由电子设备扫描代码,诸如qr码或嵌入在另一视觉介质中的代码,诸如对人眼而言看起来不包括代码的图像,或诸如经由nfc或蓝牙无线地发送和/或广播的代码。代码可以例如是图像的颜色、形状和/或其他特征的编码布置。接收统一资源定位符可以包括接收对链接的选择(例如,由在电子设备上运行的另一应用程序(如地图应用程序或浏览器应用程序)提供的链接)。接收统一资源定位符可以包括基于电子设备的位置接收统一资源定位符(例如,经由nfc或与电子设备的基于位置的其他通信,如上文结合图2所述)。
99.在框704处,电子设备可生成统一资源定位符的第一散列。url的第一散列可以是整个url的散列。
100.在框706处,电子设备可以使用统一资源定位符的第一散列来确定统一资源定位符是否与能够从一个或多个远程服务器(例如,从应用服务器)获得的多个应用程序中的任一个应用程序相关联。使用统一资源定位符的第一散列来确定统一资源定位符是否与能够从该一个或多个远程服务器获得的多个应用程序中的任一个应用程序相关联可包括将统一资源定位符的第一散列提供给布隆过滤器。布隆过滤器可以预先存储在电子设备中,或者可以在获得统一资源定位符时从远程服务器(例如,服务器120)获得。
101.响应于在框706处确定统一资源定位符(例如,“是”)与应用程序中的任一个应用程序相关联,在框710处,电子设备可以生成统一资源定位符的第一部分的第二散列。统一资源定位符的第一部分可以是例如统一资源定位符的前缀。在框712处,电子设备可以使用第一部分的第二散列从该一个或多个远程服务器(例如,同一远程服务器或另一远程服务器诸如注册服务器)获得包括应用程序中的至少两个应用程序的数据的数据集(例如,信息的集合或信息桶)。在框714处,电子设备可以确定统一资源定位符是否包括在该数据集中。在框716处,响应于在框714处确定统一资源定位符(例如,“是”)包括在该数据集中,电子设备可以在电子设备处安装这些应用程序中对应于该统一资源定位符的特定的一个应用程序。在电子设备处安装这些应用程序中对应于统一资源定位符的特定的一个应用程序可包括安装这些应用程序中特定的一个应用程序的数据集中的数据,或者可包括下载和安装这些应用程序中特定的一个应用程序的附加数据(例如,从另一远程服务器诸如应用服务器下载和安装用于这些应用程序中的特定的一个应用程序的元数据和/或二进制代码)。
102.响应于在框714处确定统一资源定位符不包括(例如,“否”)在该数据集中,或者在框706处确定统一资源定位符不与应用程序中的任一个应用程序相关联(例如,“否”),在框718处,电子设备可在电子设备处利用浏览器导航到统一资源定位符。
103.在一个或多个具体实施中,响应于确定(在框706处,诸如使用布隆过滤器)统一资
源定位符不与应用程序中的任一个应用程序相关联,并且在框718处利用电子设备处的浏览器导航到统一资源定位符之前,电子设备可生成统一资源定位符截断的第三散列(例如,通过从url中移除路径或查询组件后缀以生成url前缀的散列),将第三散列提供给布隆过滤器,并且使用布隆过滤器和url的前缀的第三散列来确定统一资源定位符是否与应用程序中的任一个应用程序相关联(例如,通过基于向布隆过滤器提供第三散列来确定该第三散列是否与该多个应用程序中的任一个应用程序相关联)。电子设备可在框706处确定统一资源定位符不与应用程序中的任一个应用程序相关联之前,执行url的一个或多个连续路径或查询组件后缀移除和过滤。
104.在一个或多个具体实施中,响应于确定(在框714处)统一资源定位符不包括在该数据集中,并且在框718处利用电子设备处的浏览器导航到统一资源定位符之前,电子设备可生成统一资源定位符的第一部分的子集的第三散列(例如,通过从url中移除路径或查询组件后缀以生成url前缀的散列),使用第一部分的子集的第三散列,从该一个或多个远程服务器获得用于应用程序中的至少两个应用程序的第二数据集,以及确定统一资源定位符是否包括在该第二数据集中。电子设备可被配置为在框714处确定统一资源定位符不包括在第二数据集中之前,执行一个或多个连续路径或查询组件后缀移除。响应于确定统一资源定位符包括在第二数据集中(或在第一数据集中),电子设备可以在电子设备处安装这些应用程序中对应于统一资源定位符的特定的一个应用程序(例如,在框716处)。以这种方式,可以避免由于url中的附加信息(例如,变量、参数等)而导致的误报。
105.在一个或多个具体实施中,统一资源定位符可包括超文本传输协议(http)地址,其包括远程服务器的地址(例如,“codes.server.com”)、应用程序中的特定的一个应用程序的标识符(例如,“experienceid”)以及与应用程序中的特定的一个应用程序相关联的一个或多个变量(例如,{arguments})。电子设备可以使用统一资源定位符中的标识符识别应用程序中对应于统一资源定位符的特定的一个应用程序(例如,在框714处)。电子设备还可以通过将统一资源定位符中的该一个或多个变量中的至少一个变量提供给应用程序中的特定的一个应用程序来部分地启动应用程序中的特定的一个应用程序。
106.本公开认识到在本发明技术中使用此类个人信息数据可用于使用户受益。例如,个人信息数据可用于基于用户的位置、用户的偏好、用户的活动和/或用户或其他用户的众包信息,向用户的电子设备提供应用程序小程序。
107.本公开设想负责收集、分析、公开、传输、存储或其他使用此类个人信息数据的实体将遵守既定的隐私政策和/或隐私实践。具体地,将期望此类实体实现和一贯地应用一般公认为满足或超过维护用户隐私的行业或政府所要求的隐私实践。关于使用个人数据的此类信息应当被突出地并能够被用户方便地访问,并应当随数据的收集和/或使用变化而被更新。用户的个人信息应被收集仅用于合法使用。另外,此类收集/共享应仅发生在接收到用户同意或在适用法律中所规定的其他合法根据之后。此外,此类实体应考虑采取任何必要步骤,保卫和保障对此类个人信息数据的访问,并确保有权访问个人信息数据的其他人遵守其隐私政策和流程。另外,这种实体可使其本身经受第三方评估以证明其遵守广泛接受的隐私政策和实践。此外,应针对被收集和/或访问的特定类型的个人信息数据调整政策和实践,并使其适用于适用法律和标准,包括可用于施加较高标准的辖区专有的具体考虑因素。例如,在美国,对某些健康数据的收集或获取可能受联邦和/或州法律的管辖,诸如健
康保险流通和责任法案(hipaa);而其他国家的健康数据可能受到其他法规和政策的约束并应相应处理。
108.不管前述情况如何,本公开还预期用户选择性地阻止使用或访问个人信息数据的实施方案。即本公开预期可提供硬件元件和/或软件元件,以防止或阻止对此类个人信息数据的访问。例如,在提供应用程序小程序的情况下,本主题技术可被配置为在注册服务期间或随后的任何时间允许用户选择“选择加入”或“选择退出”参与对个人信息数据的收集和/或共享。除了提供“选择加入”和“选择退出”选项外,本公开设想提供与访问或使用个人信息相关的通知。例如,可在下载应用时向用户通知其个人信息数据将被访问,然后就在个人信息数据被应用访问之前再次提醒用户。
109.此外,本公开的目的是应管理和处理个人信息数据以最小化无意或未经授权访问或使用的风险。一旦不再需要数据,通过限制数据收集和删除数据可最小化风险。此外,并且当适用时,包括在某些健康相关应用程序中,数据去标识可用于保护用户的隐私。可在适当时通过移除标识符、控制所存储数据的量或特异性(例如,在城市级别而不是在地址级别或在对于面部识别而言不充分的级别收集位置数据)、控制数据如何被存储(例如,在用户间汇集数据)和/或其他方法诸如差异化隐私来促进去标识。
110.因此,虽然本公开广泛地覆盖了使用个人信息数据来实现一个或多个各种所公开的实施方案,但本公开还预期各种实施方案也可在无需访问此类个人信息数据的情况下被实现。即,本发明技术的各种实施方案不会由于缺少此类个人信息数据的全部或一部分而无法正常进行。
111.在一个或多个具体实施中,应用程序小程序对于安装在电子设备上的应用程序是可访问的。例如,基于电子设备的位置、电子设备对代码的扫描和/或电子设备的功率水平,可以启动仅具有所安装的应用程序的功能的子集的应用程序小程序。
112.图8示出了可用以实现本主题技术的一个或多个具体实施的电子系统800。电子系统800可以是图1所示的电子设备110和/或服务器120和/或可为其一部分。电子系统800可包括各种类型的计算机可读介质以及用于各种其他类型的计算机可读介质的接口。电子系统800包括总线808、一个或多个处理单元812、系统存储器804(和/或缓存器)、rom 810、永久性存储设备802、输入设备接口814、输出设备接口806以及一个或多个网络接口816,或其子集及变型。
113.总线808总体表示通信地连接电子系统800的许多内部设备的所有系统总线、外围设备总线和芯片组总线。在一个或多个具体实施中,总线808将一个或多个处理单元812与rom 810、系统存储器804和永久性存储设备802通信地连接。一个或多个处理单元812从这些各种存储器单元检索要执行的指令和要处理的数据,以便执行本主题公开的过程。在不同的具体实施中,一个或多个处理单元812可为单个处理器或者多核处理器。
114.rom 810存储一个或多个处理单元812以及电子系统800的其他模块所需的静态数据和指令。另一方面,永久性存储设备802可为读写存储器设备。永久性存储设备802可为即使在电子系统800关闭时也存储指令和数据的非易失性存储器单元。在一个或多个具体实施中,海量存储设备(诸如,磁盘或光盘及其对应的磁盘驱动器)可被用作永久性存储设备802。
115.在一个或多个具体实施中,可移除存储设备(诸如软盘、闪存驱动器及其对应的磁
盘驱动器)可用作永久性存储设备802。与永久性存储设备802一样,系统存储器804可为读写存储器设备。然而,与永久性存储设备802不同,系统存储器804可为易失性读写存储器,诸如随机存取存储器。系统存储器804可存储一个或多个处理单元812在运行时可能需要的指令和数据中的任何指令和数据。在一个或多个具体实施中,本主题公开的过程被存储在系统存储器804、永久性存储设备802和/或rom 810中。一个或多个处理单元812从这些各种存储器单元检索要执行的指令和要处理的数据,以便执行一个或多个具体实施的过程。
116.总线808还连接至输入设备接口814和输出设备接口806。输入设备接口814使得用户能够向电子系统800传送信息以及选择命令。可与输入设备接口814一起使用的输入设备可包括例如字母数字混合键盘和指向设备(也称为“光标控制设备”)。输出设备接口806可例如使得能够显示电子系统800所生成的图像。可与输出设备接口806一起使用的输出设备可包括例如打印机和显示设备,诸如液晶显示器(lcd)、发光二极管(led)显示器、有机发光二极管(oled)显示器、柔性显示器、平板显示器、固态显示器、投影仪或用于输出信息的任何其他设备。一个或多个具体实施可包括既充当输入设备又充当输出设备的设备,诸如触摸屏。在这些具体实施中,提供给用户的反馈可以是任何形式的感官反馈,诸如视觉反馈、听觉反馈或触觉反馈;并且可以任何形式接收来自用户的输入,包括声学、语音或触觉输入。
117.最后,如图8所示,总线808还通过一个或多个网络接口816将电子系统800耦接到一个或多个网络和/或耦接到一个或多个网络节点,例如图1中所示的电子设备110。以此方式,电子系统800可为计算机网络(诸如lan、广域网(“wan”)或内联网)的一部分,或者可为网络的网络(诸如互联网)的一部分。电子系统800的任何或全部部件可与本主题公开一起使用。
118.根据本公开的各方面,提供了一种方法,该方法包括在电子设备处接收与应用程序相关联的统一资源定位符;由电子设备确定应用程序未安装在电子设备上;由电子设备基于统一资源定位符的至少第一部分确定应用程序的至少一个版本在没有用户认证的情况下可用;向一个或多个远程服务器提供与统一资源定位符相关联的信息;响应于该信息,在电子设备处从该一个或多个远程服务器接收用于应用程序的至少该版本的代码;由电子设备提供对来自用户的安装和启动应用程序的至少该版本的用户授权的请求;由电子设备接收用户授权;以及响应于接收到用户授权,安装和启动应用程序的至少该版本。
119.根据本公开的各方面,提供了一种方法,该方法包括在电子设备处接收用于应用程序的统一资源定位符;以及由电子设备使用统一资源定位符获得该应用程序的临时版本,该临时版本包括少于该应用程序的完整版本的功能。
120.根据本公开的各方面,提供了一种非暂态机器可读介质,该非暂态机器可读介质包括代码,这些代码当由处理器执行时使处理器:在电子设备处接收与应用程序相关联的统一资源定位符;由电子设备确定应用程序未安装在电子设备上;由电子设备基于统一资源定位符的至少第一部分确定应用程序的至少一个版本在没有用户认证的情况下可用;向一个或多个远程服务器提供与统一资源定位符相关联的信息;响应于该信息,在电子设备处从该一个或多个远程服务器接收用于应用程序的至少该版本的代码;由电子设备提供对来自用户的安装和启动应用程序的至少该版本的用户授权的请求;由电子设备接收用户授权;以及响应于接收到用户授权,安装和启动应用程序的至少该版本。
121.根据本公开的各方面,提供了一种设备,该设备包括存储器和至少一个处理器,该至少一个处理器被配置为在电子设备处接收与应用程序相关联的统一资源定位符;由电子设备确定应用程序未安装在电子设备上;由电子设备基于统一资源定位符的至少第一部分确定应用程序的至少一个版本在没有用户认证的情况下可用;向一个或多个远程服务器提供与统一资源定位符相关联的信息;响应于该信息,在电子设备处从该一个或多个远程服务器接收用于应用程序的至少该版本的代码;由电子设备提供对来自用户的安装和启动应用程序的至少该版本的用户授权的请求;由电子设备接收用户授权;以及响应于接收到用户授权,安装和启动应用程序的至少该版本。
122.根据本公开的各方面,提供了一种存储指令的非暂态计算机可读介质,这些指令当由一个或多个处理器执行时使该一个或多个处理器执行包括以下各项的操作:在电子设备处接收统一资源定位符;生成统一资源定位符的第一散列;使用统一资源定位符的第一散列确定该统一资源定位符是否与能够从远程服务器获得的多个应用程序中的任一个应用程序相关联;响应于确定该统一资源定位符与该多个应用程序中的任一个应用程序相关联:生成该统一资源定位符的第一部分的第二散列;使用第一部分的第二散列从远程服务器获得包括该多个应用程序中的至少两个应用程序的数据的数据集;确定该统一资源定位符是否包括在该数据集中;以及响应于确定该统一资源定位符包括在该数据集中,在电子设备处安装这些应用程序中对应于该统一资源定位符的特定的一个应用程序;以及响应于确定该统一资源定位符不包括在该数据集中,在电子设备处利用浏览器导航到该统一资源定位符;以及响应于确定该统一资源定位符不与该多个应用程序中的任一个应用程序相关联,在电子设备处利用浏览器导航到该统一资源定位符。
123.根据本公开的各方面,提供了一种方法,该方法包括在电子设备处接收统一资源定位符;生成统一资源定位符的第一散列;使用统一资源定位符的第一散列确定该统一资源定位符是否与能够从远程服务器获得的多个应用程序中的任一个应用程序相关联;响应于确定该统一资源定位符与该多个应用程序中的任一个应用程序相关联:生成该统一资源定位符的第一部分的第二散列;使用第一部分的第二散列从远程服务器获得包括该多个应用程序中的至少两个应用程序的数据的数据集;确定该统一资源定位符是否包括在该数据集中;以及响应于确定该统一资源定位符包括在该数据集中,在电子设备处安装这些应用程序中对应于该统一资源定位符的特定的一个应用程序;以及响应于确定该统一资源定位符不包括在该数据集中,在电子设备处利用浏览器导航到该统一资源定位符;以及响应于确定该统一资源定位符不与该多个应用程序中的任一个应用程序相关联,在电子设备处利用浏览器导航到该统一资源定位符。
124.可以利用编写有一个或多个指令的有形计算机可读存储介质(或一种或多种类型的多个有形计算机可读存储介质)部分地或全部地实现本公开范围之内的具体实施。有形计算机可读存储介质实质上也可以是非暂态的。
125.计算机可读存储介质可以是任何可以由通用或专用计算设备读、写或以其他方式访问的存储介质,包括任何能够执行指令的处理电子器件和/或处理电路。例如,非限制地,计算机可读介质可包括任何易失性半导体存储器,诸如ram、dram、sram、t-ram、z-ram和ttram。计算机可读介质也可包括任何非易失性半导体存储器,诸如rom、prom、eprom、eeprom、nvram、闪存、nvsram、feram、fetram、mram、pram、cbram、sonos、rram、nram、赛道存
储器、fjg和millipede存储器。
126.此外,计算机可读存储介质可包括任何非半导体存储器,诸如光盘存储装置、磁盘存储装置、磁带、其他磁性存储设备或者能够存储一个或多个指令的任何其他介质。在一个或多个具体实施中,有形计算机可读存储介质可直接耦接到计算设备,而在其他具体实施中,有形计算机可读存储介质可例如经由一个或多个有线连接、一个或多个无线连接、或它们的任意组合而间接地耦接到计算设备。
127.指令可以是直接能执行的,或者可用于开发可执行指令。例如,指令可被实现为可执行的或不可执行的机器代码,或者可被实现为可被编译以产生可执行的或不可执行的机器代码的高级语言指令。此外,指令也可被实现为数据,或者可包括数据。计算机可执行指令也可以任何格式组织,包括例程、子例程、程序、数据结构、对象、模块、应用、小程序、函数等。如本领域技术人员认识到的那样,包括但不限于指令的数量、结构、序列和组织的细节可明显不同,而不改变底层的逻辑、功能、处理和输出。
128.虽然以上论述主要涉及执行软件的微处理器或多核处理器,但一个或多个具体实施由一个或多个集成电路诸如asic或fpga执行。在一个或多个具体实施中,此类集成电路执行存储在电路自身上的指令。
129.本领域的技术人员将会认识到,本文所述的各种例示性的框、模块、元件、部件、方法和算法可被实现为电子硬件、计算机软件或两者的组合。为了说明硬件和软件的这种可互换性,上文已经一般性地按照功能性对各种例示性的框、模块、元件、部件、方法和算法进行了描述。此类功能性是被实现为硬件还是软件取决于具体应用以及对整个系统施加的设计约束。技术人员对于每个具体应用可通过不同方式实现所描述的功能性。各种部件和框可被不同地布置(例如,以不同的顺序排列,或以不同的方式划分),而不脱离本主题技术的范围。
130.应当理解,本发明所公开的过程中的框的特定顺序或分级结构为示例性方法的例示。基于设计优选要求,应当理解,过程中的框的特定顺序或者分级结构可被重新布置或者所有示出的框都被执行。这些框中的任何框可被同时执行。在一个或多个具体实施中,多任务和并行处理可能是有利的。此外,上述具体实施中各个系统部件的划分不应被理解为在所有具体实施中都要求此类划分,并且应当理解,程序部件和系统可一般性地被一起整合在单个软件产品中或者封装到多个软件产品中。
131.如本说明书以及本专利申请的任何权利要求中所用,术语“基站”、“接收器”、“计算机”、“服务器”、“处理器”及“存储器”均是指电子设备或其他技术设备。这些术语排除人或者人的群组。出于本说明书的目的,术语“显示”或“正在显示”意指在电子设备上显示。
132.如本文所用,在用术语“和”或“或”分开项目中任何项目的一系列项目之后的短语“中的至少一者”是将列表作为整体进行修饰,而不是修饰列表中的每个成员(即每个项目)。短语“中的至少一者”不要求选择所列出的每个项目中的至少一个;相反,该短语允许包括任何一个项目中的至少一个和/或项目的任何组合中的至少一个和/或每个项目中的至少一个的含义。举例来说,短语“a、b和c中的至少一者”或“a、b或c中的至少一者”各自是指仅a、仅b或仅c;a、b和c的任意组合;和/或a、b和c中的每一个中的至少一个。
133.谓词字词“被配置为”、“能够操作以”以及“被编程以”并不意味着对某一主题进行任何特定的有形或无形的修改而是旨在可互换使用。在一个或多个具体实施中,被配置为
监视和控制操作或部件的处理器也可以是意指处理器被编程以监视和控制操作或者处理器可操作以监视和控制操作。同样,被配置为执行代码的处理器可解释为被编程以执行代码或能够操作以执行代码的处理器。
134.短语诸如方面、该方面、另一方面、一些方面、一个或多个方面、具体实施、该具体实施、另一具体实施、一些具体实施、一个或多个具体实施、实施方案、该实施方案、另一实施方案、一些实施方案、一个或多个实施方案、配置、该配置、其他配置、一些配置、一种或多种配置、主题技术、公开、本公开、它们的其他变型等等都是为了方便,并不意味着涉及这样的一个或多个短语的公开对于主题技术是必不可少的,也不意味着这种公开适用于主题技术的所有配置。涉及此类一个或多个短语的公开可适用于所有配置或一个或多个配置。涉及此类一个或多个短语的公开可提供一个或多个示例。短语诸如方面或一些方面可指代一个或多个方面,反之亦然,并且这与其他前述短语类似地应用。
135.字词“示例性”在本文中被用于意指“用作示例、实例或者例示”。在本文中被描述为“示例性的”或作为“示例”的任何实施方案不必被理解为优选于或优于其他具体实施。此外,在术语“包括”、“具有”等在说明书或权利要求中使用的限度内,这样的术语旨在是包含性的,与术语“包括”当在权利要求中被用作过渡字词时“包括”被解释的方式类似。
136.本领域的普通技术人员已知或稍后悉知的贯穿本公开描述的各个方面的元素的所有结构和功能等同物通过引用明确地并入本文,并且旨在被权利要求书所涵盖。此外,本文所公开的任何内容并非旨在提供给公众,而与该公开是否明确地被陈述在权利要求中无关。不应根据35u.s.c.
§
112(f)的规定解释任何权利要求要素,除非使用短语“用于
……
的装置”明确陈述了该要素,或者就方法权利要求而言,使用短语“用于
……
的步骤”陈述了该要素。
137.先前的描述被提供以使得本领域的技术人员能够实践本文所述的各个方面。这些方面的各种修改对本领域的技术人员而言是显而易见的,并且本文所限定的通用原则可应用于其他方面。因此,本权利要求书并非旨在受限于本文所示的方面,而是旨在使得全部范围与语言权利要求书一致,其中对奇异值中的元素的引用并非旨在意味着“仅仅一个”,而是指“一个或多个”,除非被具体指出。除非另外特别说明,否则术语“一些”是指一个或多个。男性的代名词(例如,他的)包括女性和中性(例如,她的和它的),并且反之亦然。标题和子标题(如果有的话)仅为了方便起见而使用并且不限制本主题公开。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1