用于触摸屏设备的拖放

文档序号:1590863 发布日期:2020-01-03 浏览:30次 >En<

阅读说明:本技术 用于触摸屏设备的拖放 (Drag and drop for touch screen devices ) 是由 B·D·尼洛 D·拉哈德贾 M·T·图纳 K·A·雷维斯 C·K·托马斯 S·R·布林 于 2018-04-18 设计创作,主要内容包括:本公开涉及一种实现用于触摸屏设备的拖放的设备,该设备可包括处理器,该处理器被配置为检测在第一应用程序中选择项目的拖动手势。该处理器还可被配置为检测在拖动手势结束时用于将项目放置到第二应用程序中的触摸释放,并且响应于所检测到的触摸释放而向第二应用程序发送消息,该消息包括关于项目的多个表示的信息。该处理器还可被配置为从第二应用程序接收对多个表示中的项目的表示的请求。该处理器还可被配置为向第一应用程序发送对项目的表示的请求。该处理器还可被配置为发起从第一应用程序到第二应用程序的项目的表示的数据传输。(The present disclosure relates to a device for implementing drag and drop for a touch screen device, which may include a processor configured to detect a drag gesture to select an item in a first application. The processor may be further configured to detect a touch release for dropping the item into the second application at the end of the drag gesture, and send a message to the second application in response to the detected touch release, the message including information about the plurality of representations of the item. The processor may be further configured to receive a request from a second application for a representation of an item in the plurality of representations. The processor may be further configured to send a request for a representation of the item to the first application. The processor may also be configured to initiate a data transfer of a representation of an item from a first application to a second application.)

用于触摸屏设备的拖放

相关申请的交叉引用

本申请要求2017年5月16日提交的名称为“DRAG AND DROP FOR TOUCHSCREENDEVICES”的美国临时专利申请序列号号62/507,199的权益,该申请全文以引用方式并入本文并且构成本美国实用新型专利申请的部分以用于所有目的。

技术领域

本说明书整体涉及在触摸屏电子设备上实现拖放功能。

背景技术

拖放手势使得能够将数据从源应用程序移动或复制到目标应用程序。例如,用户可将照片的表示从第一应用程序拖动,并将照片的表示放置到第二应用程序中。然后可响应于放置而将与照片对应的数据从第一应用程序复制或移动到第二应用程序。

具体实施方式

下面示出的具体实施方式旨在作为本主题技术的各种配置的描述,并且不旨在表示可实践本主题技术的唯一配置。附图被并入本文并且构成具体实施方式的一部分。具体实施方式包括具体的细节,旨在提供对本主题技术的透彻理解。然而,本主题技术不限于本文阐述的具体细节,而是可以采用一个或多个其他具体实施来实践。在一个或多个具体实施中,以框图形式示出了结构和部件,以便避免使本主题技术的概念模糊。

本主题系统提供了一种架构,该架构能够在触摸屏电子设备上实现具有安全特征的拖放功能。

图1示出了根据一个或多个具体实施的包括可以实现本主题系统的电子设备110的示例性网络环境100。然而,并非所有所描绘的部件均可在所有具体实施中使用,并且一个或多个具体实施可包括与图中所示的那些相比附加的或不同的部件。可进行这些部件的布置和类型的变化,而不脱离本文所列出的权利要求的实质或范围。可提供附加的部件、不同的部件或更少的部件。

网络环境100包括电子设备110、服务器120和服务器122,其中服务器120和/或服务器122可包括在服务器组130中。网络106可通信地(直接或间接)将例如电子设备110与服务器120和/或服务器122和/或服务器组130耦接。在一个或多个具体实施中,网络106可以是可包括互联网或可通信地耦接到互联网的设备的互连网络。出于解释的目的,网络环境100在图1中被示出为包括电子设备110、服务器120、服务器122和服务器组130;然而,网络环境100可包括任何数量的电子设备和任何数量的服务器或包括多个服务器的数据中心。

电子设备110可包括触摸屏,并且可以是例如便携式计算设备,诸如包括触摸屏的膝上型计算机、包括触摸屏的智能电话、包括触摸屏的***设备(例如,数字相机、耳机)、包括触摸屏的平板设备、包括触摸屏的可穿戴设备(例如,手表、腕带等)、包括例如触摸屏的任何其他适当设备或者具有触控板的任何电子设备。在一个或多个具体实施中,电子设备110可不包括触摸屏,但可支持类似触摸屏的手势,诸如在虚拟现实环境或增强现实环境中。在一个或多个具体实施中,电子设备110可包括触控板。在图1中,通过举例的方式,电子设备110被描绘成具有触摸屏的平板设备。在一个或多个具体实施中,电子设备110可以是和/或可以包括下文相对于电子系统(在下文相对于图10来论述该电子系统)所论述的电子设备的全部或一部分。

电子设备110可实现本主题系统以经由触摸屏提供拖放功能。例如,电子设备110可实现下文相对于图3进一步论述的示例性拖放架构。下文相对于图2A-图2C、图2D-图2F、图2G-图2H、图2I-图2J、图2K-图2L、图6A-图6C、图7A-图7B以及图8A-图8B进一步论述经由触摸屏执行的拖放操作的示例。

服务器120和/或服务器122可为计算机网络或服务器组130的一部分,诸如在云计算或数据中心实施中。服务器120、服务器122和服务器组130可存储可在电子设备110上访问的数据,诸如照片、音乐、文本、网页和/或其中提供的内容等。在一个或多个具体实施中,电子设备110可支持拖放操作,该拖放操作涉及拖放物理存储在服务器120或服务器122上或服务器组130中的一个或多个服务器上的数据表示,诸如图像文件、文本、声音文件、视频文件、应用程序等。

图2A-图2C示出了根据一个或多个具体实施的在包括触摸屏的电子设备110上执行的示例性拖放操作。出于解释的目的,图2A-图2C所示的示例性拖放操作被描述为在图1的电子设备110上执行。然而,图2A-图2C所示的示例性拖放操作可在包括触摸屏的任何电子设备或具有触控板的任何电子设备上执行。

如图2A中所示,电子设备110的触摸屏210可同时显示两个不同的应用程序,其可被称为源应用程序230(例如,照片库应用程序或任何应用程序)和目标应用程序240(例如,文档编辑器应用程序或任何应用程序)。出于解释的目的,应用程序230、240在图2A中是并排显示的;然而,该应用程序当前可以任何方式和/或以任何取向显示。电子设备110可基于用户的手指270触摸电子设备110的触摸屏210来检测初始触摸输入。例如,可基于用户的手指270触摸在源应用程序230的图像库中显示的图像220来检测触摸输入。图像220可为存储在电子设备110上和/或服务器120或服务器122上的数据项目的表示,诸如图像文件、声音文件、视频文件等。在至少一个具体实施中,触摸输入不必触摸图像220,并且可相反靠近另一用户界面元素或靠近图像220。此外,触摸输入可以不是静态触摸输入,并且可以是示例中的手势或移动触摸输入。出于解释的目的,相对于图像220描述了拖放操作;然而,任何类型、形式或表示的数据都可从源应用程序230被拖动到目标应用程序240,反之亦然。

基于一个或多个因素,诸如触摸输入的持续时间,源应用程序230中的触摸输入可被电子设备110识别为针对拖放操作的拖动会话的发起。在一个示例中,触摸输入可对应于长触摸手势,其中触摸输入在电子设备110的触摸屏210上保持至少一个时间段。在检测到与拖动会话的发起相关联的长触摸手势时,电子设备110可取消(或放弃处理)源应用程序230中由电子设备110接收的其他当前触摸输入。在一个示例中,触摸输入的分级结构可将用于发起拖动会话的长触摸手势优先于可在拖动会话期间接收的其他类型的触摸手势,并且电子设备110可延迟对这些其他触摸的处理,直至检测到对应于将项目放置到目标应用程序240中的触摸释放。在另一个示例中,触摸输入的分级结构可将长触摸或按压手势优先,使得该手势覆盖另一手势。此外,尽管图2A示出了涉及单个手指的示例性触摸输入,但在其他情况下,电子设备110被配置为检测来自多个手指的指示发起拖动会话的触摸输入。电子设备110可支持用于发起拖动会话的任何其他类型的触摸输入。如下文参考图2G-图2H、图2I-图2J和图2K-图2L进一步详述,电子设备110支持多个拖动会话。

在一个或多个具体实施中,当发起拖动会话时和/或在拖动会话的持续时间内,仅源应用程序230可被显示。例如,可将图像220从源应用程序230拖动到目标应用程序240的快捷方式或其他表示。在一个或多个具体实施中,当发起拖动会话时,目标应用程序240可能未在执行,并且响应于将图像220放置到目标应用程序240的表示上而被执行或启动。在另一个示例中,可通过将图像220悬停在目标应用程序的表示上来启动目标应用程序240。在另一个示例中,目标应用程序240可通过用以启动目标应用程序240的另一选择或触摸输入来启动。

如图2B中所示,电子设备110检测由用户的手指270在电子设备110的触摸屏210上拖动所导致的拖动手势。拖动手势将所选择的图像220从源应用程序230拖动到目标应用程序240。图2B中所示的示例示出了正在进行的拖动会话,其中被拖动的图像220定位在源应用程序230和目标应用程序240之间。

当拖动会话正在发生并且活动时,源应用程序230和/或目标应用程序240是响应性的,并且可由用户以其他方式与之交互。具体地,电子设备110通过允许在拖动会话期间发生其他触摸输入来支持多点触摸输入。这些其他触摸输入可作为拖放架构的一部分由后台进程接收,该拖动架构将在下文参考图3更详细地描述。在该示例中,源应用程序230中的图像225可由用户在拖动会话期间移动。图像225可为存储在电子设备110上和/或服务器120或服务器122上的数据项目的表示,诸如图像文件、当前在应用程序中播放的视频(本地或通过网络106流传输)、声音文件等。该表示也可针对应用程序、数据项目、文件、文件组等。如图2B所示,电子设备110检测用于指示用户的手指290已选择图像225并且正在源应用程序230内移动图像225的独立触摸输入。在另一个示例中,也可在拖动会话期间与图像220进行交互。

如图2C中所示,在用户的手指270从电子设备110的触摸屏210抬起时,电子设备110检测到拖动手势的完成。当电子设备110检测到拖动手势的完成时,电子设备110确定目标应用程序240是否满足与对应于图像220的数据项目相关联的任何安全策略和/或数据访问策略。下文相对于图5进一步论述了实施针对拖放操作的安全策略的示例性过程。尽管已经相对于用户的手指270论述了图像220,但电子设备110被配置为支持作为拖动手势的一部分的用于拖动项目的其他类型的触摸输入。例如,电子设备110可检测来自笔/铅笔或电子触笔设备的触摸输入,以用于将项目从源应用程序230拖动到目标应用程序240作为拖动会话的一部分。

如上所述,在拖动会话期间,源应用程序230和/或目标应用程序240是响应性的,并且可基于电子设备110提供的多点触摸支持通过其他方式与用户交互。如图2C中所示,在拖动会话期间,由于电子设备110检测到与用户的手指290对应的触摸输入将图像225移动到源应用程序230内的不同位置,图像225已经从其在图2B中的初始位置被移动。

如果目标应用程序240满足与对应于图像220的数据项目相关联的任何安全策略和/或数据访问策略,则允许图像220被放置到目标应用程序240中(诸如放置到文档250中),并且对应于图像220的数据项目从源应用程序230被传输到目标应用程序240。下文相对于图4A进一步论述了执行作为拖放操作的一部分的数据传输的示例性过程。

在一个或多个具体实施中,用户可在电子设备110的触摸屏210中提供的显示器的给定部分(例如,画中画区域)上方或附近拖放(或执行另一手势,诸如轻弹手势)应用程序的表示(例如,应用程序快捷方式),并且应用程序将启动,其中应用程序窗口被显示于显示器的给定部分中,诸如,例如,结合显示器的一个或多个其他部分中的一个或多个其他应用程序的同时显示。

在一个或多个具体实施中,在执行前述数据传输时,源应用程序230和/或目标应用程序240可与用户交互和/或被放置到后台中而不破坏数据传输。此外,在执行数据传输时,可启动或打开另一个不同的应用程序。因此,在执行数据传输时支持电子设备110的正常操作,而不会对数据传输和/或系统性能造成负面影响。

在一个或多个具体实施中,源应用程序230和/或目标应用程序240可实现表格视图或集合视图,并且因此图像220可被***到目标应用程序240的表格或集合视图中。下文相对于图7A-图7B进一步论述涉及表格视图的示例性拖放操作,并且下文相对于图8A-图8B进一步论述涉及集合视图的示例性拖放操作。此外,下文相对于图9进一步论述用于执行涉及表格视图或集合视图的拖放操作的示例性过程。

在一个或多个具体实施中,用户可将文本选择从源应用程序230拖动到目标应用程序240,而不是将对应于数据项目的图像220从源应用程序230拖动到目标应用程序240。下文相对于图6A-图6C进一步论述执行用于文本选择的拖放操作的示例。下文相对于图6D进一步论述执行用于文本选择的拖放操作的示例性过程。

在一个或多个具体实施中,电子设备110提供用于指示图像220现在是拖动会话的一部分的动画,该动画可在由电子设备110在检测到特定手势之后提供。在一个示例中,手势可以是长触摸手势,其中用户在数据项目(例如,图像220)的表示上按下手指,并将手指在那里保持预先确定的时间段。在检测到该手势之后,电子设备110可例如执行显示图像220从源应用程序230的用户界面抬起的动画。电子设备110可定制此动画,以包括用于指示图像220是拖动会话的一部分的任何其他类型的动画。在一个具体实施中,源应用程序230可实现、指定或提供动画。

在一个或多个具体实施中,电子设备110提供用于指示图像220正被放置到目标应用程序240中的动画,该动画可在检测到拖动手势的完成之后(例如,当用户的手指270从电子设备110的触摸屏210抬起时)提供。例如,电子设备110可执行显示图像220从目标应用程序240的用户界面缩小和/或淡出的动画。电子设备110可定制此动画以包括任何其他类型的动画。

在一个或多个具体实施中,可基于检测到的来自用户的指示取消拖动会话的输入(或一组输入),和/或基于电子设备110确定当用户抬起他们的手指以执行放置操作时不能完成放置操作(例如,由于下文进一步论述的一个或多个安全性约束),来取消拖放操作。例如,电子设备110可检测到用户在源应用程序230内释放了拖动手势而未将图像220移动到目标应用程序240上方。在另一个示例中,电子设备110可检测到用户将图像220移动到目标应用程序240上方,但随后将图像220移动回到源应用程序230并在源应用程序230上方释放拖动手势。在检测到拖动会话的取消之后,电子设备110可提供用于指示拖动会话被取消的动画。例如,电子设备110可执行显示图像220从源应用程序230的用户界面放大和/或飞出的动画。电子设备110可定制此动画以包括任何其他类型的动画。

在一个或多个具体实施中,本主题系统允许同时拖动多个数据项目作为同一拖动会话的一部分。当发起拖动会话和/或可将附加项目添加到正在进行的拖动会话时,可一起选择数据项目。例如,当用户的手指270正在拖动图像220时,用户可使用另一手势诸如来自另一手指的轻击从源应用程序230选择要包括在拖动会话中的图像225。因此,本主题系统支持多点触摸输入,其中可同时检测多个触摸输入,诸如多个手指。另外,本主题系统允许从同一个拖动会话中移除一个或多个项目。例如,还可移除被添加至同一拖动会话的图像225。本主题系统还支持用于与包括在同一拖动会话中的数据项目进行交互的手势。例如,电子设备110可检测到用户执行了捏指放大手势,并且可放大已作为拖动会话的一部分而被包括的多个项目。此外,电子设备110可检测到用户执行了捏指缩小手势,并且可缩小已作为拖动会话的一部分而被包括的多个项目。电子设备110可支持用于与拖动会话中的项目进行交互的其他类型的触摸输入。例如,电子设备110可检测来自用户的两个手指的触摸输入,这将使得可基于两个手指触摸输入来旋转和/或缩放项目。

本主题系统支持包括多个数据项目作为拖动会话的一部分。图2D-图2F示出了根据一个或多个具体实施的在包括触摸屏的电子设备110上执行的涉及多个数据项目的示例性拖放操作。出于解释的目的,图2D-图2F所示的示例性拖放操作被描述为在图1的电子设备110上执行。然而,图2D-图2E所示的示例性拖放操作可在包括触摸屏的任何电子设备上执行。

如图2D中所示,电子设备110可基于用户的手指270触摸电子设备110的触摸屏210来检测初始触摸输入。例如,触摸输入可以是基于用户的手指270在预先确定的时间段内保持触摸图像220而检测到的长触摸手势。响应于触摸输入,电子设备110可包括图像220作为新拖动会话的一部分。

为了在拖动会话中包括另一数据项目,电子设备110可基于用户的手指290触摸电子设备110的触摸屏210来检测第二初始触摸输入。例如,触摸输入可以是基于用户的手指290触摸源应用程序230的图像库中的图像225而检测到的轻击手势。响应于第二触摸输入,电子设备110可添加图像225作为拖动会话的一部分。尽管描述了轻击手势作为示例,但源应用程序可利用用于将数据项目添加到现有拖动会话的任何手势或类型的触摸输入。这样,在用户将项目拖动到目标应用程序240之前,可将多个数据项目添加至同一拖动会话。包括在拖动会话中的多个项目可以不同的方式被布置。在一个示例中,项目可被布置成叠层,其中项目以扇形图案或网格形式组织,或者项目可被布置成基本上彼此相邻。

在一个或多个具体实施中,电子设备110可提供动画以指示已将另一数据项目添加至拖动会话。例如,所添加的项目可以动画方式显示,以向现有拖动会话项目或项目叠层移动。

如图2E中所示,电子设备110检测由用户的手指270在电子设备110的触摸屏210上拖动所导致的拖动手势。在该示例中,拖动手势将所选择的图像220和225作为同一拖动会话的一部分从源应用程序230拖动到目标应用程序240。图2E中所示的示例示出了进行中的拖动会话,其中被拖动的图像220和225定位在源应用程序230和目标应用程序240之间。虽然图2E示出了图像220被定位在图像225上方,但图像的其他布置也是可能的。在另一个示例中,图像225可在被拖动的同时被放置在图像220的右侧,反之亦然。

如图2F中所示,在用户的手指270从电子设备110的触摸屏210抬起时,电子设备110检测到拖动手势的完成。当电子设备110检测到拖动手势的完成时,电子设备110确定目标应用程序240是否满足与对应于图像220和图像225的数据项目相关联的任何安全策略和/或数据访问策略。

如果目标应用程序240满足与对应于图像220和图像225的数据项目相关联的任何安全策略和/或数据访问策略,则允许图像220和/或图像225被放置到目标应用程序240中(诸如放置到文档250中),并且对应于图像220和/或图像225的数据项目从源应用程序230被传输到目标应用程序240。如果目标应用程序240不满足与对应于图像220的数据项目和/或对应于图像225的数据项目相关联的安全策略或数据访问策略,则可部分或全部取消放置操作。

在一个或多个具体实施中,电子设备110可支持在处理其他触摸输入时同时发生的多个拖动会话。例如,用户可在多个拖动会话期间启动另一应用程序和/或与另一应用程序交互,而不会对系统性能造成负面影响。下文描述了与多个拖放操作相关的多个拖动会话的其他示例。

图2G-图2H示出了根据一个或多个具体实施的在包括触摸屏的电子设备110上执行的涉及来自不同源应用程序的不同数据项目的示例性多个拖放操作。出于解释的目的,图2G-图2H所示的示例性拖放操作被描述为在图1的电子设备110上执行。然而,图2G-图2H所示的示例性拖放操作可在包括触摸屏的任何电子设备上执行。

如图2G中所示,为了在第一拖动会话中包括数据项目,电子设备110可基于用户的手指270触摸电子设备110的触摸屏210来检测初始触摸输入。例如,触摸输入可以是基于用户的手指270在预先确定的时间段内保持触摸图像220而检测到的长触摸手势。响应于触摸输入,电子设备110可包括图像220作为与源应用程序230相关联的新拖动会话的一部分。

在图2G中,在源应用程序230(例如,web浏览器应用程序或任何应用程序)下方提供第二源应用程序235。为了在与不同源应用程序235相关联的第二拖动会话中包括对应于图像282的数据项目,电子设备110可基于用户的手指290触摸电子设备110的触摸屏210来检测第二初始触摸输入。例如,触摸输入可以是基于用户的手指290在预先确定的时间段内保持触摸图像282而检测到的长触摸手势。响应于触摸输入,电子设备110可包括图像282作为第二新拖动会话的一部分。图像282可为存储在电子设备110上和/或服务器120或服务器122上的数据项目的表示,诸如图像文件、声音文件等。

电子设备110可检测由用户的手指270在电子设备110的触摸屏210上拖动而导致的第一拖动手势。在该示例中,拖动手势将图像220作为第一拖动会话的一部分从源应用程序230拖动到目标应用程序240。

电子设备110可检测由用户的手指290在电子设备110的触摸屏210上拖动而导致的第二拖动手势。在该示例中,拖动手势将图像282的表示作为第二拖动会话的一部分从源应用程序235拖动到目标应用程序240。

如图2H中所示,在用户的手指270从电子设备110的触摸屏210抬起时,电子设备110检测到第一拖动手势的完成。当电子设备110检测到第一拖动手势的完成时,电子设备110确定目标应用程序240是否满足与对应于图像220的数据项目相关联的任何安全策略和/或数据访问策略。

类似地,在用户的手指290从电子设备110的触摸屏210抬起时,电子设备110检测到第二拖动手势的完成。当电子设备110检测到第二拖动手势的完成时,电子设备110确定目标应用程序240是否满足与对应于图像282的数据项目相关联的任何安全策略和/或数据访问策略。

如果目标应用程序240满足与对应于图像220和图像225的数据项目相关联的任何安全策略和/或数据访问策略,则允许图像220和/或图像225被放置到目标应用程序240中(诸如放置到文档252中),并且对应于图像220和/或图像282的数据项目从源应用程序230和/或源应用程序235被传输到目标应用程序240。在图2H的示例中,图像220的数据传输可为移动操作,其中图像220从源应用程序230被移动到目标应用程序240。相比之下,图像282的数据传输可为复制操作,其中图像282从源应用程序235被复制到目标应用程序240并作为复制图像284***到目标应用程序240中。

图2I-图2J示出了根据一个或多个具体实施的在包括触摸屏的电子设备110上执行的涉及从一个源应用程序到不同目标应用程序的多个数据项目的示例性多个拖放操作。出于解释的目的,图2I-图2J所示的示例性拖放操作被描述为在图1的电子设备110上执行。然而,图2I-图2J所示的示例性拖放操作可在包括触摸屏的任何电子设备上执行。

如图2I中所示,为了在第一拖动会话中包括数据项目,电子设备110可基于用户的手指270触摸电子设备110的触摸屏210来检测初始触摸输入。例如,触摸输入可以是基于用户的手指270在预先确定的时间段内保持触摸图像220而检测到的长触摸手势。响应于触摸输入,电子设备110可包括图像220作为与源应用程序230相关联的新拖动会话的一部分。

为了在与相同源应用程序230相关联的第二拖动会话中包括对应于图像225的数据项目,电子设备110可基于用户的手指290触摸电子设备110的触摸屏210来检测第二初始触摸输入。例如,触摸输入可以是基于用户的手指290在预先确定的时间段内保持触摸图像225而检测到的长触摸手势。响应于触摸输入,电子设备110可包括图像225作为与源应用程序230相关联的第二新拖动会话的一部分。

电子设备110可检测由用户的手指270在电子设备110的触摸屏210上拖动而导致的第一拖动手势。在该示例中,拖动手势将图像220作为第一拖动会话的一部分从源应用程序230拖动到目标应用程序240。

电子设备110可检测由用户的手指290在电子设备110的触摸屏210上拖动而导致的第二拖动手势。在该示例中,拖动手势将图像225作为第二拖动会话的一部分从源应用程序230拖动到不同目标应用程序245(例如,呈现应用程序或任何应用程序)。

如图2J中所示,在用户的手指270从电子设备110的触摸屏210抬起时,电子设备110检测到第一拖动手势的完成。当电子设备110检测到第一拖动手势的完成时,电子设备110确定目标应用程序240是否满足与对应于图像220的数据项目相关联的任何安全策略和/或数据访问策略。

类似地,在用户的手指290从电子设备110的触摸屏210抬起时,电子设备110检测到第二拖动手势的完成。当电子设备110检测到第二拖动手势的完成时,电子设备110确定目标应用程序245是否满足与对应于图像225的数据项目相关联的任何安全策略和/或数据访问策略。

如果目标应用程序240满足与对应于图像220的数据项目相关联的任何安全策略和/或数据访问策略,则允许图像220被放置到目标应用程序240中(诸如放置到文档255中),并且对应于图像220的数据项目从源应用程序230被传输到目标应用程序240。

如果目标应用程序245满足与对应于图像225的数据项目相关联的任何安全策略和/或数据访问策略,则允许图像225被放置到目标应用程序245中,并且对应于图像225的数据项目从源应用程序230被传输到目标应用程序245。

图2K-图2L示出了根据一个或多个具体实施的在包括触摸屏的电子设备110上执行的涉及从不同源应用程序到不同目标应用程序的数据项目的示例性多个拖放操作。出于解释的目的,图2K-图2L所示的示例性拖放操作被描述为在图1的电子设备110上执行。然而,图2K-图2L所示的示例性拖放操作可在包括触摸屏的任何电子设备上执行。

如图2K中所示,为了在第一拖动会话中包括数据项目,电子设备110可基于用户的手指270触摸电子设备110的触摸屏210来检测初始触摸输入。例如,触摸输入可以是基于用户的手指270在预先确定的时间段内保持触摸图像220而检测到的长触摸手势。响应于触摸输入,电子设备110可包括图像220作为与源应用程序230相关联的新拖动会话的一部分。

在图2K中,在源应用程序230(例如,web浏览器应用程序或任何应用程序)下方提供第二源应用程序235。为了在与不同源应用程序235相关联的第二拖动会话中包括对应于图像282的数据项目,电子设备110可基于用户的手指290触摸电子设备110的触摸屏210来检测第二初始触摸输入。例如,触摸输入可以是基于用户的手指290在预先确定的时间段内保持触摸图像282而检测到的长触摸手势。响应于触摸输入,电子设备110可包括图像282作为第二新拖动会话的一部分。

电子设备110可检测由用户的手指270在电子设备110的触摸屏210上拖动而导致的第一拖动手势。在该示例中,拖动手势将图像220作为第一拖动会话的一部分从源应用程序230拖动到目标应用程序240。

电子设备110可检测由用户的手指290在电子设备110的触摸屏210上拖动而导致的第二拖动手势。在该示例中,拖动手势将图像282的表示作为第二拖动会话的一部分从源应用程序235拖动到第二目标应用程序245。

如图2L中所示,在用户的手指270从电子设备110的触摸屏210抬起时,电子设备110检测到第一拖动手势的完成。当电子设备110检测到第一拖动手势的完成时,电子设备110确定目标应用程序240是否满足与对应于图像220的数据项目相关联的任何安全策略和/或数据访问策略。

类似地,在用户的手指290从电子设备110的触摸屏210抬起时,电子设备110检测到第二拖动手势的完成。当电子设备110检测到第二拖动手势的完成时,电子设备110确定第二目标应用程序245是否满足与对应于图像282的数据项目相关联的任何安全策略和/或数据访问策略。

如果目标应用程序240满足与对应于图像220的数据项目相关联的任何安全策略和/或数据访问策略,则允许图像220被放置到目标应用程序240中(诸如放置到文档256中),并且对应于图像220的数据项目从源应用程序230被传输到目标应用程序240。

如果目标应用程序245满足与对应于图像282的数据项目相关联的任何安全策略和/或数据访问策略,则允许图像282被放置到目标应用程序245中,并且对应于图像282的数据项目从源应用程序235被传输到目标应用程序245。

在图2L的示例中,图像220的数据传输可为移动操作,其中图像220从源应用程序230被移动到目标应用程序240。相比之下,图像282的数据传输可为复制操作,其中图像282从源应用程序235被复制到第二目标应用程序245。

图3示出了根据一个或多个具体实施的可在包括触摸屏的电子设备110上实现的示例性拖放架构300。出于解释的目的,拖放架构300被描述为通过图1和图2的电子设备110诸如通过电子设备110的处理器和/或存储器来实现;然而,拖放架构300可通过包括触摸屏的任何其他电子设备来实现。然而,并非所有所描绘的部件均可在所有具体实施中使用,并且一个或多个具体实施可包括与图中所示的那些相比附加的或不同的部件。可进行这些部件的布置和类型的变化,而不脱离本文所列出的权利要求的实质或范围。可提供附加的部件、不同的部件或更少的部件。

拖放架构300包括拖放管理器310,该拖放管理器被配置为管理与源应用程序230和目标应用程序240之间的拖动事件对应的拖动会话。拖放架构300支持多个拖动会话。具体地,拖放管理器310被配置为管理与源应用程序235和目标应用程序245之间的拖动事件对应的独立拖动会话。出于解释的目的,下面的论述参考了与源应用程序230和目标应用程序240相关联的拖动会话;然而,下面的论述也可适用于与源应用程序235和目标应用程序245相关联的拖动会话。

在一个或多个具体实施中,拖放管理器310可被实现为用户界面(UI)过程,诸如在电子设备110上运行的具有系统级权限的应用程序或守护进程,包括与应用程序相关联的渲染上下文,该渲染上下文使得应用程序能够在触摸屏上显示的任何用户界面上绘制或渲染,并且还允许应用程序创建与拖动事件相关联的拖动会话。在一个示例中,与应用程序(例如,拖放管理器310)相关联的渲染上下文是位于触摸屏上所显示的任何用户界面之上的透明全屏层。

在一个或多个具体实施中,拖放管理器310在拖动会话期间管理拖动项目预览。例如,在被拖动时,来自源应用程序的项目可被提供为与项目的图形表示对应的预览。例如,根据项目的类型,项目的预览可以是缩略图图像、视频剪辑或任何其他适当的图形表示。当项目从源应用程序被拖动到目标应用程序中时,在目标应用程序中呈现的项目的预览可以是与源应用程序中的预览不同的图形表示。拖放管理器可提供动画,该动画在项目从源应用程序被拖动到目标应用程序上方时过渡或变化为不同表示,反之亦然。此外,可动态生成源应用程序230和/或目标应用程序240中的每个预览,使得当预览被呈现于该应用程序内时,该预览从第一类型的图形表示过渡到第二类型的图形表示等。在另一个示例中,拖放管理器310在拖动会话期间可能不提供项目的预览,或者仅当项目仅在源应用程序或仅在目标应用程序中被拖动时提供预览。

在一个具体实施中,拖放管理器310可使用门户以在目标应用程序240中提供项目的预览。门户是指对由源应用程序230指定的GUI对象的逐像素引用,其使得拖放管理器310能够访问和处理指定GUI对象,以用于在目标应用程序240中提供项目的预览。因此,门户不是应用程序的指定GUI对象的复制。相反,门户“指向”或“引用”应用程序的GUI对象,诸如在渲染树中。这种类型的门户的示例更详细地公开于2017年5月16日提交的名称为“CoreAnimation Portals”的美国临时专利申请(代理人案卷号P34669US1),该申请据此全文以引用方式并入以用于所有目的。

参考图2A,拖动事件包括在源应用程序230中选择项目(例如,图像220)的初始触摸输入。初始触摸输入可以是指示拖动事件开始以及发起为拖动事件创建新拖动会话的长触摸或按压手势。在至少一个具体实施中,源应用程序230(或任何源应用程序)仅通过拖放管理器310发起拖动会话,并且没有与目标应用程序240(或任何目标应用程序)的直接通信信道。拖动事件还包括移动项目的拖动手势,如图2B所示,以及在拖动手势结束时用于将项目放置到目标应用程序240中的触摸释放,如图2C所示。为拖动会话分配拖动会话标识符,在一些情况下,如本文进一步解释的那样,该会话标识符被用于关联新的拖动触摸。如本文所用,项目(或数据项目)可指文件、文件中的内容、文件组、文本、应用程序或包括数据或数据链接(本地或基于云端的)的其他对象。此类项目可作为拖放操作的一部分被选择并作为相关联的拖动会话的一部分而被包括。此外,可为每个项目(或数据项目)分配其自己的唯一项目标识符,该唯一项目标识符可用于在拖动会话期间标识项目。

如上所述,多个拖动会话由拖放管理器310支持。如之前参考图2K和图2L所述,与源应用程序235和目标应用程序245相关联的拖动事件可被分配有用于独立拖动会话的对应的拖动会话标识符。源应用程序235(或任何源应用程序)仅通过拖放管理器310发起拖动会话,并且没有与目标应用程序245(或任何目标应用程序)的直接通信信道。参考图2K,与源应用程序235相关联的拖动事件包括在源应用程序235中选择项目(例如,可与唯一项目标识符相关联的图像282)的初始触摸输入(例如,指示拖动事件开始和发起新拖动会话的长触摸手势)。拖动事件还包括移动项目的拖动手势,以及在拖动手势结束时用于将项目放置到目标应用程序245中的触摸释放,如图2L所示。

拖放架构300包括触摸事件管理器320,该触摸事件管理器被配置为在触摸事件通过拖放架构300被接收时管理触摸事件。触摸事件管理器320可被实现为在电子设备110上执行的后台进程(例如守护进程),并且被配置为接收进入本主题系统的所有触摸输入。例如,触摸事件管理器320可检测指示给定源应用程序中的拖动事件开始的初始触摸输入(例如,源应用程序230或235中的长触摸手势),并且将触摸输入转发至拖放管理器310以用于处理和创建新拖动会话及其相关联的拖动会话标识符。在检测到与拖动会话的发起相关联的长触摸手势时,触摸事件管理器320可取消(或放弃处理)源应用程序中接收的其他当前触摸输入。在一个示例中,触摸输入的分级结构可将用于发起拖动会话的长触摸手势优先于可在拖动会话期间接收的其他类型的触摸手势,并且触摸事件管理器320可延迟对这些其他触摸的处理,直至检测到对应于将项目放置到目标应用程序240中的触摸释放。在另一个示例中,触摸输入的分级结构可使长触摸或按压手势优先,使得该手势覆盖另一手势。

触摸事件管理器320可接收来自拖放管理器310的请求,以与拖动事件共存的专用拖动事件或分离的拖动事件的形式生成拖动事件的副本。专用拖动事件被提供给拖放管理器310,该拖放管理器被进一步配置为管理专用拖动事件并通过专用拖动事件接收新拖动触摸(例如,对应于新拖动会话)。这些新拖动触摸可与拖动会话的拖动会话标识符相关联。在一个或多个具体实施中,触摸事件管理器320提供界面,该界面利用进程间通信(IPC)供拖放管理器310提供与特定拖动会话标识符相关联的触摸输入。

在拖动会话期间,当接收到已被拖动会话标识符标记的触摸输入时,触摸事件管理器320还被配置为执行拖动事件的命中测试以确定目标应用程序240(或任何目标应用程序)是否被配置和/或被授权从拖动事件接收项目。如本文所述,命中测试是指用于确定电子设备110(或任何电子设备)的触摸屏上的当前触摸输入的位置是否与屏幕上的对应应用程序相交的操作。在至少一个具体实施中,对每个触摸输入进行命中测试,以将对应的应用程序确定为针对所放置项目的潜在目标应用程序。命中测试可受到速率限制,以减轻拖放架构300和/或电子设备110的潜在性能问题。在一个具体实施中,触摸事件管理器320可基于拖动会话标识符来确定针对拖动会话的所有触摸的相应位置,计算触摸位置的质心,以及对质心的位置执行命中测试以确定针对所放置项目的潜在目标应用程序。

在一个或多个具体实施中,触摸事件管理器320将新的唯一标识符与给定拖动事件的触摸路径相关联,并使用新的唯一标识符来验证作为拖动事件一部分的新接收的触摸输入是否匹配触摸事件管理器320已知的现有触摸输入。在拖动会话期间,触摸事件管理器320可将标记有拖动会话标识符的触摸输入转发至拖放管理器310、源应用程序230和/或目标应用程序240。在一个或多个具体实施中,当接收到与拖动会话标识符相关联的触摸输入时,目标应用程序240向拖放管理器310请求XPC连接(例如,具有沙箱特征的一种进程间通信机制)。XPC连接可提供沙箱环境,限制可访问信息的类型,以便目标应用程序240与拖放管理器310通信。例如,在拖动事件结束之前,拖放管理器310将不释放关于项目的一个或多个表示的任何数据。

在图2C所示的拖动手势结束时由用户的手指270进行触摸释放时(指示拖动事件的结束),触摸事件管理器320通知拖放管理器310和目标应用程序240。

使用触摸事件管理器320向拖放管理器310和目标应用程序240(或任何目标应用程序)递送触摸事件,有利地使得拖放管理器310和目标应用程序240(或任何目标应用程序)能够以最小的延迟(例如,几乎同时)接收触摸事件。此外,提供与由目标应用程序240(或任何目标应用程序)所接收的其他触摸事件的同步,以使目标应用程序240能够正常地对不是拖动事件的一部分的任何附加触摸输入进行操作。

拖放管理器310可被配置为当被接受以由目标应用程序240接收时通知目标应用程序240拖动事件已经结束并且项目可被放置到目标应用程序240中。在一个或多个具体实施中,目标应用程序240可向拖放管理器310指示其希望接收所放置的项目。例如,拖放管理器310可从目标应用程序240接收与拖动事件相关联的项目对应的信息的请求。该请求可包括例如拖动会话标识符。

拖放管理器310可从源应用程序230请求关于项目的附加信息,诸如该项目的可用表示的列表。例如,每个表示可为项目的不同数字版本,并且列表可按保真度或质量水平进行排序。拖放管理器310可从源应用程序230接收对应于项目的附加信息,并且可向目标应用程序240提供对应于项目的附加信息。目标应用程序240然后可利用所接收的附加信息来针对项目的特定表示发起数据传输,下文将相对于图4A进一步论述该数据传输。

拖放管理器310控制信息向任何目标应用程序的流动,并且在拖放管理器310已确定应当允许该请求之前,不可履行目标应用程序的任何请求。

在一个或多个具体实施中,作为安全特征,拖放架构300可向目标应用程序240提供关于被拖动项目的最少信息或不提供关于被拖动项目的信息,直到拖放架构300验证目标应用程序240被授权/配置为接收被拖动项目之后,和/或直到目标应用程序240接受对被拖动项目的接收之后。因此,在拖动会话期间,目标应用程序240可能知道某一项目被拖动到其上方,但目标应用程序240可能无权访问关于被拖动项目的任何特定信息。

图4A示出了根据一个或多个具体实施的用于在包括触摸屏的电子设备110上执行作为拖放操作的一部分的数据传输的示例性过程400的流程图。出于解释的目的,本文主要参考图1和图2的电子设备110,尤其是参考上文在图3中所描述的拖放管理器310来描述过程400。然而,过程400不限于图1和图2的电子设备110,并且过程400的一个或多个框(或操作)可由其他合适设备的一个或多个其他部件来执行。进一步出于解释的目的,过程400的框在本文中被描述为顺序地或线性地发生。然而,过程400的多个框可并行发生。此外,过程400的框不必按所示次序执行,并且/或者过程400的一个或多个框不必执行和/或可由其他操作替代。

如图3中所述,拖放管理器310提供了一种用于在拖动会话期间限制源应用程序230和目标应用程序240之间的通信的机制,直到对被放置到目标应用程序240中的项目发起数据传输。这样,源应用程序230和目标应用程序240直接与拖放管理器310通信但彼此不通信,直到发起数据传输。

如图4A中所示,拖放管理器310检测到在第一应用程序中选择项目的拖动手势(402)。所选择的项目可以是图2A中的源应用程序230中的图像220。拖放管理器310检测在拖动手势结束时用于将项目放置到第二应用程序中的触摸释放(404)。第二应用程序可以是项目被放置到其中的目标应用程序240,如图2C中所示。在一个具体实施中,作为安全特征,拖放管理器310可检查目标应用程序的进程标识符(ID),以确保与拖动会话的拖动事件相关联的触摸释放对应于预期目标应用程序。

拖放管理器310响应于所检测到的触摸释放向第二应用程序发送消息,该消息包括描述项目的多个不同表示的信息(406)。例如,源应用程序230可提供包括具有不同保真度或质量的图像220(例如,原始图像、PDF、PNG、JPG、纯文本等)的多个表示的列表。列表中的每个表示能够以统一类型标识符(UTI)的形式指示,该统一类型标识符是用于唯一地标识给定类别或类型的项目的相应文本字符串。在一个或多个具体实施中,目标应用程序(例如,目标应用程序240)负责提供UTI一致性信息以指示目标应用程序可接受项目的表示。可以利用在拖放管理器310和目标应用程序240之间建立的XPC连接来发送包括描述项目的表示的信息的消息。

为了提供额外的灵活性,在一个或多个具体实施中,拖放架构300提供将文件映射到对应UTI中所指定的文件类型的服务。给定应用程序可利用该服务来注册新的UTI或文件类型,并且该应用程序还可使用该服务来扩展现有的UTI或文件类型(例如,以与其他一个或多个文件相关联)。

拖放管理器310从第二应用程序接收对多个不同表示中的项目的表示的请求(408)。尽管论述了单个请求的表示,但应当理解,目标应用程序240还可以请求项目的多个表示。在一个示例中,目标应用程序240可选择具有由源应用程序230提供的最高保真度的特定表示。在另一个示例中,所请求的项目的表示取决于上下文(例如,将以图形方式渲染所接收的表示的目标应用程序可选择与另一目标应用程序不同的表示,该另一目标应用程序将不以图形方式渲染所接收的表示)。

拖放管理器310向第一应用程序发送对项目的表示的请求(410)。拖放管理器310发起从第一应用程序到第二应用程序的项目的表示的数据传输(412)。在一个具体实施中,在拖动会话期间,拖放管理器310可具有与源应用程序230的连接。然而,直到在拖动会话完成之后才向目标应用程序240提供连接,以防止未经授权或无意的数据传输发生,该安全特征由图3的拖放架构300启用。在源应用程序230未执行(例如,崩溃或不再运行)的示例中,拖放管理器310可结束拖动会话和/或取消数据传输。

在拖放管理器310检测到已发生触摸释放并且目标应用程序240已请求项目的表示之后,拖放管理器310可提供与目标应用程序240的连接(或到连接端点的扩展)以执行项目的表示的数据传输。在一个具体实施中,作为安全特征,拖放管理器310还可以设定完成数据传输的超时并实施超时(例如,通过关闭连接和/或停止数据传输)以防止发生长数据传输。拖放管理器310可检测数据传输何时完成,并且可在此时断开源应用程序230和目标应用程序240之间的连接。

在数据传输期间,拖放管理器310可提供占位符预览,该占位符预览是指示或显示数据传输进度的图形表示。数据传输完成后,可显示项目的表示,从而替换占位符预览。可以实现将占位符预览变化为该项目的表示的动画。

另外,可提供用于执行数据传输的一个或多个其他具体实施。当数据传输正在进行时,源应用程序230可被放置到后台中,并且随着时间的推移,可限制其访问由拖放架构300提供的将对数据传输产生负面影响的资源。此外,针对大文件或位于网络106上(例如服务器120上)的文件的数据传输可能需要很长时间才能完成。

例如,为了缓解此类问题,可提供文件提供器以处理数据传输。文件提供器可以是提供文件或数据的扩展(例如,非UI后台进程或守护进程),并且可用于从其他容器(例如,其中在本地或在服务器120上存储文件或数据)打开文档。在一个具体实施中,文件提供器可以作为安全特征被包括在沙箱环境中。

图4B示出了根据一个或多个具体实施的使用文件提供器在包括触摸屏的电子设备110上完成作为拖放操作的一部分的数据传输的示例性过程420的流程图。出于解释的目的,本文主要参考图1和图2的电子设备110,尤其是参考上文在图3中所描述的拖放管理器310来描述过程420。然而,过程420不限于图1和图2的电子设备110,并且过程420的一个或多个框(或操作)可由其他适当设备的一个或多个其他部件来执行。进一步出于解释的目的,过程420的框在本文中被描述为顺序地或线性地发生。然而,过程420的多个框可并行发生。此外,过程420的框不必按所示次序执行,并且/或者过程420的一个或多个框不必执行和/或可由其他操作替代。

拖放管理器310接收对项目的表示的请求(422)。拖放管理器310向源应用程序230发送对项目的表示的请求(424)。响应于对项目的特定表示的请求,源应用程序230可向拖放管理器310提供指向完成项目的表示的数据传输的文件提供器的URL或链接。拖放管理器310接收指向完成项目的表示的数据传输的文件提供器的该URL或链接(426)。然后,拖放管理器310可将指向文件提供器的该URL或链接发送到目标应用程序240(428)。接下来,目标应用程序240可经由URL从文件提供器请求文件或数据。有利的是,拖放管理器310此时可结束拖动会话,并依赖于文件提供器来完成所请求的数据的数据传输。响应于来自目标应用程序240的请求,文件提供器可为所请求的项目的表示发起到目标应用程序240的数据传输。

在一个或多个具体实施中,拖放管理器310可在文件提供器的数据库中创建访问控制列表(ACL),以指示共享和/或可访问一个或多个特定文件的一对特定进程(例如,源应用程序230和目标应用程序240)。然后,文件提供器可在接收到来自目标应用程序240的针对该特定文件的请求之后检查ACL,以确保允许访问该文件。在一个具体实施中,可提供文件协调进程(例如守护进程或后台进程)以监测数据传输的状态,并且在传输完成时或当其中一个进程崩溃时通知文件提供器。一旦通知数据传输已完成,文件提供器就会从文件提供器数据库中移除ACL。

在一个或多个具体实施中,为就地编辑位于网络106上的远程(或云)文件或文档提供了支持(例如,在服务器120上或以其他方式不在电子设备110的本地)。该示例提供与文件提供器的协调以将更改上载回到服务器120,或上载到包括服务器120的计算机的网络或云中。目标应用程序240可以请求就地打开云文件。目标应用程序240可接收对所请求的云文件的引用,并且经由对云文件的引用进行更改。文件提供器可以收集这些更改,并将更改上载回云,以使用更改来更新云文件。

在一个或多个具体实施中,拖放架构300支持策略创建,以用于排除目标应用程序以避免接收任何已放置项目和/或避免接收一种或多种特定类型的已放置项目。例如,可阻止数据在特定源应用程序和特定目标应用程序之间移动。此外,可提供某些策略以使得仅允许在受管理应用程序之间进行拖放(例如,在企业配置中)。在一个具体实施中,此类策略可由拖放管理器310基于指示源应用程序和目标应用程序处于同一受管理配置中的信息来实施。此外,源应用程序可控制相对于拖动事件向其他应用程序公开多少以及哪些元数据(例如,与项目的表示相关的信息)。对于第三方应用程序,可提供使用授权密钥和代码签名的授权检查以确定对已放置项目的访问权限。

拖放架构300提供对添加项目和/或从现有拖动会话移除项目的支持。如上所述,可为每个拖动会话分配拖动会话标识符,并且还可为拖动会话中包括的每个项目分配其自己唯一的标识符。以下论述涉及用于将项目添加到现有拖动会话的示例性过程430,以及用于从现有拖动会话中移除项目的示例性过程440。

图4C示出了根据一个或多个具体实施的用于向包括触摸屏的电子设备110上的现有拖动会话添加项目的示例性过程430的流程图。出于解释的目的,本文主要参考图1和图2的电子设备110,尤其是参考上文在图3中所描述的拖放管理器310来描述过程430。然而,过程430不限于图1和图2的电子设备110,并且过程430的一个或多个框(或操作)可由其他适当设备的一个或多个其他部件来执行。进一步出于解释的目的,过程430的框在本文中被描述为顺序地或线性地发生。然而,过程430的多个框可并行发生。此外,过程430的框不必按所示顺序执行,并且/或者过程430的一个或多个框不必执行和/或可由其他操作替代。

在拖动会话期间,拖放管理器310接收向拖动会话添加项目的请求(432)。向拖动会话添加项目的请求可来自图2D中的源应用程序230,并且还可包括与拖动会话相关联的拖动会话标识符。参考图2D,可以在已相对于图像220发起拖动会话之后并且用于选择图像225的触摸输入(例如轻击手势)由源应用程序230接收之后进行请求,该源应用程序将该触摸输入解释为将所选择的图像225添加到拖动会话的请求。

拖放管理器310确定所添加项目的标识符(434)。在一个具体实施中,由源应用程序230提供的每个项目与唯一标识符相关联,并且可包括该唯一标识符作为来自源应用程序230的请求的一部分以将该项目添加至拖动会话。

拖放管理器310将所添加项目的标识符与拖动会话相关联(436)。在一个具体实施中,拖动会话可包括与拖动会话中包括的一个或多个项目对应的数据结构(例如,阵列或列表等)。拖放管理器310可在此类数据结构中***或包括所添加的项目的标识符。

图4D示出了根据一个或多个具体实施的用于从包括触摸屏的电子设备110上的现有拖动会话移除项目的示例性过程440的流程图。出于解释的目的,本文主要参考图1和图2的电子设备110,尤其是参考上文在图3中所描述的拖放管理器310来描述过程440。然而,过程440不限于图1和图2的电子设备110,并且过程440的一个或多个框(或操作)可由其他适当设备的一个或多个其他部件来执行。进一步出于解释的目的,过程440的框在本文中被描述为顺序地或线性地发生。然而,过程440的多个框可并行发生。此外,过程440的框不必按所示顺序执行,并且/或者过程440的一个或多个框不必执行和/或可由其他操作替代。

在拖动会话期间,拖放管理器310接收从拖动会话移除项目的请求(442)。从拖动会话移除项目的请求可来自图2D中的源应用程序230,并且还可包括与拖动会话相关联的拖动会话标识符。参考图2D,可以在已相对于图像220发起拖动会话并且向拖动会话添加图像225之后进行请求,如图2E所示。在一个具体实施中,源应用程序230可接收用于移除与图像225对应的所添加项目的触摸输入(例如,一种手势)。源应用程序230可将该触摸输入解释为从拖动会话移除所选择的图像225的请求。

拖放管理器310确定被请求移除的项目的标识符(444)。在一个具体实施中,由源应用程序230提供的每个项目与唯一标识符相关联,并且可包括该唯一标识符作为来自源应用程序230的请求的一部分以从拖动会话移除该项目。

拖放管理器310将被请求移除的项目的标识符与拖动会话解除关联(446)。在一个具体实施中,拖动会话可包括与拖动会话中包括的一个或多个项目对应的数据结构(例如,阵列或列表等)。拖放管理器310可在此类数据结构中移除项目的标识符。

图5示出了根据一个或多个具体实施的用于为包括触摸屏的电子设备110上的拖放操作实施安全策略的示例性过程500的流程图。出于解释的目的,本文主要参考图1和图2的电子设备110,尤其是参考上文在图3中所描述的拖放管理器310来描述过程500。然而,过程500不限于图1和图2的电子设备110,并且过程500的一个或多个框(或操作)可由其他适当设备的一个或多个其他部件来执行。进一步出于解释的目的,过程500的框在本文中被描述为顺序地或线性地发生。然而,过程500的多个框可并行发生。此外,过程500的框不必按所示顺序执行,并且/或者过程500的一个或多个框不必执行和/或可由其他操作替代。

对于拖放事件,拖放管理器310检测在拖动手势结束时用于将项目从第一应用程序放置到第二应用程序中的触摸释放,该项目对应于数据(502)。第一应用程序可以是源应用程序230,并且第二应用程序可以是图像220被放置到其中的目标应用程序240,如图2C所示。

拖放管理器310使用数据访问策略来确定第二应用程序是否具有对与项目对应的数据的访问权限(504)。对应于项目的数据可以是例如图像文件、视频文件、声音文件等。例如,数据访问策略可仅允许访问与受管理应用程序之间的项目对应的数据。因此,拖放管理器310确定源应用程序230和目标应用程序240都是受管理应用程序(例如,在同一企业配置下),并且允许访问该项目。

在一个具体实施中,只能在具有与同一账户类型相关联的视图的应用程序之间启用拖放操作。具体地,根据目标应用程序的当前视图,确定该视图与受管理账户还是与非受管理账户相关联,然后基于所拖动的项目是否与同一类型的账户相关联和/或是否正在从与相同类型的账户相关联的视图拖动来确定拖动事件是否将被发送至目标应用程序。

如果拖放管理器310确定第二应用程序具有对与项目对应的数据的访问权限(504),则拖放管理器310允许完成拖放事件(506)。例如,拖放管理器310可促进与项目对应的数据的数据传输,诸如上文相对于图4所论述的。

如果拖放管理器310确定第二应用程序不具有对与项目对应的数据的访问权限(504),则拖放管理器310拒绝完成拖放事件(508)。当源应用程序230和目标应用程序240均不是受管理应用程序,和/或被拖动的项目不与同一类型的账户相关联,和/或正在从不与相同类型的账户相关联的视图拖动时,可以拒绝访问。在拒绝完成拖放事件之后,拖放管理器310可结束与拖放事件相关联的拖动会话。

图6A-图6C示出了根据一个或多个具体实施的在包括触摸屏的电子设备110上执行的用于文本选择的示例性拖放操作。出于解释的目的,图6A-图6C中所示的示例性拖放操作被描述为在图1的电子设备110上执行,并且还参考图3中所述的拖放管理器310。然而,图6A-图6C所示的示例性拖放操作可在包括触摸屏的任何电子设备上执行。

如图6A中所示,电子设备110的触摸屏210可同时显示两个不同的应用程序,其可被称为源应用程序235和目标应用程序240。

电子设备110可基于用户的手指270触摸电子设备110的触摸屏210来检测发起拖动会话的初始触摸输入(例如,长触摸手势)。例如,可基于用户的手指270触摸在源应用程序235中显示的文本234来检测触摸输入。当用户的手指270仍然与触摸屏210接触时,电子设备110可检测选择文本234的另一触摸输入(例如轻扫手势)作为拖动会话的一部分。在一些情况下,可能不需要第二触摸输入来选择特定类型的文本。例如,对应于长触摸手势的触摸输入可用于选择在源应用程序235中提供的超链接或URL。

在一个或多个具体实施中,电子设备110可提供与所选文本的图形表示对应的托盘图形元素(“托盘”)。当被提供用于显示时,在拖动会话期间被拖动时,托盘可能使背景模糊。可提供托盘的不同表示。例如,托盘可呈现有圆角,具有阴影,没有阴影,没有边界,和/或以任何方式进一步定制。此外,在所选择的文本可包括大量所选字符的示例中,托盘可截断若干字符以提供为所呈现托盘的一部分。

如图6B中所示,电子设备110检测由用户的手指270在电子设备110的触摸屏210上拖动所导致的拖动手势。拖动手势将所选择的文本236(如托盘表示中所示)从源应用程序235拖动到目标应用程序240。图6B中所示的示例示出了进行中的拖动会话,其中所选择的文本236被拖动到目标应用程序240的文档242内。目标应用程序240可向拖放管理器310请求用于提供光标238的精确模式,该光标指示在目标应用程序240中放置时所选文本将被放置的位置。此外,拖放管理器310可提供偏移量,以用于在拖动会话期间将所选文本236显示于远离用户的手指270的当前触摸输入的位置的某个位置。偏移量可根据目标应用程序240中提供的内容和/或所选文本236的大小而变化。

如图6C中所示,在用户的手指270从电子设备110的触摸屏210抬起时,电子设备110检测到拖动手势的完成。在图6C的示例中,已在与来自图6B的光标238对应的位置处将所选文本***到目标应用程序240的文档242中。

图6D示出了根据一个或多个具体实施的用于针对在包括触摸屏的电子设备110上选择的文本执行拖放操作的示例性过程600的流程图。出于解释的目的,本文主要参考图1和图2的电子设备110,尤其是参考上文在图3中所描述的拖放管理器310来描述过程600。然而,过程600不限于图1和图2的电子设备110,并且过程600的一个或多个框(或操作)可由其他适当设备的一个或多个其他部件来执行。进一步出于解释的目的,过程600的框在本文中被描述为顺序地或线性地发生。然而,过程600的多个框可并行发生。此外,过程600的框不必按所示顺序执行,并且/或者过程600的一个或多个框不必执行和/或可由其他操作替代。

拖放管理器310检测针对第一应用程序中提供的文本的文本选择手势(602)。例如,文本选择手势可包括在第一应用程序中提供的一个或多个文本字符。拖放管理器310基于文本选择手势来选择用于拖动的文本字符(604)。在一个或多个具体实施中,如果选择仅包括空格和一个或多个图像,则拖放管理器310可过滤掉空格并且仅选择图像进行拖动,或者如果选择仅包括空格,则拖放管理器310可决定不选择任何文本字符进行拖动。另外,对于包括具有标记信息的文本字符的选择,可由拖放管理器310根据具体实施选择具有标记或不具有标记的文本字符。

拖放管理器310检测所选文本字符从第一应用程序到第二应用程序的拖动手势(606)。在一个示例中,第一应用程序可添加或修改被拖动的所选文本,使得修改后的文本将被拖动到第二应用程序中。例如,第一应用程序可颠倒文本或将一些其他转换应用于所选文本(例如,将所选文本转换为图像)。

拖放管理器310检测在拖动手势结束时用于将所选择的字符放置在第二应用程序中所显示的内容内的位置处的触摸释放(608)。拖放管理器310将所选文本字符***到第二应用程序中所显示的内容内的位置处(610)。

在一个或多个具体实施中,本主题系统可在正被拖动的文本上方或下方显示光标。光标可用于指示文本选择将被放置的第二应用程序的内容内的精确位置。当光标被显示在被拖动的文本选择上方并且文本选择被拖动到屏幕的底部时,系统可自适应地将光标翻转到文本选择的底部。类似地,当光标被显示在被拖动的文本选择下方并且文本选择被拖动到屏幕的顶部时,系统可自适应地将光标翻转到文本选择的顶部。

图7A-图7B示出了根据一个或多个具体实施的在包括触摸屏的电子设备110上执行的涉及表格视图的示例性拖放操作。出于解释的目的,图7A-图7B所示的示例性拖放操作被描述为在图1的电子设备110上执行。然而,图7A-图7B所示的示例性拖放操作可在包括触摸屏的任何电子设备上执行。

如图7A中所示,电子设备110可基于用户的手指270触摸电子设备110的触摸屏210来检测初始触摸输入。电子设备110可检测到用户的手指270已触摸在源应用程序730(例如,生产力应用程序或任何应用程序)中提供的项目720,以成为用于拖放操作的拖动会话的一部分。以分屏视图提供目标应用程序740(例如,待办事项列表管理器应用程序或任何应用程序),其中源应用程序730和目标应用程序740两者并排显示于触摸屏210上。如图所示,目标应用程序740在表格视图中提供包括项目750、752、754和756的项目列表。

电子设备110基于用户的手指270在电子设备110的触摸屏210上移动来检测拖动手势。拖动手势可包括将项目720移动到目标应用程序740中提供的项目列表的表格视图内的位置。如图7B中所示,在电子设备110检测到用户的手指270已经从电子设备110的触摸屏210抬起时,电子设备110检测到拖动手势完成。

在完成拖动手势时,项目720已从源应用程序730移动(或复制)并***到具有项目750、752、754和756的目标应用程序740的表格视图中。具体地,项目720已***到项目列表中的项目754和项目756之间。拖动会话现在已完成。在一个或多个具体实施中,当将项目***到表格视图中时,电子设备110可实现下文相对于图9所论述的过程的状态协调,以便考虑项目第一次在目标应用程序740上方移动的时间直到该项目被放置到目标应用程序740的表格视图中的时间之间的任何状态变化。

在一个或多个具体实施中,如果项目对应于大文件,或者如果项目对应于从远程位置(诸如服务器120)传输的文件,则可将占位符图像***到表格视图内释放项目的位置中,直到完成该文件的传输或下载。该占位符图像可向用户指示该文件仍在传输或下载。例如,该占位符图像可以是和/或可以包括指示传输或下载进度的进度条。

在一个或多个具体实施中,目标应用程序可确定在表格视图内用户放置项目的位置不是用于***项目的适当位置。例如,表格视图可按特定因素(诸如按字母顺序)进行排序,并且用户可已将项目放置在表格视图内与字母排序不一致的位置处。在这种情况下,目标应用程序可将项目重定向到表格视图内的适当位置,并且该项目可自动移动并被***到表格视图内的适当位置中。在一个具体实施中,在项目重定向期间,在目标应用程序中可显示项目将被***到的表格视图内的位置处的“孔”的图形表示,并且当放置发生时,该项目将以动画方式显示为移动到表格视图内的位置处的孔。

图8A-图8B示出了根据一个或多个具体实施的在包括触摸屏的电子设备110上执行的涉及集合视图的拖放操作。出于解释的目的,图8A-图8B所示的示例性拖放操作被描述为在图1的电子设备110上执行。然而,图8A-图8B所示的示例性拖放操作可在包括触摸屏的任何电子设备上执行。

如图8A中所示,电子设备110可基于用户的手指270触摸电子设备110的触摸屏210来检测初始触摸输入。电子设备110可确定用户的手指270已选择在源应用程序830(例如,云端存储应用程序或任何应用程序)中提供的项目820(例如,图像),以成为用于拖放操作的拖动会话的一部分。以分屏视图提供目标应用程序840(例如,图像编辑器应用程序或任何应用程序),其中源应用程序830和目标应用程序840两者并排显示于触摸屏210上。如图所示,目标应用程序840在集合视图中提供对应于不同图像的项目850、852、854和856。

电子设备110基于用户的手指270在电子设备110的触摸屏210上移动来检测拖动手势。拖动手势可包括将项目820移动到目标应用程序840中提供的项目的集合视图内的位置。如图8B中所示,在电子设备110检测到用户的手指270已经从电子设备110的触摸屏210抬起时,电子设备110检测到拖动手势完成。

在完成拖动手势时,项目820已从源应用程序830移动并***到具有项目850、852、854和856的目标应用程序840的集合视图中。具体地,项目820已被***到与项目854先前在图8A中相同的位置中,并且项目854已被移动到恰好与项目856先前在图8A中的相同位置中。项目856已被移动到图8B中在其他项目中的剩余项目下方的新位置。拖动会话现在已完成。在一个或多个具体实施中,当将项目***到集合视图中时,电子设备110可实现下文相对于图9所论述的过程的状态协调,以便考虑项目第一次在目标应用程序840上方移动的时间直到该项目被放置到目标应用程序840的集合视图中的时间之间的任何状态变化。

图9示出了根据一个或多个具体实施的用于在包括触摸屏的电子设备上执行涉及表格/集合视图的拖放操作的示例性过程900的流程图。出于解释的目的,本文主要参考图1和图2的电子设备110,尤其是参考上文在图3中所描述的拖放管理器310来描述过程900。然而,过程900不限于图1和图2的电子设备110,并且过程900的一个或多个框(或操作)可由其他适当设备的一个或多个其他部件来执行。进一步出于解释的目的,过程900的框在本文中被描述为顺序地或线性地发生。然而,过程900的多个框可并行发生。此外,过程900的框不必按所示顺序执行,并且/或者过程900的一个或多个框不必执行和/或可由其他操作替代。

拖放管理器310识别项目被拖动到第一应用程序上方,第一应用程序包括项目的表格(或项目集合),项目以第一布置方式被布置在表格中,并且表格中的每个项目对应于文件的图形表示(902)。拖放管理器310响应于识别来复制第一布置方式以生成第二布置方式,第二布置方式对应于当项目首先被识别为被拖动到第一应用程序上方时项目在表格中的初始布置方式(904)。

拖放管理器310更新第一布置方式以反映项目在表格中的被改变位置,该被改变位置是由于例如当项目被拖动到第一应用程序上方时另一项目被***到表格中而产生的(906)。例如,如果先前已相对于表格视图发起了复制或下载操作,则可在诸如从服务器120复制或下载附加项目时***该附加项目。在一个或多个具体实施中,项目的被改变位置也可由例如从表格中删除项目而产生。

拖放管理器310更新第二布置方式以反映项目在项目的初始布置方式中的被改变位置,该被改变位置是由于项目被释放以***到表格中的位置而产生的,第二布置方式不包括另一项目(908)。例如,当项目被释放以***到表格中的位置或地点中时,围绕***位置的项目位置可改变以生成用于***项目的空间。

拖放管理器310将更新的第二布置方式与更新的第一布置方式合并,以协调由于项目被***到表格中基于初始布置方式的位置处而产生的被改变位置和由于另一项目被***到表格中而产生的被改变位置(910)。这样,在拖动会话期间所发生的表格视图的任何更新可与***项目的位置(例如,基于初始布置方式)进行协调。

图10示出了可用以实现本主题技术的一个或多个具体实施的电子系统1000。电子系统1000可以是图1所示的电子设备110和/或服务器120并且/或者可以是其一部分。电子系统1000可包括各种类型的计算机可读介质以及用于各种其他类型的计算机可读介质的接口。电子系统1000包括总线1008、一个或多个处理单元1012、系统存储器1004(和/或缓存)、ROM 1010、永久性存储设备1002、输入设备接口1014、输出设备接口1006以及一个或多个网络接口1016,或其子集及变体形式。

总线1008总体表示通信地连接电子系统1000的许多内部设备的所有系统总线、***设备总线和芯片组总线。在一个或多个具体实施中,总线1008将一个或多个处理单元1012与ROM 1010、系统存储器1004和永久性存储设备1002通信地连接。一个或多个处理单元1012从这些各种存储器单元检索要执行的指令和要处理的数据,以便执行本主题公开的过程。在不同的具体实施中,一个或多个处理单元1012可为单个处理器或者多核处理器。

ROM 1010存储一个或多个处理单元1012以及电子系统1000的其他模块需要的静态数据和指令。另一方面,永久性存储设备1002可为读写存储器设备。永久性存储设备1002可为即使在电子系统1000关闭时也存储指令和数据的非易失性存储器单元。在一个或多个具体实施中,海量存储设备(诸如,磁盘或光盘及其相应盘驱动器)可被用作永久性存储设备1002。

在一个或多个具体实施中,可移除存储设备(诸如,软盘、闪存驱动器及其相应盘驱动器)可被用作永久性存储设备1002。与永久性存储设备1002一样,系统存储器1004可为读写存储器设备。然而,与永久性存储设备1002不同,系统存储器1004可为易失性读写存储器,诸如随机存取存储器。系统存储器1004可存储一个或多个处理单元1012在运行时可能需要的指令和数据中的任何指令和数据。在一个或多个具体实施中,本主题公开的过程被存储在系统存储器1004、永久性存储设备1002和/或ROM1010中。一个或多个处理单元1012从这些各种存储器单元检索要执行的指令和要处理的数据,以便执行一个或多个具体实施的过程。

总线1008还连接至输入设备接口1014和输出设备接口1006。输入设备接口1014使得用户能够向电子系统1000传达信息以及选择命令。可与输入设备接口1014一起使用的输入设备可包括例如字母数字混合键盘和指向设备(也称为“光标控制设备”)。输出设备接口1006可例如使得能够显示电子系统1000所生成的图像。可与输出设备接口1006一起使用的输出设备可包括例如打印机和显示设备,诸如液晶显示器(LCD)、发光二极管(LED)显示器、有机发光二极管(OLED)显示器、柔性显示器、平板显示器、固态显示器、投影仪或用于输出信息的任何其他设备。一个或多个具体实施可包括既充当输入设备又充当输出设备的设备,诸如触摸屏。在这些具体实施中,提供给用户的反馈可以是任何形式的感官反馈,诸如视觉反馈、听觉反馈或触觉反馈;并且可以任何形式接收来自用户的输入,包括声学、语音或触觉输入。

最后,如图10所示,总线1008还通过一个或多个网络接口1016将电子系统1000耦接到一个或多个网络以及/或者耦接到一个或多个网络节点,诸如图1中所示的电子设备110。以此方式,电子系统1000可为计算机网络(诸如LAN、广域网(“WAN”)或内联网)的一部分,或者可为网络的网络(诸如互联网)的一部分。电子系统1000的任何或所有部件可与本主题公开一起使用。

可以利用编写有一个或多个指令的有形计算机可读存储介质(或一种或多种类型的多个有形计算机可读存储介质)部分地或全部地实现本公开范围内的具体实施。有形计算机可读存储介质实质上也可以是非暂态的。

计算机可读存储介质可以是任何可以由通用或专用计算设备读、写或以其他方式访问的存储介质,包括任何能够执行指令的处理电子器件和/或处理电路。例如,非限制地,计算机可读介质可包括任何易失性半导体存储器,诸如RAM、DRAM、SRAM、T-RAM、Z-RAM和TTRAM。计算机可读介质也可包括任何非易失性半导体存储器,诸如ROM、PROM、EPROM、EEPROM、NVRAM、闪存、nvSRAM、FeRAM、FeTRAM、MRAM、PRAM、CBRAM、SONOS、RRAM、NRAM、赛道存储器、FJG和Millipede存储器。

此外,计算机可读存储介质可包括任何非半导体存储器,诸如光盘存储装置、磁盘存储装置、磁带、其他磁性存储设备或者能够存储一个或多个指令的任何其他介质。在一个或多个具体实施中,有形计算机可读存储介质可直接耦接到计算设备,而在其他具体实施中,有形计算机可读存储介质可例如经由一个或多个有线连接、一个或多个无线连接或它们的任意组合而间接地耦接到计算设备。

指令可以是可直接执行的,或者可用于开发可执行指令。例如,指令可被实现为可执行的或不可执行的机器代码,或者可被实现为可被编译以产生可执行的或不可执行的机器代码的高级语言指令。此外,指令也可被实现为数据,或者可包括数据。计算机可执行指令也可以任何格式组织,包括例程、子例程、程序、数据结构、对象、模块、应用、小程序、函数等。如本领域技术人员认识到的那样,包括但不限于指令的数量、结构、序列和组织的细节可明显不同,而不改变底层的逻辑、功能、处理和输出。

虽然以上论述主要涉及执行软件的微处理器或多核处理器,但一个或多个具体实施由一个或多个集成电路诸如ASIC或FPGA执行。在一个或多个具体实施中,此类集成电路执行存储在电路自身上的指令。

本领域的技术人员将会认识到,本文所述的各种例示性的框、模块、元件、部件、方法和算法可被实现为电子硬件、计算机软件或两者的组合。为了说明硬件和软件的这种可互换性,上文已经一般性地按照功能性对各种例示性的框、模块、元件、部件、方法和算法进行了描述。此类功能性是被实现为硬件还是软件取决于具体应用以及对整个系统施加的设计约束。技术人员对于每个具体应用可通过不同方式实现所描述的功能性。各种部件和框可被不同地布置(例如,以不同的顺序排列,或以不同的方式划分),而不脱离本主题技术的范围。

应当理解,所公开的过程中的框的特定顺序或分级结构为示例性方法的例示。基于设计优选要求,应当理解,过程中的框的特定顺序或者分级结构可被重新布置或者所有示出的框都被执行。这些框中的任何框可被同时执行。在一个或多个具体实施中,多任务处理和并行处理可能是有利的。此外,上述具体实施中各个系统部件的划分不应被理解为在所有具体实施中都要求此类划分,并且应当理解,程序部件和系统可一般性地被一起整合在单个软件产品中或者封装到多个软件产品中。

如本说明书以及本专利申请的任何权利要求中所用,术语“基站”、“接收器”、“计算机”、“服务器”、“处理器”及“存储器”均是指电子设备或其他技术设备。这些术语排除人或者人的群组。出于本说明书的目的,术语“显示”或“正在显示”意指在电子设备上显示。

如本文所用,在用术语“和”或“或”分开项目中任何项目的一系列项目之后的短语“中的至少一者”是将列表作为整体进行修饰,而不是修饰列表中的每个成员(即每个项目)。短语“中的至少一者”不要求选择所列出的每个项目中的至少一个;相反,该短语允许包括任何一个项目中的至少一个和/或项目的任何组合中的至少一个和/或每个项目中的至少一个的含义。举例来说,短语“A、B和C中的至少一者”或“A、B或C中的至少一者”各自是指仅A、仅B或仅C;A、B和C的任意组合;和/或A、B和C中的每一个中的至少一个。

谓词字词“被配置为”、“可操作以”以及“被编程以”并不意味着对某一主题进行任何特定的有形或无形的修改而是旨在可互换使用。在一个或多个具体实施中,被配置为监视和控制操作或部件的处理器也可以是意指处理器被编程以监视和控制操作或者处理器可操作以监视和控制操作。同样,被配置为执行代码的处理器可解释为被编程以执行代码或可操作以执行代码的处理器。

短语诸如方面、该方面、另一方面、一些方面、一个或多个方面、具体实施、该具体实施、另一具体实施、一些具体实施、一个或多个具体实施、实施方案、该实施方案、另一实施方案、一些实施方案、一个或多个实施方案、配置、该配置、其他配置、一些配置、一种或多种配置、主题技术、公开、本公开、它们的其他变型等等都是为了方便,并不意味着涉及这样的一个或多个短语的公开对于主题技术是必不可少的,也不意味着这种公开适用于主题技术的所有配置。涉及此类一个或多个短语的公开可适用于所有配置或一个或多个配置。涉及此类一个或多个短语的公开可提供一个或多个示例。短语诸如方面或一些方面可指代一个或多个方面,反之亦然,并且这与其他前述短语类似地应用。

字词“示例性”在本文中被用于意指“用作示例、实例或者例示”。在本文中被描述为“示例性的”或作为“示例”的任何实施方案不必被理解为优选于或优于其他具体实施。此外,在术语“包括”、“具有”等在说明书或权利要求中使用的限度内,这样的术语旨在是包含性的,与术语“包括”当在权利要求中被用作过渡字词时“包括”被解释的方式类似。

本领域的普通技术人员已知或稍后悉知的贯穿本公开描述的各个方面的元素的所有结构和功能等同物通过引用明确地并入本文,并且旨在被权利要求书所涵盖。此外,本文所公开的任何内容并非旨在提供给公众,而与该公开是否明确地被陈述在权利要求中无关。根据35U.S.C.§112第六段的规定,不需要解释任何权利要求元素,除非使用短语“用于……的装置”明确陈述了该元素,或者就方法权利要求而言,使用短语“用于……的步骤”陈述了该元素。

先前的描述被提供以使得本领域的技术人员能够实践本文所述的各个方面。这些方面的各种修改对本领域的技术人员而言是显而易见的,并且本文所限定的通用原则可应用于其他方面。因此,本权利要求书并非旨在受限于本文所示的方面,而是旨在使得全部范围与语言权利要求书一致,其中对奇异值中的元素的引用并非旨在意味着“仅仅一个”,而是指“一个或多个”,除非被具体指出。除非另外特别说明,否则术语“一些”是指一个或多个。男性的代名词(例如,他的)包括女性和中性(例如,她的和它的),并且反之亦然。标题和子标题(如果有的话)仅为了方便起见而使用并且不限制本公开。

50页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于呈现车辆通知的设备、方法和图形用户界面

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类