CN109074278B - 验证移动应用中的有状态动态链接 - Google Patents
验证移动应用中的有状态动态链接 Download PDFInfo
- Publication number
- CN109074278B CN109074278B CN201780022486.0A CN201780022486A CN109074278B CN 109074278 B CN109074278 B CN 109074278B CN 201780022486 A CN201780022486 A CN 201780022486A CN 109074278 B CN109074278 B CN 109074278B
- Authority
- CN
- China
- Prior art keywords
- application
- link
- stateful
- page
- stateful application
- 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.)
- Active
Links
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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- 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]
-
- 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]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- 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/04—Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
-
- 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/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72403—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
- H04M1/72445—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality for supporting Internet browser applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/02—Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Telephone Function (AREA)
- Stored Programmes (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
描述了用于验证有状态应用链接的技术。可在有状态应用链接被创建、激活、共享时或在其他时间执行验证。可执行验证以确定有状态应用链接是否对移动应用外部的资源有依赖性。还可执行验证以检测其他问题,诸如安全性问题、隐私问题或其他问题。
Description
背景
在Web中,深层链接指的是使用链接到网站上除主页之外的特定网页(或其他web内容)的超链接。移动深层链接为移动应用提供类似体验。移动深层链接指向移动应用中的特定位置。移动深层链接可启动已安装在用户的移动设备上的应用,或者移动深层链接可直接打开应用内的特定位置。
虽然移动深层链接可提供web深层链接的一些功能性,但是当前的移动深层链接技术具有许多重要的局限性。例如,为了支持移动深层链接,可能要求开发人员为应用支持的每个深层链接编写代码。此外,此类移动深层链接是静态定义的,且仅支持链接到应用内的由开发人员定义的特定位置。这些限制导致有限的覆盖范围(应用内的由开发人员预定义、可通过深层链接直接访问的少量位置)。
因此,存在足够机会来改进涉及移动应用内的深层链接的技术。
概述
提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的概念的选集。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
描述了用于验证移动应用的有状态应用链接的技术。例如,可维持由移动应用触发的事件的日志。可接收动态地生成到移动应用的当前页面(或到当前页面的当前视图)的有状态应用链接的请求。然后可执行验证以确定日志是否包含与移动应用外部的资源有依赖性的、与当前页面相关联的事件。可输出对依赖性的指示(例如,警告或错误消息)。还可执行验证以检查安全性、隐私和/或其他问题。
在共享有状态应用链接时可执行有状态应用链接的验证。例如,可接收共享有状态应用链接的请求。响应于该请求,可执行验证。如果验证成功,则可共享有状态应用链接。如果验证不成功,则可采取适当动作(例如,可拒绝共享、可呈现警告消息等)。
如本文所述的,各种其他特征和优点可按照需要被结合到所述技术中。
附图简述
图1是描绘到移动应用的特定页面的有状态应用链接的示例创建的图。
图2是描绘到移动应用的页面的特定视图的有状态应用链接的示例创建的图。
图3是描绘用于为移动应用创建有状态应用链接的示例架构的图。
图4是用于创建到移动应用的页面的有状态应用链接的示例方法的流程图。
图5是用于创建到移动应用的当前页面的当前视图的有状态应用链接的示例方法的流程图。
图6是用于激活移动应用的有状态应用链接的示例方法的流程图。
图7是描绘有状态应用链接的示例的图。
图8是用于验证移动应用的有状态应用链接的示例方法的流程图。
图9是用于验证移动应用的有状态应用链接的示例方法的流程图。
图10是描绘用于解析有状态应用链接的示例环境的图。
图11是可用于实现所描述的一些实施例的示例计算系统的图示。
图12是可以结合本文所述的技术来使用的示例移动设备。
详细描述
概览
如本文所述,可应用各种技术来管理有状态应用链接。这些技术可被应用以动态生成有状态应用链接。例如,在与移动应用的用户交互期间可截获页面启动器事件。在交互期间,可接收动态地生成到移动应用的当前页面的有状态应用链接的请求(例如,用户发起的请求或来自诸如应用、操作系统、设备之类的另一源的请求)。响应于请求,可创建到当前页面的有状态应用链接。然后有状态应用链接可被输出(例如,被保存,被通过电子邮件发送等)。有状态应用链接使用来自截获的页面启动器事件的信息(例如,捕获的页面启动器参数)。在稍后激活有状态应用链接时,有状态应用链接将返回到移动应用的当前页面。
有状态应用链接表示移动应用的已保存应用状态。例如,移动应用的状态可包括正被查看的当前页面(例如,除了移动应用的初始页面之外的当前页面)。状态还可包括正被查看的当前页面的当前视图(例如,在其中页面可具有多个视图的情况下当前页面的默认视图或当前页面的另一视图)。状态还可包括在先前页面或视图上发生的事件(例如,用户与之交互的页面序列、用户输入或用户选择等)。状态还可包括在当前页面或视图上发生的事件(例如,诸如表单字段输入之类的用户输入、诸如按钮或菜单之类的用户选择等)。状态还可包括来自其他资源或输入的信息(例如,从GPS传感器获得的计算设备的当前位置、存储在文件系统中的文件的内容等)。
在一些实现中,还在创建有状态应用链接时捕获并使用用户界面事件。例如,捕获的用户界面事件可与有状态应用链接一起被保存,并在有状态应用链接被激活时被重放,以使移动应用返回到有状态应用链接被创建时它所处于的状态。作为示例,用户界面事件可包括按钮按压、表单字段中的条目、页面的不同视图的选择(例如,用于在页面呈现的不同视图之间切换的用户界面元素的选择)等。
所述技术还可被应用以激活移动应用的有状态应用链接。例如,移动应用可接收有状态应用链接(例如,作为用户从保存的文件、从电子邮件消息或即时消息、从保存的链接列表、从用户正在与之交互的另一应用等选择有状态应用链接的结果)。有状态应用链接可包括用于使移动应用返回到移动应用的特定页面的页面启动器参数。有状态应用链接还可包括与特定页面相关联的用户界面事件。可使用页面启动器参数使移动应用返回到特定页面(例如,通过使用参数生成新的页面启动器事件)。然后可重放用户界面事件以完成使移动应用返回到由有状态应用链接表示的已保存应用状态的过程。
所述技术可被应用以验证有状态应用链接。验证可在各种时间执行,包括链接被创建或保存时、链接被激活时或链接被共享时。可执行验证以确定链接是否具有可能阻止链接稍后正常工作的任何外部依赖性(例如,阻止恢复完整保存的应用状态)。验证也可因其他目的,诸如安全性、隐私等,而被执行。
所述技术可被应用以共享有状态应用链接。例如,有状态应用链接可在用户之间和/或在计算设备之间被共享。可在共享之前和/或在激活之前验证有状态应用链接(例如,以实施安全性、隐私或兼容性要求)。
利用现有的移动深层链接解决方案,链接到移动应用内的经静态定义的页面是可能的。然而,现有的移动深层链接解决方案需要大量的开发人员努力来实现、覆盖少量预定义的页面、并且被静态地定义以导航到与特定预定义链接相关联的特定页面。此外,现有的移动深层链接解决方案在保存、激活或共享链接期间不提供链接验证和相关联的反馈。
本文描述的技术为移动应用提供被动态创建且有状态的链接,称为有状态应用链接。有状态应用链接是被动态创建的,且因此允许用户创建到移动应用内任何页面的有状态应用链接,而页面不必(与现有的移动深层链接解决方案一样)支持静态链接。此外,有状态应用链接能够保存正为其创建链接的特定页面和视图的状态,包括对先前页面和视图的依赖性、用户界面交互和传感器输入。例如,考虑餐馆位置应用,其允许用户搜索用户的位置附近的餐馆。用户可打开应用,获得用户的当前位置(例如,从GPS自动获得或由用户输入),并选择特定餐馆(例如,从所显示的地图)。选择特定餐馆可将用户引导到应用的后续页面,该后续页面显示关于餐馆的细节(例如,开放时间、预订信息等)。然后,用户可将有状态应用链接保存到当前页面,这也将保存应用的状态,该状态取决于先前页面和先前的用户界面交互(在此示例中,是设备的位置和用户对特定餐厅的选择)。
一种类型的有状态应用链接被称为快捷方式链接(也被称为仅限快捷方式链接(shortcut only link))。快捷方式链接是指向移动应用的特定页面的有状态应用链接。为了创建快捷方式链接,监视页面启动器事件并且当接收到生成到当前页面(例如,到当前页面的默认视图或除默认视图之外的当前视图)的快捷方式链接的请求时,当前页面的页面启动器参数被用于创建快捷方式链接。快捷方式链接表示移动应用的已保存应用状态。快捷方式链接使用来自页面启动器事件的状态信息(例如,参数)表示已保存应用状态。例如,餐馆定位应用的页面启动器事件可包含包括特定位置和所选餐厅的参数。在创建快捷方式链接时可使用这些参数。当稍后快捷方式链接被激活时,餐馆定位应用可被启动并被返回到相同的页面和状态(例如,通过传递相同的参数或重新创建的参数)。
另一类有状态应用链接被称为快捷方式及重放链接。快捷方式及重放链接是指向移动应用的特定页面的、也支持重放用户界面事件的有状态应用链接。为了创建快捷方式及重放链接,监视页面启动器事件和用户界面事件,并且当接收到生成到当前页面或当前页面的当前视图的快捷方式及重放链接的请求时,当前页面的页面启动器参数以及与当前页面相关联的用户界面事件被用于创建快捷方式及重放链接。当快捷方式及重放链接被激活时,移动应用返回到当前页面并重放用户界面事件。快捷方式及重放链接的使用允许移动应用返回到当前页面,伴随着用户界面事件被执行(例如,用户界面操作,诸如菜单项的选择、按钮选择、表单字段输入等)。快捷方式及重放链接的使用还允许返回当前页面的当前视图(例如,通过重放用户界面事件以从当前页面的默认视图转换到当前视图)。
移动应用指的是被呈现为一系列页面的应用(也被称为app),每个页面可包含多个视图。移动应用通常与移动设备(例如,智能电话、平板等)一起使用,这是由于移动设备所处的操作环境,在该操作环境中应用转换(apptransition)是常见的(例如,其中用户频繁地打开应用、关闭应用以及在应用间切换)。然而,移动应用不限于在移动设备上运行,并且也可在其他类型的计算设备上运行(例如,膝上型计算机、台式计算机、控制台设备、物联网(IoT)设备和电器,以及其他类型的计算设备)。移动应用通常从应用商店获得。
有状态应用链接的创建可由用户发起(例如,通过接收用户发起的创建到当前页面或视图的有状态应用链接的请求)。还可以其他方式创建有状态应用链接。例如,有状态应用链接可由另一应用(例如,搜索服务)创建,该另一应用连续地收集和处理用户在移动应用中消费的内容以提供搜索能力(例如,以在到用户访问过的页面和/或视图的自动创建的有状态应用链接的历史内搜索)。
到当前页面的有状态应用链接的创建
在本文描述的技术中,可为移动应用的页面创建有状态应用链接。有状态应用链接表示移动应用的当前页面的已保存应用状态。当有状态应用链接被激活时,移动应用返回到具有已保存应用状态的当前页面。
图1是描绘到移动应用的特定页面(例如,到特定页面的默认视图)的有状态应用链接的示例创建的图100。在图100中,用户正在计算设备(例如,智能电话、平板、膝上型计算机或另一类型的计算设备)上与移动应用交互。在用户交互期间,用户首先与页面1 110交互(例如,当首次启动移动应用时显示的移动应用的初始页面),然后转换到页面2 120,然后转到页面3 130,最后转换到页面4 140。用户交互(在150、152、154和156处描绘)可包括选择按钮,选择菜单选项,在表单字段中输入信息,在地图上选择项目,以及可针对移动应用执行的其他类型的用户交互。
截获与每个页面相关联的页面启动器事件。参考图100,截获与页面1 101相关联的页面启动器事件,如112处所描绘的。从页面启动器事件,捕获页面启动器参数,如114处所描绘的。截获启动页面2 120的页面启动器事件,如122处所描绘的,并且捕获页面启动器参数,如124处所描绘的。截获启动页面3 130的页面启动器事件,如132处所描绘的,并且捕获页面启动器参数,如134处所描绘的。截获启动页面4 140的页面启动器事件,如142处所描绘的,并且捕获页面启动器参数,如144处所描绘的。
为了说明有状态应用链接的创建,接收到生成到页面4 140的有状态应用链接的请求,如160处所描绘的。例如,用户可通过执行动作(例如,选择诸如按钮或图标之类的用户界面元素,执行诸如摇动设备之类的物理动作,说出由个人数字助理应用处理的命令,或者执行某种其他动作)来发起生成有状态应用链接的请求。响应于该请求,创建到页面4140的有状态应用链接,如165处所描绘的。使用从与页面4相关联的页面启动器事件截取的页面启动器参数144(在142处描绘的)来创建有状态应用链接。因为该请求是创建到页面4140的有状态应用链接,所以仅使用与页面4 140相关联的页面启动器参数144(与先前页面相关联的页面启动器参数,包括页面启动器参数114、124和134,不被使用)。不需要先前页面的页面启动器参数,因为当前页面所需的任何参数(在此示例中为页面4 140)将与页面4140的页面启动器事件一起被传递140。例如,如果确定设备的位置是在页面2 120处,并且在后续页面上需要该位置(例如,以显示附近餐馆的地图),则该位置将在后续页面的页面启动器参数中被传递(例如,传递到页面3 130和页面4 140中)。在一些实现中,生成有状态应用链接的请求(如160处所描绘的)可来自除用户之外的源(例如,来自应用、来自操作系统、来自设备等)。
当有状态应用链接稍后被激活时,有状态应用链接使移动应用返回到具有已保存应用状态的当前页面(在此示例中为页面4 140)。已保存应用状态包括来自用于创建该有状态应用链接的页面启动器参数(在此示例中为页面启动器参数144)的状态信息。已保存应用状态还可包括其他状态信息,诸如与有状态应用链接一起保存的用户界面事件。例如,在发起保存有状态应用链接的请求(例如,选择了菜单项、在表单字段中输入了一些信息等)之前,用户可能已经在页面4 140上执行了某种用户交互。可通过监视用户界面事件来记录这种用户交互,然后将用户界面事件与有状态应用链接一起保存。在有状态应用链接被激活后,可重放用户界面事件,以完成返回到已保存应用状态的过程。
到当前页面的当前视图的有状态应用链接的创建
在本文描述的技术中,可为移动应用的特定页面的特定视图创建有状态应用链接。有状态应用链接表示移动应用的当前页面的当前视图的已保存应用状态。当有状态应用链接被激活时,移动应用返回到具有已保存应用状态的当前视图和页面。
图2是描绘到移动应用的页面的特定视图的有状态应用链接的示例创建的图200。例如,移动应用可支持多个页面,其中每个页面可包含文本、图像、图形、用户界面元素(例如,按钮、复选框、列表、菜单等),以及其他类型的应用内容。在一些应用中,页面只有一个视图,该视图也可被称为页面的默认视图。在其他应用中,页面可以有一个或多个视图。对于具有多个视图的页面,在首次显示页面时呈现的初始视图被称为默认视图。从默认视图起,其他视图可被呈现。例如,用户可导航到页面,向其呈现页面的默认视图,且然后选择用户界面元素(例如,标签、菜单项或按钮)以切换到同一页面的不同视图。
在图200中,用户正在计算设备(例如,智能电话、平板、膝上型计算机或另一类型的计算设备)上与移动应用交互。在用户交互期间,用户首先与页面1的默认视图210交互,选择页面1的另一视图215(例如,通过选择用户界面元素以切换到页面的该另一视图),转换到页面2的默认视图220,然后转换到页面3的默认视图230,且然后选择页面3的另一视图235。用户交互(在250、252、254、256和258处描绘)可包括选择按钮,选择菜单选项,在表单字段中输入信息,在地图上选择项目,以及可针对移动应用执行的其他类型的用户交互。
截获与每个页面相关联的页面启动器事件。参考图200,截获与页面1 210相关联的页面启动器事件,如212处所描绘的。从页面启动器事件,捕获页面启动器参数,如214处所描绘的。截获启动页面2 220的页面启动器事件,如222处所描绘的,并且捕获页面启动器参数,如224处所描绘的。截获启动页面3 230的页面启动器事件,如232处所描绘的,并且捕获页面启动器参数,如234处所描绘的。
除了页面启动器事件之外,还记录由用户交互(250、252、254、256和258)触发的用户界面事件。例如,可监视与用户界面事件相关联的事件处理程序以执行记录。例如,用户界面事件可以是用户对特定页面或视图上的特定按钮的选择。
为了说明有状态应用链接的创建,接收用户发起的生成到页面3的当前视图235的有状态应用链接的请求,如260处所描绘的。例如,用户可通过执行动作(例如,选择诸如按钮或图标之类的用户界面元素,执行诸如摇动设备之类的物理动作、说出由个人数字助理应用处理的命令,或者执行某种其他动作)来发起生成有状态应用链接的请求。响应于用户发起的请求,创建到页面3的当前视图235的有状态应用链接,如265处所描绘的。使用从与页面3相关联的页面启动器事件截取的页面启动器参数234(在232处描绘的)来创建有状态应用链接。因为该请求是创建到页面3的有状态应用链接,所以仅使用与页面3 230相关联的页面启动器参数234(与先前页面相关联的页面启动器参数,包括页面启动器参数214和224,不被使用)。不需要先前页面的页面启动器参数,因为当前页面所需的任何参数(在此示例中为页面3)将与页面3的页面启动器事件一起被传递。还使用与页面3(包括当前视图之前的任何视图)关联的用户界面事件来创建有状态应用链接。在此示例中,用于创建有状态应用链接的用户界面事件是与页面3的默认视图230和页面3的当前视图235(由用户交互256和258表示)相关联的用户界面事件。在一些实现中,生成有状态应用链接的请求(如260处所描绘的)可来自除用户之外的源(例如,来自应用、来自操作系统、来自设备等)。
当有状态应用链接稍后被激活时,有状态应用链接使移动应用返回到当前页面的当前视图(在此示例中为页面3的当前视图235),其具有已保存应用状态。已保存应用状态包括来自用于创建该有状态应用链接的页面启动器参数(在此示例中为页面启动器参数234)的状态信息。已保存应用状态还可包括与页面3相关联的用户界面事件。激活有状态应用链接首先使移动应用返回到页面3的默认视图230,从页面3的默认视图230起重放用户界面事件的默认视图,以使移动应用返回到页面3的当前视图235。重放用户界面事件可包括关于页面3的默认视图230和/或关于页面3的当前视图235执行用户交互。
支持有状态应用链接的创建和激活的架构
在本文描述的技术中,可为移动应用的特定页面的特定视图创建有状态应用链接。有状态应用链接表示移动应用的当前页面的当前视图的已保存应用状态。当有状态应用链接被激活时,移动应用返回到具有与有状态应用链接被保存时存在的应用状态(被称为已保存应用状态)相同的应用状态的当前视图和页面。
图3是描绘用于为移动应用创建有状态应用链接的示例架构300的图。在示例架构300中,应用开发人员合并到应用中的代码库提供对有状态应用链接的支持。代码库提供了支持有状态应用链接的创建和激活(并在一些实现中支持有状态链接验证)的各种组件。
为了支持有状态应用链接的动态生成,截取页面启动器事件(如320处描绘的),并且在与移动应用310的用户交互期间(如315处描绘的)捕获用户界面事件(如325处描绘的)。当接收到生成有状态应用链接的用户请求时(如317处描绘的),有状态链接API组件330启动创建有状态应用链接的过程,如318处描绘的。有状态应用链接的创建由有状态链接创建组件332执行,有状态链接创建组件332获得当前页面的页面启动器参数以及与当前页面相关联的用户界面事件。可针对当前页面(例如,针对当前页面的默认视图)或针对当前页面的当前视图(例如,除了默认视图之外的当前视图)执行有状态链接创建。在有状态应用链接已被创建后,有状态应用链接被输出,如336处描绘的。例如,有状态应用链接可被保存到文件、与另一用户共享、张贴到网站等。
在一些实现中,有状态链接验证组件334验证有状态应用链接。验证可在链接已被创建后、链接正被激活时或在另一时间执行。例如,一旦已创建有状态应用链接,就可在有状态应用链接被输出之前对其进行验证。作为另一示例,有状态应用链接可在其被激活之前被验证(例如,在接收到激活有状态应用链接的请求时)。
为了支持先前已创建的有状态应用链接的激活,示例架构300包括有状态链接执行组件350。例如,当接收到激活有状态应用链接的请求时(例如,通过有状态链接API组件,如340处描绘的),有状态应用链接由有状态链接执行组件350接收(例如,从先前输出的有状态应用链接检索,如336处描绘的,有状态应用链接可能传递通过有状态链接验证组件334)。使用页面启动器组件352以及事件重放组件354执行有状态应用链接,页面启动器组件352使移动应用返回到由有状态应用链接指示的当前页面,事件重放组件354重放由有状态应用链接指示的用户界面事件。如360和370处描绘的,有状态应用链接的激活使移动应用返回到具有已保存应用状态的当前页面。
在示例架构300中,应用开发人员合并到应用中的代码库提供对有状态应用链接的支持。在其他实现中,应用框架可支持有状态应用链接。在这样的实现中,应用框架支持与移动应用分开地创建和激活有状态应用链接,且因此不需要任何移动应用支持(即,不需要修改移动应用以支持有状态应用链接)。在又一些其他实现中,在操作系统级别(在应用框架级别之下)支持有状态应用链接,其也不需要任何移动应用支持。
用于动态生成和激活移动应用的有状态应用链接的方法
在本文的任何示例中,可提供用于动态地生成和激活用于移动应用的有状态应用链接的方法。例如,用户可保存到移动应用的任何给定页面或视图的有状态应用链接,而无需应用开发人员必须静态地支持给定页面或视图上的深层链接。
图4是用于为移动应用动态生成有状态应用链接的示例方法400的流程图。在410,在与移动应用的用户交互期间截获页面启动器事件。截获页面启动器事件可包括捕获页面启动器事件所使用的页面启动器参数。
在420,接收动态地生成到当前页面的有状态应用链接的请求(例如,用户发起的请求或来自诸如应用、操作系统、设备等的另一源的请求)。在一些实现中,为当前页面的当前视图生成有状态应用链接。有状态应用链接表示移动应用的已保存应用状态(例如,如由与当前页面和/或当前页面的视图相关联的页面启动器参数和/或用户界面事件所反映的)。例如,移动应用的已保存应用状态可取决于用户交互期间的一个或多个先前页面和/或视图。例如,来自先前页面的、可影响移动应用的状态的用户交互(例如,按钮按下、菜单选择等)和其他活动(例如,传感器输入)可由当前页面的页面启动器事件来表示。
在430,响应于该请求创建到当前页面的有状态应用链接。至少部分地基于截获的页面启动器事件(例如,使用页面启动器参数)来创建有状态应用链接。在一些实现中,还基于在与移动应用的用户交互期间记录的用户界面事件来创建有状态应用链接。在一些实现中,在创建有状态应用链接时仅使用与当前页面(而不是先前页面)的页面启动器事件相关联的页面启动器参数。在一些实现中,当创建有状态应用链接以及当前页面的页面启动器参数时,仅使用为当前页面记录的用户界面事件,其可与当前页面的多个视图相关联。
在440,输出有状态应用链接。例如,可保存或共享有状态应用链接。当有状态链接被激活时,它使移动应用返回到具有已保存应用状态的当前页面(例如,使用页面启动器参数和/或用户界面事件)。在一些实现中,有状态应用链接的激活使移动应用返回到当前页面的默认视图(其中有状态应用链接从当前页面的默认视图保存)或当前页面的当前视图(其中有状态应用链接从当前页面的当前视图(而不是默认视图)保存)。在其中用户界面事件被记录的实现中,有状态应用链接的激活涉及使移动应用返回到当前页面并重放用户界面事件(例如,在当前页面上和/或在当前页面的一个或多个视图上执行用户界面动作)。
图5是用于动态生成到当前移动应用页面的当前视图的有状态应用链接的示例方法500的流程图。在510,在与移动应用的用户交互期间截获页面启动器事件。截获页面启动器事件可包括捕获页面启动器事件所使用的页面启动器参数。除了页面启动器事件之外,在与移动应用的页面和/或视图的用户交互期间记录用户界面事件。
在520,接收动态地生成到当前页面的当前视图的有状态应用链接的请求(例如,用户发起的请求或来自诸如应用、操作系统、设备等的另一源的请求)。有状态应用链接表示移动应用的已保存应用状态(例如,如由与当前页面的当前视图相关联的页面启动器参数和/或用户界面事件所反映的)。例如,移动应用的已保存应用状态可取决于用户交互期间的一个或多个先前页面和/或视图。例如,来自先前页面和视图的、可影响移动应用的状态的用户交互(例如,按钮按下、菜单选择等)和其他活动(例如,传感器输入)可由当前页面的页面启动器事件来表示。
在530,响应于该请求创建到当前页面的当前视图的有状态应用链接。至少部分地基于截获的页面启动器事件(例如,使用页面启动器参数)和记录的用户界面事件来创建有状态应用链接。在一些实现中,在创建有状态应用链接时仅使用与当前页面(而不是先前页面)的页面启动器事件相关联的页面启动器参数以及与当前页面相关联的用户界面事件。
在540,输出有状态应用链接。例如,可保存或共享有状态应用链接。当有状态应用链接被激活时,其导致移动应用返回到具有已保存应用状态的当前页面的当前视图。有状态应用链接的激活使移动应用返回到当前页面,从该当前页面重放用户界面事件(例如,以在当前页面上和/或当前页面的一个或多个视图上执行用户界面动作)。
图6是用于激活移动应用的有状态应用链接的示例方法600的流程图。在610,接收有状态应用链接。例如,有状态应用链接可由移动应用、由应用框架或由操作系统接收。可从本地源(例如,从文件、从接收的电子邮件或即时消息、从操作系统、从应用等)接收有状态应用链接。还可从远程源接收有状态应用链接(例如,从有状态应用链接解析服务检索)。有状态应用链接表示在生成有状态应用链接时移动应用的已保存应用状态。有状态应用链接包括用于使移动应用返回到移动应用的特定页面的页面启动器参数。有状态应用链接还包括与特定页面相关联(例如,与特定页面的一个或多个视图相关联)的用户界面事件。
在620,使用页面启动器参数使移动应用返回到特定页面。例如,可使用来自有状态应用链接的页面启动器参数来启动页面启动器事件。
在630,重放用户界面事件。例如,可在特定页面上重放用户界面事件以在特定页面上执行用户界面动作。还可针对特定页面的多个视图重放用户界面事件。
用于创建和激活有状态应用链接的示例实现
本节描述用于创建和激活有状态应用链接的示例实现。本节中描述的技术可单独使用,也可与本文所述的其他技术结合使用。
移动应用由一组页面组成,其中每个页面通常包含一组用户界面(UI)元素,诸如按钮、复选框、列表或菜单。每个UI元素可具有相关联的事件处理程序,其在与该元素交互时被调用。整个页面可能无法一次性被用户查看;当前屏幕(例如,移动设备的集成显示器)中显示的页面部分被称为视图。页面可能包含许多视图:默认视图是用户导航到页面时屏幕上显示的内容,且用户可通过UI交互导航到同一页面内的不同视图,诸如选择选项卡、从日期选择器控件选择日期、填写搜索框、单击搜索按钮、滚动、滑动等。UI交互也可从一视图导向一分开页面的默认视图。
移动应用是有状态的,且页面/视图可具有状态依赖性。页面可使用在前一页中生成的一些数据。例如,应用的特定页面可能需要用户在先前页面上选择的位置。一视图还可依赖于另一个视图(例如,一个选项卡使用在另一选项卡中设置的标志)。特定页面的视图还可依赖于从特定页面的默认视图开始的UI动作序列。
使用此术语,可标识三大类链接(以复杂度递增的次序列出以支持它们)。
1.无状态视图:其状态不依赖于先前页面中创建的状态的视图。无状态视图可在没有任何输入参数的情况下、或者使用不依赖于先前页面/视图的一组静态定义的参数来创建。
2.有状态视图:其状态依赖于先前页中创建的应用状态的视图。
3.UI驱动的视图:由在同一页面上生成的UI事件创建的视图。
现有的移动深层链接解决方案仅支持第一类链接(无状态视图)。这些解决方案可将静态参数传递给目标视图,但无法观察应用的内部状态(它们活在应用之外)。这正是为何它们无法覆盖依赖于应用内部的状态(例如,用户选择的位置)和UI事件(例如,特定选项卡上的轻击)的有状态或UI驱动的视
图的原因。
相比之下,本文描述的有状态应用链接技术还支持到有状态视图和UI驱动视图的链接。
在一些实现中,为有状态视图提供有状态应用链接。有状态视图仅依赖于来自先前页面的数据。到有状态视图的链接指向其页面的默认视图。
应用中的页面通常通过启动器方法实例化,该启动器方法负责渲染AndroidTM中的前台(startActivity(intent,options)和在中的prepareForSegue:(uiStoryboardSegue)中的页面。此方法通常期望要渲染的页面的描述以及可能的其他参数作为参数,这些对于应用外部的进程而言是未知的。
为了创建有状态应用链接,可监视和截获调用这些页面启动器方法的页面启动器事件。例如,可监视页面启动器事件以截获输入参数和消息结构。输入参数和消息结构可被编码在有状态应用链接中,在一些实现中其在结构上类似于统一资源标识符(URI)。要激活(打开)已保存有状态应用链接,将通过使用存储在有状态应用链接中的页面启动程序参数组合的正确结构化的消息来调用页面启动器方法。通过这种方式,有状态应用链接可提供到应用中的任何页面的默认视图的快捷方式。
假设有状态应用链接在与其被创建时相同的条件下(例如,文件系统状态、传感器读数、网络等)被打开,这种方法可保证准确和安全的有状态链接。它们是准确的,因为当用户请求捕获到当前视图的链接时,链接将直接基于为该视图提供的应用状态而被导出。它们是安全的,因为这个过程没有破坏程序逻辑的风险。
在一些实现中,通过重载框架页面类的页面启动器方法(例如,AndroidActivity类的startActivity方法)来实现有状态应用链接。
在一些实现中,为UI驱动的视图提供有状态应用链接。虽然用于有状态视图的有状态应用链接能够使应用返回到特定页面(例如,特定页面的默认视图),但它们不捕获UI事件且因此无法捕获UI驱动的视图的状态。支持UI驱动的视图的有状态应用链接扩展了对捕获的UI事件的支持。
为了支持UI驱动的视图,有状态应用链接被扩展为利用快捷方式及重放方法,其中监视和记录在用户交互期间触发的UI事件。在一些实现中,为了减少开销,仅为当前页面维持UI事件的记录(例如,当访问新页面时,丢弃来自前一页面的UI事件)。这不损害覆盖范围,因为可使用仅快捷方式的链接访问当前页面的默认视图。
为了创建到UI驱动的视图的有状态应用链接,在链接中编码两段信息:(1)到当前页面的页面启动器方法的输入参数(这与仅快捷方式的链接相同),以及(2)将用户从当前页面的默认视图引导到当前视图的UI事件。当链接被调用时,首先使用其输入参数启动页面的默认视图,且然后重放UI事件以导航到目标视图。例如,可在后台重放UI事件,以便使用户直接返回到目标视图,这与仅快捷方式链接具有类似的体验。
移动应用内容可是动态的。例如,假设页面的默认视图显示了餐馆列表。用户点击第2项“Kabab Palace”以生成具有餐厅的细节和菜单的视图,并保存到该视图的链接。现在假设在一个月后,应用更新其内容,且同一餐厅“KababPalace”出现为列表中的第5项。为了处理这些变化,在重放期间,内容优先于UI结构。在此示例中,将搜索列表以查找“KababPalace”,并且如果其存在,则无论其在列表中的位置如何,都将选择它。但是,如果“KababPalace”不再出现在列表中,则系统将回退到结构化重放并点击列表的第2项。这种后备对于处理高度动态的内容是有用的,诸如到可能频繁变化的头条新闻故事的链接。
本文描述的快捷方式及重放技术提供了优于传统记录和重放工具的优点。例如,快捷方式及重放有状态应用链接不要求任何记录起始点,并且它们快得多。想象其中用户通过以下方式来搜索旧新闻的任务:首先输入一些关键字且然后指定日期范围,从而到达与指定准则匹配的新闻的页面。假设用户想要保存到具有结果的此页面的链接。传统的记录和重放工具(i)将要求用户指定任务的起始点(即输入关键字的页面)且(ii)将重放每一单个用户动作以重新创建搜索结果,即,输入搜索串、点击起始日期按钮、按下搜索按钮等。相反,使用快捷方式及重放链接,生成搜索结果页面所需的参数被截获,并通过单个函数调用,页面被加载,且只需要重放为搜索结果页面记录的那些UI交互。
图7是描绘包括仅快捷方式链接和快捷方式及重放链接的有状态应用链接的示例的图。在该图中,描绘了仅快捷方式链接710的示例。仅快捷方式链接710包括活动名称711(定义仅快捷方式链接引用的页面)并且由唯一标识符712标识。仅快捷方式链接710经由移动应用名称714标识符与特定移动应用相关联。仅快捷方式链接710的主要部分是意图加输入参数716内容,其定义页面启动器事件的内容(页面启动器参数)(在此示例中,仅快捷方式链接用于启动Android操作系统上的应用)。仅快捷方式链接710还包括标识链接的创建时间的时间戳718。
在该图中还描绘了快捷方式及重放链接720的示例。快捷方式及重放链接720包括活动名称721(定义快捷方式及重放链接引用的页面)并且由唯一标识符722标识。快捷方式及重放链接720经由移动应用名称724标识符与特定移动应用相关联。快捷方式及重放链接720包含定义页面启动器事件,以及相应的页面启动器参数的部分,该部分由意图加输入参数726内容标识。快捷方式及重放链接720还包括标识链接的创建时间的时间戳728。最后,快捷方式及重放链接720定义要被重放的UI事件730(在此示例中为要选择的特定用户界面按钮)。
验证移动应用的有状态应用链接
在本文的示例中的任一个中,可验证有状态应用链接。例如,可在有状态应用链接被创建时、在其被共享时、在其被激活时或在其他时间执行验证。
在某些情况下,有状态应用链接在稍后被访问时可能无法重新创建移动应用的就像它在创建有状态应用链接时存在的那样的整个状态。例如,考虑音乐应用,其中当前页面是用于播放特定音乐文件的页面,并且其中用户保存到当前页面的有状态应用链接。如果在保存有状态应用链接之后该特定音乐文件被删除,则有状态应用链接将不能返回到相同应用状态(例如,可显示错误,报告无法找到该特定音乐文件)。这是文件系统依赖性的示例。作为另一示例,考虑地图应用,其中当前页面基于设备的当前GPS位置显示地图以及其中用户保存到当前页面的有状态应用链接。当稍后有状态应用链接被访问并且设备位于不同的GPS位置时,页面上的地图内容将是不同的。这是传感器依赖性的示例。
可对有状态应用链接执行的一种类型的验证是检查有状态应用链接是否依赖于外部资源。外部资源是移动应用外部的资源。外部资源的示例包括文件系统资源(例如,存储在设备的存储设备上的文件或远程访问的文件)、数据库资源和传感器资源(例如,GPS、加速度计、相机等)。为了执行验证,可维持由移动应用触发的事件的日志,并且当收到请求以生成有状态应用链接时,可检查日志以查看是否存在可能影响到被保存的当前页面和/或视图的已保存应用状态的对外部资源的依赖性。
图8是用于验证移动应用的有状态应用链接的示例方法的流程图。在810,维持由移动应用触发的事件的日志。事件与移动应用的所选事件处理程序相关联。在一些实现中,所选事件处理程序仅是移动应用的与移动应用外部的资源(例如,文件系统资源、数据库资源、传感器资源等)相关联的那些事件处理程序。还可为在移动应用的不同运行时状态之间传送的数据维持日志(例如,以捕获在创建有状态应用链接时要使用的页面启动器参数)。
在820,接收动态地生成到移动应用的当前页面的有状态应用链接的请求(例如,用户发起的请求或来自诸如应用、操作系统、设备等的另一源的请求)。在移动应用支持给定页面的多个视图的情况下,可接收针对当前页面的默认视图或针对当前页面的当前视图(不同于默认视图)的有状态应用链接。
在830,响应于确定日志包含与当前页面相关联的、对外部资源(移动应用外部的资源)具有依赖性的事件,输出该依赖性的指示。例如,可在链接稍后被激活时向用户呈现警告,或者可以另一种方式输出警告(例如,输出到应用或操作系统),所述警告指示移动应用的已保存应用状态不可被完全恢复。该事件可与当前页面、与当前页面的默认视图、或者与当前页面的另一视图相关联。取决于特定依赖性,仍可创建有状态应用链接(例如,带有警告消息)或者可不创建有状态应用链接(例如,带有错误消息)。
可对有状态应用链接执行的另一种类型的验证是检查安全性、隐私和/或其他问题。当有状态应用链接被共享(例如,被发送给朋友或被张贴在网站上)时,检查安全性和隐私问题可能是重要的。例如,检查链接的安全性可包括检查链接在被激活时是否将改变移动应用的任何设置(例如,应用偏好设置)或将激活货币交易(例如,第二次购买物品);检查链接的隐私可包括检查链接是否包括任何隐私敏感信息(例如,用户名/密码信息、私人电话号码、银行帐号等)。
可在各种时间执行验证以检查安全性、隐私、兼容性和其他问题。例如,可在链接被创建时(例如,在输出有状态应用链接时)执行验证。如果链接未通过验证,则错误可被呈现(例如,陈述无法创建链接的原因)或被传递给调用实体(例如,安装在设备上的另一应用)。替代地,链接仍然可被创建但是被标识为具有问题(例如,如果链接在当前设备之外共享则仅影响链接的安全性问题)。还可在链接被共享时执行验证(例如,在链接被创建之后的某个时间)。例如,尝试共享有状态应用链接可启动对安全性、隐私、兼容性和/或其他问题的验证。验证失败可阻止链接被共享。还可在链接被激活时(例如,由同一用户在同一设备上、或者在作为链接被共享的结果在目的地设备处被接收和/或激活时)执行验证。
图9是用于验证移动应用的有状态应用链接的示例方法的流程图。在910,接收动态地生成到移动应用的当前页面的当前视图的有状态应用链接的请求。在920,响应于该请求生成有状态应用链接。
在930,响应于共享有状态应用链接的请求,对有状态应用链接执行验证。例如,用户可创建到移动应用的特定页面的特定视图的有状态应用链接。当链接被创建时,或者在稍后的时间,用户可共享有状态应用链接(例如,将其发送给朋友、张贴在网站上等)。
在940,检查验证的结果。如果验证不成功,则方法进行到950,其中采取适当的动作。例如,可拒绝共享请求和/或可输出验证不成功的指示(例如,向用户发送指示链接无法被共享的原因的消息)。在某些情况下,如果验证不成功,则仍可允许共享(例如,连同警告消息一起)。如果验证成功,则方法前进到960,其中共享有状态应用链接。
验证有状态应用链接的示例实现
本节描述验证有状态应用链接的示例实现。本节中描述的技术可单独使用,也可与本文所述的其他技术结合使用。
(一个或多个)有状态应用链接的验证可被用于在链接创建、激活或共享时向用户提供反馈。举例而言,假设用户从移动应用的页面1导航到移动应用的页面2,并希望创建到页面2的链接。稍后可调用链接以正确返回到相同的内容吗?答案取决于页面是否访问任何外部资源,诸如文件(在从页面1到页面2的页面启动器方法明确传输的参数之外)。以下四种情况说明了对外部资源的依赖性何时可导致问题。
情况(a)没有外部依赖性:激活链接可通过向页面2的启动器方法提供链接中的参数来正确打开页面2。
情况(b)页面2读取外部资源:在这种情况下,有状态应用链接(1)可能无法正确打开页面2,或者(2)可能能够打开页面,但具有可能不同的内容。如果在链接被创建后外部资源的内容被修改,则可能发生这种情况。例如,如果页面2播放来自本地设备的特定音乐文件,则如果从设备删除音乐文件,则到该页面的链接将失败。类似地,如果页面2显示本地文件的内容,则如果在链接被创建后修改了文件,则指向该页面的链接将显示不同的内容。
情况(c)页面2写入外部资源:有状态应用链接可正确打开页面2,因为外部资源的内容不影响页面2的内容。因此,即使在创建链接后修改了外部资源,页面2仍然不受影响。
情况(d)页面1读取外部资源:有状态应用链接可能或可能不正确地打开页面2。如果外部资源以某种方式影响页面2的内容,并且如果在创建链接后未修改资源的内容,则经修改的值将通过从页面1传递到页面2的参数传播,所述参数将被捕获。然而,如果在创建链接后修改了资源的内容,则修改后的值将不从页面1传播到页面2。
在上述所有情况中,在情况(b)和情况(d)中,有状态应用链接可能无法正确打开到页面2的链接。如果标识出这种情况,则可在创建链接时间期间向用户或伴随服务通知:如果修改了特定资源,则可能无法正确地重放链接。此检查可作为链接验证过程的一部分来实现。
为了执行验证以检查对外部资源的依赖性,执行移动应用的离线分析以生成针对每个事件处理程序的特定于应用的资源依赖性摘要。一旦摘要被离线构建,摘要可被安装在设备上(例如,作为支持有状态应用链接的库的一部分)并在链接被保存、激活、共享等时使用。
构建摘要涉及两个过程:静态分析和动态分析。在描述静态和动态分析时,资源是指应用外部的实体(例如,文件系统资源、数据库资源、传感器资源、经由网络访问的外部资源等),源API(source API)和沉API(sink API)是指应用框架提供以分别获取或放入数据到这些资源的API,而回调是指由应用或由框架同步或异步触发的事件处理程序。
在静态分析期间,应用的调用图被生成,且然后被递归遍历以找出从回调到源或沉API的连接路径。如果找到连接路径,则将映射<callback,source>(<回调,源>)或<callback,sink>(<回调,沉>)添加到摘要。在线地,每次链接被保存时,库记录已调用哪些回调以生成应用状态。通过这种方式,摘要可被用于查找任何所需的回调是否对外部资源有依赖性,并在反馈中报告该依赖性。请注意,一旦将库添加到应用或在框架或操作系统级别处实现改变,则反馈生成所需的开发人员工作量为零,因为所有需要链接的回调都由库直接记录。
虽然静态分析有用,但静态分析可能受到粗糙粒度的影响。例如,知道特定回调读取某个文件不足以推断此操作是否可能损害链接的正确性。如果在链接创建后该文件没有改变,则链接将正常工作。为了解决这个潜在问题,增加了动态分析。
为解决上述潜在问题,通过动态分析增强静态分析。举例来说,请考虑文件系统资源。尽管文件标识符在线不知道,但可离线捕获它们并利用它们来建立回调关系。这可通过使用UI自动化工具运行每个应用来完成。然后可收集所有被调用的回调以及文件系统访问的踪迹的日志。可确定具有相同标识符的读和写操作。然后可将获得的文件关系添加到摘要。
通过利用诸如污点跟踪的技术可进一步增强摘要。对于有状态动态链接可依赖于的每个参数,可执行污点跟踪以标识参数的源(例如,用户输入、传感器输入、文件等)。可将这种依赖性添加到摘要以处理诸如上述情况(d)等情况。
一旦为移动应用离线生成摘要,就可通过以下方式在线使用摘要。当用户与应用交互时,库持续监视被调用的所有回调,并仅记录导致文件系统或数据库写入的那些回调。在打开先前保存的链接时,将使用摘要处理需要链接的回调(链接被保存时所记录的)。可安全地忽略与文件系统写入相关联的任何需要链接的回调(如上面的情况(c)中)。相反,只有当与文件系统读取相关的任何需要链接的回调与链接被保存后记录的其他写入回调没有文件关系时,才能忽略与文件系统读取相关的任何需要链接的回调。实际上,这意味着重新创建链接状态需要读取在链接被保存之后过去修改过的文件(如上面的情况(b)和情况(d))。如果找到这样的文件依赖性,则生成反馈报告,其包括关于所标识的根本原因的细节(例如,回调信息和源/沉API)。反馈对用户或另一应用(例如,搜索服务)可能是有用的。基于反馈,可决定链接是有效还是无效,并相应地采取动作。
注意,对于所有应用,保留所有写入回调的无限日志是不切实际的。在一些实现中,维持最大时间段(例如,一小时)的运行时日志。超过最大时间段的写入可能已被系统吸收(例如,偏好的改变),以便可安全地忘记所述写入。
有状态应用链接的示例解析
在本文描述的技术中,可解析有状态应用链接。例如,可提供管理有状态应用链接的服务(例如,通过云计算平台)。该服务可支持有状态应用链接的解析(例如,由唯一有状态应用链接标识符标识)、有状态应用链接的验证以及有状态应用链接的共享。
图10是描绘用于解析有状态应用链接的示例环境1000的图。环境包括服务器环境1010(例如,云计算平台或另一类型的服务器环境)。服务器环境1010提供有状态应用链接解析服务1020。有状态应用链接解析服务1020提供用于在与利用该服务的客户端计算设备(例如,计算设备1030和1032)分离的环境中管理有状态应用链接的远程服务。在一些实现中,有状态应用链接解析服务1020存储完整的有状态应用链接(例如,有状态应用链接的全部内容,包括页面启动器参数、相关联元数据等)。例如,有状态应用链接解析服务1020可以以诸如图7中描绘的格式存储有状态应用链接。有状态应用链接解析服务1020还可存储与有状态应用链接相关联的元数据,所述元数据可包括定时信息(例如,有状态应用链接的创建时间)、在创建有状态应用链接之前使用的移动应用、与有状态应用链接相关联的关键字以及与有状态应用链接相关联的语义。有状态应用链接解析服务1020还可存储有状态应用链接使用信息,诸如用户历史(例如,用户创建、访问、共享等的有状态应用链接)。在一些实现中,有状态应用链接的全部内容仅被存储在有状态应用链接解析服务1020处(而不是存储在利用解析服务的客户端计算设备,诸如计算设备1030和1032处)。
有状态应用链接解析服务1020通过接收解析有状态应用链接并返回有状态应用链接的全部内容的请求来支持有状态应用链接的解析。例如,解析有状态应用链接的请求可包括有状态应用链接的唯一标识符(例如,可被加密的全局唯一标识符(GUID))。然后,有状态应用链接解析服务1020可查找唯一标识符以获得有状态应用链接的全部内容,然后可返回该内容。此场景在1040处被描绘,其中计算设备1030向有状态应用链接解析服务1020发送解析有状态应用链接(例如,包括GUID)的请求,有状态应用链接解析服务1020查找有状态应用链接(例如,使用GUID),并将有状态应用链接返回到计算设备1030,以用于在计算设备1030处激活有状态应用链接。
有状态应用链接解析服务1020支持在共享期间解析有状态应用链接。例如,计算设备1030可向有状态应用链路解析服务1020发送共享有状态应用链接的请求(包括唯一标识符(例如,GUID)),如1050处描绘的。有状态应用链接解析服务1020可查找唯一标识符以获得有状态应用链接的全部内容并将其发送到计算设备1032,如1052处描绘的。有状态应用链接解析服务1020(或服务器环境1010的另一组件)也可在共享过程期间执行验证,其可包括隐私验证、安全验证和/或其他类型的验证。以这种方式,有状态应用链接可被安全地存储在服务器环境1010处并且在不同的用户和/或不同的计算设备之间共享。
服务器环境1010可支持跨平台兼容性。例如,可在运行不同操作系统的计算设备之间解析和共享有状态应用链接。
服务器环境1010可支持web链接转换。例如,可在有状态应用链接解析服务1020处接收将有状态应用链接(由唯一标识符标识)转换为web链接的请求。有状态应用链接解析服务1020可查找有状态应用链接的全部内容并将其转换为对应于有状态应用链接的移动网站的web链接,然后可将该web链接返回到请求计算设备。从web链接到有状态应用链接的转换也是可能的。
服务器环境1010还可支持应用-应用转换。例如,用户可将链接保存在安装在计算设备中的应用中,并将其与未安装这样的应用的用户共享。该链接可被转换以与接收者用户可能具有的另一应用一起工作。
有状态应用链接解析服务1020可使用除唯一标识符之外的信息来标识有状态应用链接。例如,有状态应用链接解析服务1020可使用元数据来寻找特定有状态应用链接。作为示例,计算设备1030的用户可通过提供关键字来请求有状态应用链接(例如,通过说“打开到我两天前保存的餐馆的链接”告诉数字个人助理应用用户想要访问特定有状态应用链接)。有状态应用链接解析服务1020可使用关键字来使用元数据来标识有状态应用链接(例如,经由来自元数据的关键字或语义信息)。
有状态应用链接解析服务1020还可转换有状态应用链接,以便被不同版本的应用或不同版本的应用框架或不同版本的操作系统支持。例如,用户可保存特定版本的特定应用中的链接,然后在安装了相同的但具有不同版本的应用的设备上打开链接。应用链接解析服务1020可自动应用验证链接是否将在第二计算设备上工作并且可能转换链接以使其工作。
在一些实现中,有状态应用链接解析服务1020执行多个功能。第一,有状态应用链接解析服务1020提供注册功能。注册功能注册包含打开已保存应用状态所需的所有参数的链接,并返回该链接的唯一标识符。例如,有状态应用链接解析服务1020可从计算设备(例如,计算设备1020)接收包括用于链接的参数(例如,页面启动器参数)的有状态应用链接的请求,并且作为回应将有状态链接的唯一标识符发送回计算设备。第二,有状态应用链接解析服务1020提供解析功能。解析功能接收给定链路的唯一标识符,并返回为唯一标识符注册的参数(例如,类似于1040处描绘的过程)。在示例场景中,当有状态应用链接被创建时(例如,通过库或通过操作系统),链接(例如,带参数的链接)被注册到有状态应用链接解析服务1020并且唯一标识符(例如,带id的链接)被接收。然后,可在本地存储该唯一标识符或与其他标识符共享该唯一标识符。在另一示例场景中,为了使用唯一标识符激活(或打开)链接,系统使用有状态应用链接解析服务1020来检索为唯一标识符注册的参数,且然后使用这些参数返回到具有已保存应用状态的移动应用。
开发人员体验
应用开发人员可使用本文描述的技术来生成到应用的内容和特性的有状态应用链接,以供其他应用开发人员利用。开发人员可以以与用户生成链接相同的方式生成链接,且然后将语义(例如,标题、描述等)与链接相关联。此类链接可在外部发布,以供其他应用开发人员调用。例如,应用A的开发人员可公开一组链接,应用B的开发者可调用所述链接以将用户从应用B重定向到应用A。应用A可以是用于进行餐馆预订的应用,而应用B可以是用于搜寻餐馆的应用。应用A的开发人员几乎不需要开发人员的努力就可暴露有状态应用链接。
计算系统
图11示出了其中可实现所描述的创新的合适的计算系统1100的一般化示例。计算系统1100并不旨对使用范围或功能提出任何限制,因为这些创新可以在不同的通用或专用计算系统中实现。
参考图11,计算系统1100包括一个或多个处理单元1110、1115和存储器1120、1125。在图11中,该基本配置1130被包括在虚线内。处理单元1110、1115执行计算机可执行的指令。处理单元可以是通用中央处理单元(CPU)、专用集成电路(ASIC)中的处理器或任意其他类型的处理器。在多处理系统中,多个处理单元执行计算机可执行指令以提高处理能力。例如,图11示出中央处理单元1110以及图形处理单元或协处理单元1115。有形存储器1120、1125可以是可由(诸)处理单元存取的易失性存储器(例如,寄存器、高速缓存、RAM)、非易失性存储器(例如,ROM、EEPROM、闪存等)或者两者的某一组合。存储器1120、1125以适合被(诸)处理单元执行的计算机可执行指令的形式来储存实现本文中所描述的一个或多个创新的软件1180。
计算系统可具有附加的特征。例如,计算系统1100包括存储1140、一个或多个输入设备1150、一个或多个输出设备1160以及一个或多个通信连接1170。诸如总线、控制器或网络之类的互连机制(未示出)将计算系统1100的各组件互连。通常,操作系统软件(未示出)为在计算系统1100中执行的其他软件提供操作环境,并协调计算系统1100的各组件的活动。
有形存储1140可以是可移动或不可移动的,并包括磁盘、磁带或磁带盒、CD-ROM、DVD或可用于储存信息并可在计算系统1100内访问的任何其他介质。存储1140为软件1180储存指令,该软件1180实现本文中所描述的一个或多个创新。
(诸)输入设备1150可以是触摸输入设备(诸如键盘、鼠标、笔或跟踪球)、语音输入设备、扫描设备或向计算系统1100提供输入的另一设备。对于视频编码,(诸)输入设备1150可以是相机、视频卡、TV调谐卡或接受模拟或数字形式的视频输入的类似设备,或将视频样本读入计算系统1100的CD-ROM或CD-RW。(诸)输出设备1160可以是显示器、打印机、扬声器、CD刻录机或提供来自计算系统1100的输出的另一设备。
(诸)通信连接1170允许在通信介质上到另一计算实体的通信。通信介质以已调制数据信号传达诸如计算机可执行指令、音频或视频输入或输出、或其他数据之类的信息。已调制数据信号是以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非限制,通信介质可以使用电的、光学的、RF或其他载体。
各创新可在计算机可执行指令(诸如包括在程序模块中的那些),在目标现实或虚拟处理器上在计算系统中执行。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构等。如各实施例中描述的,这些程序模块的功能可以被组合,或者在这些程序模块之间拆分。针对各程序模块的计算机可执行指令可以在本地或分布式计算系统中执行。
术语“系统”和“设备”在本文被互换地使用。除非上下文明确指示,否则,术语并不暗示对计算系统或计算设备的类型的任何限制。一般说来,计算系统或计算设备可以是本地的或分布式的,并且可以包括具有实现本文中描述的功能的软件的专用硬件和/或通用硬件的任意组合。
为了呈现起见,本详细描述使用了如“确定”和“使用”等术语来描述计算系统中的计算机操作。这些术语是对由计算机执行的操作的高级抽象,且不应与人类所执行的动作混淆。对应于这些术语的实际的计算机操作取决于实现而不同。
移动设备
图12是描述一示例移动设备1200的系统示意图,该示例移动设备1200包括在1202概括示出的各种任选的硬件和软件组件。该移动设备中的任何组件1202可与任何其他组件通信,但出于容易例示的目的而未示出所有连接。该移动设备可以是各种计算设备(例如,蜂窝电话、智能电话、手持式计算机、个人数字助理(PDA)等)中的任一个,并且可允许与诸如蜂窝、卫星或其他网络的一个或多个移动通信网络1204进行无线双向通信。
图示的移动设备1200可以包括用于执行任务的控制器或处理器1210(例如,信号处理器、微处理器、ASIC或者其他控制和处理逻辑电路),所述任务诸如信号编码、数据处理、输入/输出处理、功率控制、和/或其他功能。操作系统1212可以控制各组件1202的分配和使用,并且支持一个或多个应用程序1214。应用程序可以包括常见的移动计算应用(例如,电子邮件应用、日历、联系人管理器、web浏览器、消息收发应用)、或者任何其他计算应用。用于访问应用存储的功能性1213还可以用于获取和更新应用程序1214。
所例示的移动设备1200可包括存储器1220。存储器1220可包括不可移动存储器1222和/或可移动存储器1224。不可移动存储器1222可包括RAM、ROM、闪存、硬盘或者其他公知的存储器存储技术。可移动存储器1224可包括闪存或订户身份模块(SIM)卡,这在GSM通信系统或者其他公知的存储器存储技术中是公知的,诸如“智能卡”。存储器1220可被用于储存供运行操作系统1212和应用1214的数据和/或代码。示例数据可以包括要经由一个或多个有线或无线网络被发送至和/或接收自一个或多个网络服务器或其他设备的网页、文本、图像、声音文件、视频数据或者其他数据集。存储器1220可被用来储存订户标识符和设备标识符,所述订户标识符诸如国际移动订户身份(IMSI),所述设备标识符诸如国际移动设备标识符(IMEI)。这些标识符可被传送到网络服务器以标识用户和设备。
移动设备1200可以支持一个或多个输入设备1230以及一个或多个输出设备1250,所述输入设备诸如触摸屏1232、话筒1234、相机1236、物理键盘1238和/或轨迹球1240,所述输出设备诸如扬声器1252和显示器1254。其他可能的输出设备(未示出)可包括压电或其他触觉输出设备。一些设备可供应多于一个输入/输出功能。例如,触摸屏1232和显示器1254可被组合在单个输入/输出设备中。
输入设备1230可包括自然用户界面(NUI)。NUI是使用户能以“自然”方式与设备交互、免受诸如鼠标、键盘、远程控件等输入设备所施加的人工约束的任一界面技术。NUI方法的示例包括依赖于语音识别、触摸和触控笔识别、屏幕上及邻近屏幕的姿势识别、隔空姿势、头部和眼睛跟踪、话音和语音、视觉、触摸、姿势以及机器智能的那些方法。NUI的其他示例包括使用加速度计/陀螺仪的运动姿势检测、面部识别、3D显示器、头部、眼睛和视线跟踪、沉浸式增强现实和虚拟现实系统(所有这些都提供更自然的界面),以及用于使用电场感测电极来感测脑部活动(EEG及相关方法)的技术。因此,在一个具体示例中,操作系统1212或应用1214可以包括语音识别软件作为语音用户界面的一部分,该语音用户界面允许用户经由语音命令来操作设备1200。而且,设备1200可以包括允许经由用户的空间手势进行用户交互的输入设备和软件,诸如检测和解释手势以便向游戏应用提供输入。
无线调制解调器1260可被耦合到天线(未示出),并可支持处理器1210和外部设备之间的双向通信,如本领域中清楚理解的。调制解调器1260被一般性地示出,并且可以包括用于与移动通信网络1204的蜂窝调制解调器和/或其他基于无线电的调制解调器(例如蓝牙1264或Wi-Fi 1262)。无线调制解调器1260一般被配置成与一个或多个蜂窝网络(诸如GSM网络)通信,用于单个蜂窝网络内、多个蜂窝网络之间、或者在移动设备和公共交换电话网(PSTN)之间的数据和语音通信。
移动设备还可以包括至少一个输入/输出端口1280、电源1282、卫星导航系统接收机1284(诸如全球定位系统(GPS)接收机)、加速度计1286、和/或物理连接器1290,物理连接器1290可以是USB端口、IEEE 1394(火线)端口和/或RS-232端口。图示的组件1202不是必须的或全包含的,因为任何组件可以被删除且其他组件可以被添加。
示例实现
尽管以特定的顺序次序描述所公开方法的一些的操作以便于方便呈现,但应当理解,这一描述方式包含重排,除非以下提出的具体语言要求特定的次序。例如,顺序描述的操作可以在一些情况下并行地重排或同时执行。此外,为简洁起见,附图可能不示出所公开的方法可以结合其他方法使用的各种方式。
所公开的方法中的任何方法可被实现为被储存在一个或多个计算机可读存储介质上并在计算设备(即,任何可用计算设备,包括智能电话或其他包括计算硬件的移动设备)上执行的计算机可执行指令或计算机程序产品。计算机可读存储介质是在计算环境内可访问的任何可用的有形介质(例如,诸如DVD或CD之类的一个或多个光学介质盘、易失性存储器组件(诸如DRAM或SRAM)或非易失性存储器组件(诸如闪存或硬盘驱动器))。作为示例并参考图11,计算机可读存储介质包括存储器1120和1125以及存储1140。作为示例并参考图12,计算机可读存储介质包括存储器以及存储1220、1222和1224。术语计算机可读存储介质不包括信号和载波。此外,术语计算机可读存储介质不包括通信连接,诸如1170、1260、1262和1264。
用于实现所公开技术的计算机可执行指令中的任一个以及在实现所公开的实施例期间创建和使用的任何数据可以被存储在一个或多个计算机可读存储介质上。计算机可执行指令可以是例如专用软件应用或者经由web浏览器或其他软件应用(诸如远程计算应用)访问和下载的软件应用的一部分。这种软件可以例如在单个本地计算机(例如,任何适当的商业可购买计算机)上或者使用一个或多个网络计算机在网络环境(例如,经由互联网、广域网、局域网、客户端-服务器网络(诸如云计算网络)、或者其他这样的网络)中执行。
为清楚起见,仅描述了基于软件的实现方式的特定所选方面。省略了本领域公知的其他细节。例如,应当理解,所公开的技术不限于任何具体的计算机语言或程序。例如,所公开的技术可以通过以C++、Java、Perl、JavaScript、Adobe Flash或者任何其他适当的编程语言编写的软件来实现。同样,所公开的技术不限于任何特定的计算机或硬件类型。适当计算机和硬件的特定细节是公知的,并且不需要在本公开中详细提出。
而且,基于软件的实施例(包括例如用于使计算机执行所公开方法的任一种的计算机可执行指令)中的任一者可以通过适当的通信手段被上载、下载或远程地访问。此类适当的通信手段包括例如互联网、万维网、内联网、软件应用、电缆(包括光纤电缆)、磁通信、电磁通信(包括RF、微波和红外通信)、电子通信或其他这样的通信手段。
所公开的方法、装备和系统不应以任何方式被限制。相反,本公开针对各种公开的实施例(单独和彼此的各种组合和子组合)的所有新颖和非显而易见的特征和方面。所公开的方法、装备和系统不限于任何具体方面或特征或它们的组合,所公开的实施例也不要求存在任一个或多个具体优点或者解决问题。
来自任何示例的技术可以与在任何一个或多个其他示例中所描述的技术相组合。鉴于可应用所公开的本技术的原理的许多可能的实施例,应当认识到,所示实施例仅是所公开的技术的示例,并且不应被用作是对所公开的技术的范围的限制。
Claims (20)
1.一种计算设备,包括:
处理单元;以及
存储器;
计算设备,所述计算设备经由计算机可执行指令配置为执行用于验证移动应用的有状态应用链接的操作,所述操作包括:
维持由移动应用触发的事件的日志,所述事件与所述移动应用的所选事件处理程序相关联;
接收动态生成到所述移动应用的当前页面的有状态应用链接的请求,其中所述有状态应用链接表示所述移动应用的已保存应用状态;
响应于确定所述日志包含与所述当前页面相关联的、对所述移动应用外部的资源有依赖性的事件,输出依赖性的指示;
接收共享所述有状态应用链接的请求;以及
响应于共享所述有状态应用链接的请求,对所述状态应用链接执行验证;以及
在成功验证之际,共享所述有状态应用链接。
2.如权利要求1所述的计算设备,其特征在于,所述操作还包括:
确定来自所述日志的与所述当前页面相关联的事件中的任何事件是否对文件系统资源、数据库资源、传感器资源或经由网络访问的外部资源中的一者或多者有依赖性。
3.如权利要求1所述的计算设备,其特征在于,输出依赖性的指示包括输出警告,所述警告在稍后激活所述链接时指示所述移动应用的所述已保存应用状态不可完全恢复。
4.如权利要求1所述的计算设备,其特征在于,输出依赖性的指示包括:与所述有状态应用链接相关联地保存所述依赖性的所述指示。
5.如权利要求1所述的计算设备,其特征在于,为所述当前页面的默认视图生成所述有状态应用链接。
6.如权利要求1所述的计算设备,其特征在于,为所述当前页面的不同于默认视图的当前视图生成所述有状态应用链接。
7.如权利要求1所述的计算设备,其特征在于,所述资源是文件系统资源、数据库资源或经由网络访问的外部资源。
8.如权利要求1所述的计算设备,其特征在于,所述资源是传感器资源。
9.如权利要求1所述的计算设备,其特征在于,所述移动应用的所选事件处理程序是所述移动应用的访问文件系统资源、数据库资源、传感器资源或经由网络访问的外部资源的那些事件处理程序。
10.如权利要求9所述的计算设备,其特征在于,使用所述移动应用的静态和动态分析来确定所选事件处理程序。
11.如权利要求1所述的计算设备,其特征在于,对所述状态应用链接执行验证还包括:
由于对所述移动应用外部的所述资源的依赖性而拒绝共享所述有状态应用链接的请求。
12.一种由计算设备实现的用于验证移动应用的有状态应用链接的方法,所述方法包括:
维持由移动应用触发的事件的日志,所述事件与所述移动应用的所选事件处理程序以及在所述移动应用的不同运行时状态之间传递的数据相关联;
接收动态生成到所述移动应用的当前页面的当前视图的有状态应用链接的请求,其中所述有状态应用链接表示所述移动应用的已保存应用状态;
确定来自所述日志的与所述当前页面相关联的事件中的任何事件是否对外部资源有依赖性,其中所述外部资源是文件系统资源、数据库资源、传感器资源或经由网络访问的外部资源中的一者或多者;
当所述日志包含对外部资源有依赖性的事件时,输出所述依赖性的指示;
接收共享所述有状态应用链接的请求;
响应于共享所述有状态应用链接的请求,对所述状态应用链接执行验证;以及
在成功验证之际,共享所述有状态应用链接。
13.如权利要求12所述的方法,其特征在于,输出依赖性的指示包括呈现警告,所述警告在稍后激活所述链接时指示所述移动应用的所述已保存应用状态不可完全恢复。
14.如权利要求12所述的方法,其特征在于,所述当前视图不是所述当前页面的默认视图。
15.如权利要求12所述的方法,其特征在于,所述移动应用的所选事件处理程序是所述移动应用的访问文件系统资源、数据库资源、传感器资源或经由网络访问的外部资源的那些事件处理程序。
16.一种计算机可读存储介质,存储用于在计算设备上执行的计算机可执行指令,以执行用于验证移动应用的有状态应用链接的操作,所述操作包括:
接收动态生成到所述移动应用的当前页面的当前视图的有状态应用链接的请求,其中所述有状态应用链接表示所述移动应用的已保存应用状态;
响应于所述请求,创建到所述当前页面的所述当前视图的所述有状态应用链接;
响应于共享所述有状态应用链接的请求,对所述状态应用链接执行验证;以及
在成功验证之际,共享所述有状态应用链接。
17.如权利要求16所述的计算机可读存储介质,其特征在于,执行所述验证包括确定所述有状态应用链接是否将改变所述移动应用或计算设备的安全性或隐私设置。
18.如权利要求16所述的计算机可读存储介质,其特征在于,执行所述验证包括确定所述有状态应用链接是否包含隐私信息以及是否允许共享。
19.如权利要求16所述的计算机可读存储介质,其特征在于,执行所述验证包括确定与所述有状态应用链接相关联的移动应用版本是否与所述移动应用的目标版本兼容。
20.如权利要求16所述的计算机可读存储介质,其特征在于,所述操作还包括:
在不成功验证之际,拒绝共享所述有状态应用链接的请求。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/088,028 | 2016-03-31 | ||
US15/088,028 US10257342B2 (en) | 2016-03-31 | 2016-03-31 | Validating stateful dynamic links in mobile applications |
PCT/US2017/024398 WO2017172666A1 (en) | 2016-03-31 | 2017-03-28 | Validating stateful dynamic links in mobile applications |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109074278A CN109074278A (zh) | 2018-12-21 |
CN109074278B true CN109074278B (zh) | 2021-12-07 |
Family
ID=58545213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780022486.0A Active CN109074278B (zh) | 2016-03-31 | 2017-03-28 | 验证移动应用中的有状态动态链接 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10257342B2 (zh) |
EP (1) | EP3436943B1 (zh) |
CN (1) | CN109074278B (zh) |
WO (1) | WO2017172666A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111526152B (zh) * | 2016-08-12 | 2022-02-11 | 创新先进技术有限公司 | 一种认证方法、设备以及认证客户端 |
US10749988B2 (en) * | 2017-04-24 | 2020-08-18 | Google Llc | Methods, systems, and media for retrieving content associated with links |
US10237209B2 (en) * | 2017-05-08 | 2019-03-19 | Google Llc | Initializing a conversation with an automated agent via selectable graphical element |
EP3627322A4 (en) * | 2017-06-14 | 2020-04-29 | Beijing Xiaomi Mobile Software Co., Ltd. | APPLICATION INTERACTION METHOD, INTERACTION METHOD AND DEVICE |
US10542072B1 (en) * | 2017-10-04 | 2020-01-21 | Parallels International Gmbh | Utilities toolbox for remote session and client architecture |
US10671517B2 (en) * | 2017-12-15 | 2020-06-02 | International Business Machines Corporation | Generating mobile test sequences |
WO2020037013A2 (en) * | 2018-08-14 | 2020-02-20 | Traitware, Inc. | System and method for automatically registering a verified identity in an on-line environment |
CN109117177A (zh) * | 2018-08-16 | 2019-01-01 | 安徽云才信息技术有限公司 | 一种基于user_agent的app应用发布方法 |
US11567857B1 (en) * | 2020-05-18 | 2023-01-31 | Amazon Technologies, Inc. | Bypassing generation of non-repeatable parameters during software testing |
US11609843B2 (en) * | 2021-04-14 | 2023-03-21 | At&T Intellectual Property I, L.P. | Systems and methods for validation of configurations and/or dependencies associated with software, software components, microservices, functions and the like |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101536469A (zh) * | 2006-11-22 | 2009-09-16 | 高通股份有限公司 | 链接到无线装置上的应用程序的设备及方法 |
CN102033747A (zh) * | 2009-09-23 | 2011-04-27 | 费希尔-罗斯蒙特系统公司 | 用于过程控制系统的动态链接图形消息 |
CN102341807A (zh) * | 2009-03-03 | 2012-02-01 | 微软公司 | 使用链接中的标识符的访问控制 |
CN102346687A (zh) * | 2011-09-21 | 2012-02-08 | 南京航空航天大学 | 基于Windows驱动程序的实时系统 |
CN102521022A (zh) * | 2010-10-27 | 2012-06-27 | 微软公司 | 在无状态云计算环境中操作的有状态的应用程序 |
CN102591981A (zh) * | 2011-01-06 | 2012-07-18 | 微软公司 | 提供与工具栏关联的深层链接 |
CN103034536A (zh) * | 2011-12-12 | 2013-04-10 | 微软公司 | 提高有状态应用的可用性 |
US8605097B1 (en) * | 2007-12-14 | 2013-12-10 | Nvidia Corporation | Method and system for determining the compliance encrypted and non-encrypted display outputs |
CN104363253A (zh) * | 2014-12-12 | 2015-02-18 | 北京奇虎科技有限公司 | 网站安全检测方法与装置 |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7860974B2 (en) | 2002-05-31 | 2010-12-28 | Sap Ag | Providing stateful favorites |
US7761917B1 (en) * | 2002-11-21 | 2010-07-20 | Vmware, Inc. | Method and apparatus for the detection and prevention of intrusions, computer worms, and denial of service attacks |
US7269633B2 (en) | 2002-12-06 | 2007-09-11 | International Business Machines Corporation | Method and system for playback of dynamic HTTP transactions |
AU2003240896A1 (en) * | 2003-06-06 | 2005-01-04 | Nokia Corporation | Arrangement for application message decompression |
US8549180B2 (en) * | 2004-10-22 | 2013-10-01 | Microsoft Corporation | Optimizing access to federation infrastructure-based resources |
US8006224B2 (en) * | 2005-04-15 | 2011-08-23 | Research In Motion Limited | System and method for unified visualization of two-tiered applications |
US20060248121A1 (en) * | 2005-04-15 | 2006-11-02 | Michael Cacenco | System and method for supporting packaging, publishing and republishing of wireless component applications |
MY144794A (en) * | 2005-07-28 | 2011-11-15 | Inventio Ag | Data exchange method |
WO2008072093A2 (en) | 2006-12-13 | 2008-06-19 | Quickplay Media Inc. | Mobile media platform |
US8418060B2 (en) | 2008-03-03 | 2013-04-09 | International Business Machines Corporation | Method, apparatus and computer program product for capturing and viewing stored web resource interactions |
US20100179998A1 (en) * | 2009-01-09 | 2010-07-15 | mxmd, inc. | Stateful server based social networking using mobile devices |
US20110078234A1 (en) | 2009-09-30 | 2011-03-31 | Sap Ag | Active Bookmarks |
US9231785B2 (en) * | 2009-12-18 | 2016-01-05 | At&T Intellectual Property I, L.P. | Method and apparatus for clearing hang calls |
WO2012018423A1 (en) | 2010-08-06 | 2012-02-09 | Tapjoy, Inc. | System and method for rewarding application installs |
US20130110815A1 (en) | 2011-10-28 | 2013-05-02 | Microsoft Corporation | Generating and presenting deep links |
US9195477B1 (en) | 2012-10-09 | 2015-11-24 | Sencha, Inc. | Device profiles, deep linking, and browser history support for web applications |
US9258666B2 (en) * | 2012-10-17 | 2016-02-09 | International Business Machines Corporation | State migration of edge-of-network applications |
US8510764B1 (en) | 2012-11-02 | 2013-08-13 | Google Inc. | Method and system for deep links in application contexts |
US9053476B2 (en) | 2013-03-15 | 2015-06-09 | Capital One Financial Corporation | Systems and methods for initiating payment from a client device |
US9207965B2 (en) * | 2013-06-10 | 2015-12-08 | International Business Machines Corporation | Managing multi-application contexts |
US9047147B2 (en) | 2013-06-18 | 2015-06-02 | Yahoo! Inc. | Method and system for recording and replaying user sessions in browser based applications |
US9451043B2 (en) | 2013-09-13 | 2016-09-20 | Evie Labs, Inc. | Remote virtualization of mobile apps |
US10742436B2 (en) | 2013-10-29 | 2020-08-11 | Nec Corporation | Method and system for recording a multiuser web session and replaying a multiuser web session |
US20150154644A1 (en) | 2013-12-02 | 2015-06-04 | Yahoo! Inc. | Deep linking to mobile applications |
CN106663108B (zh) | 2014-06-25 | 2020-08-04 | 谷歌有限责任公司 | 用于原生应用的深链接 |
US9621650B2 (en) | 2014-09-30 | 2017-04-11 | Google Inc | Mobile application state identifier framework |
US10296713B2 (en) * | 2015-12-29 | 2019-05-21 | Tomtec Imaging Systems Gmbh | Method and system for reviewing medical study data |
US20170289338A1 (en) * | 2016-03-31 | 2017-10-05 | Microsoft Technology Licensing, Llc | Enabling stateful dynamic links in mobile applications |
-
2016
- 2016-03-31 US US15/088,028 patent/US10257342B2/en active Active
-
2017
- 2017-03-28 CN CN201780022486.0A patent/CN109074278B/zh active Active
- 2017-03-28 WO PCT/US2017/024398 patent/WO2017172666A1/en active Application Filing
- 2017-03-28 EP EP17717285.5A patent/EP3436943B1/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101536469A (zh) * | 2006-11-22 | 2009-09-16 | 高通股份有限公司 | 链接到无线装置上的应用程序的设备及方法 |
US8605097B1 (en) * | 2007-12-14 | 2013-12-10 | Nvidia Corporation | Method and system for determining the compliance encrypted and non-encrypted display outputs |
CN102341807A (zh) * | 2009-03-03 | 2012-02-01 | 微软公司 | 使用链接中的标识符的访问控制 |
CN102033747A (zh) * | 2009-09-23 | 2011-04-27 | 费希尔-罗斯蒙特系统公司 | 用于过程控制系统的动态链接图形消息 |
CN102521022A (zh) * | 2010-10-27 | 2012-06-27 | 微软公司 | 在无状态云计算环境中操作的有状态的应用程序 |
CN102591981A (zh) * | 2011-01-06 | 2012-07-18 | 微软公司 | 提供与工具栏关联的深层链接 |
CN102346687A (zh) * | 2011-09-21 | 2012-02-08 | 南京航空航天大学 | 基于Windows驱动程序的实时系统 |
CN103034536A (zh) * | 2011-12-12 | 2013-04-10 | 微软公司 | 提高有状态应用的可用性 |
CN104363253A (zh) * | 2014-12-12 | 2015-02-18 | 北京奇虎科技有限公司 | 网站安全检测方法与装置 |
Non-Patent Citations (2)
Title |
---|
Mobile Website Development: From Site to App;Edward Iglesias .etal;《Bulletin of the American Society for information science and technology》;20111130;第38卷(第1期);18-23页 * |
基于模型的Web应用测试;缪淮扣 等;《计算机学报》;20110630;第34卷(第6期);1012-1028页 * |
Also Published As
Publication number | Publication date |
---|---|
US10257342B2 (en) | 2019-04-09 |
WO2017172666A1 (en) | 2017-10-05 |
US20170289339A1 (en) | 2017-10-05 |
EP3436943A1 (en) | 2019-02-06 |
CN109074278A (zh) | 2018-12-21 |
EP3436943B1 (en) | 2020-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170289338A1 (en) | Enabling stateful dynamic links in mobile applications | |
CN109074278B (zh) | 验证移动应用中的有状态动态链接 | |
US11799984B2 (en) | Installable web applications | |
US11169991B2 (en) | System and method for extracting and sharing application-related user data | |
US10255255B2 (en) | Customization of mobile applications using web-based technology | |
US9954746B2 (en) | Automatically generating service documentation based on actual usage | |
Wang et al. | The research of Android System architecture and application programming | |
US20130139113A1 (en) | Quick action for performing frequent tasks on a mobile device | |
KR102015739B1 (ko) | 스마트 카드 판독/기입 방법 및 디바이스 | |
US20150106723A1 (en) | Tools for locating, curating, editing, and using content of an online library | |
US20180101574A1 (en) | Searching index information for application data | |
US20180196584A1 (en) | Execution of multiple applications on a device | |
KR20150004817A (ko) | 사용자 인터페이스 웹 서비스 | |
US20210026913A1 (en) | Web browser control feature | |
CN111666581A (zh) | 数据保护方法、装置、设备及介质 | |
US9706013B2 (en) | Mobile runtime conditional sections for surveys | |
Azim et al. | uLink: user-defined deep links in mobile apps | |
CN116302047A (zh) | 配置文件的构建处理方法、电子设备及存储介质 | |
LINKS | uLink |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |