与动态扩展应用程序交互的即时消息系统的制作方法

文档序号:19735695发布日期:2020-01-18 04:26阅读:158来源:国知局
与动态扩展应用程序交互的即时消息系统的制作方法

本专利申请要求2017年6月2日提交的美国临时专利申请62/514,742的权益,该专利申请以引用方式并入本文。



背景技术:

本公开中描述的实施方案涉及即时消息系统,诸如文本即时消息系统或蜂窝电话或其他通信设备或数据处理系统。

文本即时消息系统多年前即开始使用。例如,在20世纪90年代,在智能手机推出之前,无线蜂窝电话运营商诸如verizon或at&t允许通过手机的短消息服务(sms)发送文本消息。通常,传输数据量受到运营商建立的规则的限制。近来,随着智能电话(例如,iphone)和平板电脑(例如,ipad)的使用增加,文本即时消息系统已经开发了发送图像诸如照片或表情符号的能力。此外,即时消息系统诸如来自appleinc.(cupertino,california)的imessage已允许用户通过“公共”网络发送和接收文本和图像,所述“公共”网络包括“公共”wifi接入点和互联网(除了使用无线运营商的专用蜂窝电话网络之外),并且即时消息系统诸如imessage可以根据例如wifi接入点的可用性或其他用户设备的兼容性(可能与imessage不兼容)在公共网络和专用网络的使用之间无缝过渡。



技术实现要素:

本文所述的实施方案在包括可交换消息诸如文本消息等的第一设备上的第一即时消息应用程序(app)和第二设备上的第二即时消息应用程序的即时消息系统中操作。第一即时消息应用程序和第二即时消息应用程序可各自被配置为与对应的扩展应用程序一起操作以提供在由每个即时消息应用程序的用户界面提供的消息记录内可见的内容。在一个实施方案中,方法可包括以下操作:由第一设备上的第一即时消息应用程序(app)接收来自第二设备的消息和元数据,该消息包括由与第二设备上的第二即时消息应用程序一起操作的第二扩展应用程序创建的内容;如果第一扩展应用程序安装在所述第一设备上,则响应于接收到所述内容启动所述第一扩展应用程序,所述第一扩展应用程序由所述元数据中的应用程序标识符标识为进行启动;在所述启动之后,在所述第一即时消息应用程序的消息记录内的消息容器内显示所述第一扩展应用程序的用户界面,其中所述用户界面被配置为从所述消息容器中的所述第一扩展应用程序提供动态输出。在一个实施方案中,动态输出可随时间推移而改变,因此其不是静态的。该改变可响应于来自用户的输入或由第一扩展应用程序执行的过程而发生,并且该改变可在不从发送设备诸如第二设备接收任何新内容的情况下发生。

在一个实施方案中,消息容器是由元数据中的气泡标识符指定的消息气泡,并且内容与气泡标识符相关联。在一个实施方案中,第一扩展应用程序基于从第二即时消息应用程序接收的内容来生成消息容器内的第一扩展应用程序的输出。在一个实施方案中,消息气泡中的第一扩展应用程序的用户界面被配置为除了从第一扩展应用程序接收输出之外还接收用于第一扩展应用程序的一个或多个输入。在一个实施方案中,第一即时消息应用程序和第二即时消息应用程序各自被配置为传输短消息服务(sms)文本消息和其他内容,并且在消息记录中的消息气泡中显示文本消息。在一个实施方案中,第一即时消息应用程序和第一扩展应用程序被配置为通过进程间通信(ipc)进行通信。在一个实施方案中,第一即时消息应用程序在第一沙箱化进程中执行,并且第一扩展应用程序在不同于第一沙箱化进程的第二沙箱化进程中执行。

在一个实施方案中,第一扩展应用程序可具有另一用户界面,该用户界面在包含由第一扩展应用程序生成的内容的消息气泡接收到输入之后替换第一即时消息应用程序的屏幕键盘。在一个实施方案中,内容由第一即时消息应用程序在不启动或不执行第一扩展应用程序的情况下在消息气泡中显示,并且在启动之前如所显示的内容是由第一扩展应用程序或第二扩展应用程序创建的快照。在一个实施方案中,应用程序接口(api)可存在于第一即时消息应用程序和第一扩展应用程序之间。在一个实施方案中,如果未安装第一扩展应用程序,则第一即时消息应用程序提供下载和安装第一扩展应用程序。

在一个实施方案中,第一扩展应用程序可以修改内容并通过进程间通信将修改的内容传递给第一即时消息应用程序,以传输至第二即时消息应用程序从而递送至第二设备上的第二扩展应用程序。在一个实施方案中,第一扩展应用程序可从第一即时消息应用程序接收指示传输是否成功的回调。在一个实施方案中,第一扩展应用程序可被配置为处理由第二扩展应用程序创建的内容,并且第二扩展应用程序和第一扩展应用程序可由相同的应用程序标识符来识别。在一个实施方案中,第一扩展应用程序可通过api调用第一即时消息应用程序以请求第一扩展应用程序的视图在第一即时消息应用程序内的改变,并且该改变可以是以下中的一者:(a)从替换即时消息应用程序的屏幕键盘的紧凑视图到展开视图的切换;或(b)从展开视图到紧凑视图的切换;或(c)取消扩展应用程序的视图。在一个实施方案中,第一即时消息应用程序的消息记录在显示所述第一扩展应用程序的所述紧凑视图时可见。

在一个实施方案中,在消息气泡中由第一扩展应用程序提供的用户界面通过嵌入在消息气泡中的远程视图控制器的实例提供,以允许第一扩展应用程序在消息气泡中创建实况动态输出。在一个实施方案中,消息记录可包括多个消息气泡,其中一些消息气泡使用来自与第一即时消息应用程序一起操作的另一扩展应用程序的静态的基于模板的内容。在一个实施方案中,实况动态输出响应于消息气泡中或第一扩展应用程序的紧凑视图中的用户输入而改变。在一个实施方案中,第一扩展应用程序可被配置为通过远程视图控制器的多个实例来提供实况动态内容,其中所述多个实例的每个实例与所述记录中的对应消息气泡相关联,所述对应消息气泡显示来自所述第一扩展应用程序的实况动态输出。

在一个实施方案中,第一扩展应用程序还可在被配置为接收要发送的消息输入或其他内容的消息登台区域或输入暂存区域中提供另一用户界面;用户通常在发送内容之前将内容输入到输入暂存区域中,然后选择发送命令以使得内容被发送。因此,在该实施方案中,第一扩展应用程序可控制在该实施方案中到输入暂存区域中的输入和在输入暂存区域中显示的输出。

在一个实施方案中,第一即时消息应用程序基于以下中的一者或多者来管理第一扩展应用程序的生命周期:(a)即时消息应用程序的打开或关闭状态;(b)切换到不包括具有由所述第一扩展应用程序生成的内容的所述消息气泡的不同会话;(c)对用于所述第一扩展应用程序的多个视图控制器的限制;(d)对用于所述消息记录中的所述第一扩展应用程序和任何其他扩展应用程序的多个视图控制器的限制;或(e)包含由第一扩展应用程序生成的内容的消息气泡是在屏幕上还是在屏幕外。在一个实施方案中,当包含由第一扩展应用程序生成的内容的消息气泡在屏幕上时第一扩展应用程序的启动发生而在消息气泡在屏幕外时不发生。

在一个实施方案中,方法可包括以下操作:由第一设备上的第一即时消息应用程序(app)接收来自第二设备的消息和元数据,该消息包括由第二设备上的第二扩展应用程序创建的内容;确定消息容器当前是否在会话的消息记录中的屏幕上,所述消息记录作为所述第一即时消息应用程序的显示的输出提供,并且所述消息容器包括由所述内容生成的输出;如果第一扩展应用程序安装在所述第一设备上,则响应于确定所述消息容器在屏幕上而启动所述第一扩展应用程序,所述第一扩展应用程序由所述元数据中的应用程序标识符来标识;在所述启动之后,在所述消息记录中的所述消息容器内显示所述第一扩展应用程序的用户界面。

本文所述的方法和系统可通过数据处理系统诸如一个或多个智能电话、平板电脑、台式计算机、膝上型计算机、智能手表、可穿戴设备、音频附件、机载计算机和其他数据处理系统以及其他消费电子设备来实现。本文所述的方法和系统还可由执行存储在一个或多个非暂态机器可读介质中的可执行的计算机程序指令的一个或多个数据处理系统来实现,该程序指令在被执行时使一个或多个数据处理系统执行本文所述的一个或多个方法。因此,本文所述的实施方案可包括方法、数据处理系统和非暂态机器可读介质诸如dram存储器和闪速存储器。

以上概述不包括本公开的所有实施方案的详尽列表。所有系统和方法可根据以上概述的各个方面和实施方案以及以下具体实施方式中所公开的那些的所有合适的组合来实践。

附图说明

本发明以举例的方式进行说明,并且不仅限于各个附图的图形,在附图中类似的标号指示类似的元件。

图1a示出了通信设备上的即时消息应用程序的用户界面的示例。

图1b示出了通信设备上的即时消息应用程序的用户界面的另一示例。

图2示出了即时消息系统的示例,该即时消息系统采用一个或多个即时消息服务器向一组客户端设备提供即时消息服务。

图3a示出了根据本文所述的一个或多个实施方案的用于提供与即时消息应用程序一起使用的扩展应用程序的架构的框图。

图3b示出了根据本文的一个实施方案的至少部分地由扩展应用程序创建的消息气泡的用户界面的示例。

图4a示出了根据本文的一个实施方案的包含由扩展应用程序生成的动态内容的消息气泡的示例。

图4b示出了根据本文的一个实施方案的在用户已将输入提供到消息气泡中之后的图4a中所示的消息气泡的示例。

图4c示出了即时消息应用程序的用户界面的示例,该即时消息应用程序的用户界面在即时消息应用程序的记录中包括来自与图4c的实施方案中的即时消息应用程序一起操作的两个不同扩展应用程序的两个动态消息气泡。

图5示出了根据本文所述的一个实施方案的与多个扩展应用程序通过多个远程视图控制器一起操作的即时消息应用程序的架构的框图形式的示例。

图6为示出根据本文所述的一个实施方案的方法的流程图。

图7是示出根据一个实施方案的用于控制扩展应用程序的生命周期的方法的流程图,该扩展应用程序根据一个实施方案可在消息气泡中生成动态内容。

图8a示出了消息记录的示例,其中包含动态内容的消息气泡在消息记录的可见部分之外。

图8b示出了在记录已在使包含动态内容的消息气泡在消息记录中可见的方向上滚动之后的图8a中所示的消息记录的示例。

图9示出了根据一个实施方案的控制即时消息应用程序中的输入暂存区域的扩展应用程序的示例。

图10示出了根据一个实施方案的示例,其中两个或更多个设备上的扩展应用程序可通过每个设备上的即时消息应用程序彼此交互。

图11是可与本文所述的一个或多个实施方案一起使用的数据处理系统的示例。

具体实施方式

将参考以下论述的细节来描述各种实施方案和方面,并且附图将对各种实施方案进行说明。以下说明书和附图为例示性的,并且不应被理解为限制性的。描述了许多具体细节,以提供对各个实施方案的全面理解。然而,在某些实例中,熟知的或常规的细节并未被描述,以便提供对实施方案的简明论述。

在本说明书中提到的“一个实施方案”或“实施方案”是指结合该实施方案所述的特定特征、结构或特性可被包括在至少一个实施方案中。在本说明书中的各个位置出现短语“在一个实施方案中”不一定都是指同一个实施方案。在随后的附图中所描绘的过程由包括硬件(例如,电路、专用逻辑部件等等)、软件或这两者的组合的处理逻辑部件来执行。虽然下文按照某些顺序操作来描述该过程,但应当理解,所描述的某些操作可以不同的顺序执行。此外,某些操作也可并行执行而非按顺序执行。

本文所述的各种实施方案涉及即时消息系统,诸如文本即时消息系统或“聊天”即时消息系统,或允许设备在设备之间传送消息的其他系统。例如,appleinc.(cupertino,california)的imessage为ios设备和mac(osx)计算机的即时消息服务的示例。通常,即时消息系统包括多个客户端设备,每个客户端设备包括至少一个即时消息应用程序和一组一个或多个即时消息服务器,所述一组一个或多个即时消息服务器可接收来自客户端设备的消息并将消息传输至客户端设备。图1a示出了客户端设备上的即时消息应用程序的用户界面的示例。客户端设备可以是通信设备10,其可以是智能电话或平板电脑、或台式计算机或膝上型计算机、可穿戴设备、机载计算机,或其他数据处理系统或其他消费电子设备。在一个实施方案中,设备可包括既可显示图像又可接受来自用户的触摸输入的传统触摸屏。通信设备上的触摸屏12可显示即时消息应用程序的用户界面,该用户界面可包括消息记录16以及消息记录16下方的屏幕键盘20。此外,即时消息应用程序的用户界面可包括指示接收者的用户名称14,在一个实施方案中,该接收者是从通信设备10发送的消息的接收者。此外,用户界面可包括文本输入区18,该文本输入区指示用户在发送文本之前输入的文本的内容;在某种意义上,文本输入区18是文本暂存区域,该区域指示准备发送给接收者的文本。

图1b示出了通信设备10a上的即时消息应用程序的用户界面的更详细示例。在本实施方案中,用户界面显示在触摸屏12a上,并且包括屏幕键盘20a、文本输入区18a、消息记录16a和显示发送消息和接收消息的一个或多个其他用户的姓名的用户名称14a。文本输入区18a是针对内容诸如文本、贴纸、扩展应用程序内容、图像等中的一者或多者的暂存区域,所述内容响应于用户选择发送命令而准备被发送(并且在一个实施方案中,可在暂存区域中编辑该内容)。在图1b所示的示例中,来自freddy(用户名称14a)的消息显示在消息记录16a的左侧,并且由通信设备10a的用户发送的消息则显示在消息记录16a的右侧。因此,消息气泡17显示由通信设备10a的用户发送给freddy的消息“whereat?”,作为对来自freddy“dinnertonight?”的消息的响应。消息气泡17中的消息使freddy通过消息气泡19中显示的“how’sthis?”作出响应。字词“气泡”诸如消息气泡或会话气泡等的使用并不意味着暗示任何特定的形状或形式;相反,其意味着两个或更多个参与者之间的消息之间的任何形状或形式的分界,并且因此该分界可使用框或线或消息容器或不同颜色等。因此,短语“消息气泡”旨在涵盖两个或更多个参与者之间的消息之间的所有此类分界(或其他区分的方式),特别是在此类分界的情形中或在消息记录中用于区分作用的其他方式。在一个实施方案中,消息记录可上下滚动,并且消息记录中的消息根据其时间按顺序呈现,因此用户可通过向上或向下滚动视图随时间查看实际的聊天或会话。图1b中所示的用户界面还包括屏幕键盘20a上方和文本输入区18a左侧的三个图标22,23和24。扩展应用程序视图图标22在被选择时使得能够与即时消息应用程序一起操作的已安装的扩展应用程序的视图被显示,并且所提供的视图可以是可浏览视图以允许用户滚动通过示出所有已安装扩展应用程序的多个页面,已安装扩展应用程序被配置为与根据本文所述的一个或多个实施方案的即时消息应用程序一起操作。在一个实施方案中,成像应用程序图标23可以是当被选择时使得启动即时消息应用程序的插件的图标,该插件在即时消息应用程序的进程内提供图像创建。在一个实施方案中,相机应用程序图标24在被选择时可使通信设备10a进入相机模式,其中设备的相机可捕获静止图像或视频图像,所述图像可被置于消息中以发送图像或视频。

现在将结合图2提供即时消息系统的示例的简要概述。即时消息系统50可包括多个客户端设备,诸如客户端设备53和54。这些客户端设备中的每一个可包括至少一个即时消息应用程序,该即时消息应用程序被配置为根据本文描述的一个或多个实施方案与扩展应用程序一起操作,并且还针对与即时消息应用程序中的扩展应用程序架构不兼容的设备传送至少文本消息以及可选的资源定位符或图像或其他内容。在典型的即时消息系统中,可存在通过一组即时消息服务器进行通信的数百万个客户端设备。在一个实施方案中,多个即时消息服务器可被配置为从发送设备接收加密消息,然后将这些加密消息传输到接收设备。另一组服务器可被配置为接收非文本内容诸如图像或其他“附件”,并且响应于来自那些接收设备的对获得图像或附件的请求而通过下载操作将这些图像或附件提供给接收设备。在一个实施方案中,针对每个接收者的设备单独加密发送者的传出消息。在一个实施方案中,非对称rsa加密算法可用于执行加密。在一个实施方案中,可从(由一个或多个即时消息服务器维护的)目录服务检索每个接收设备的公共rsa加密密钥,该目录服务包括数据库诸如耦接至一个或多个即时消息服务器51的数据库52。当客户端设备诸如客户端设备53试图向另一客户端设备发送消息时,其向所述一个或多个即时消息服务器51标识该另一客户端设备(诸如通过电子邮件地址或电话号码或其他标识符)。该标识符从客户端设备诸如客户端设备53发送到一个或多个即时消息服务器51,该即时消息服务器随后基于所提供的标识符在数据库52中执行查找操作以检索与该标识符对应的公钥。然后将该公钥传输回请求用于该特定接收设备的公钥的客户端设备,然后客户端设备可使用该公钥或使用可随机生成的另一密钥(例如,对称密钥)来加密消息,并且使用特定接收设备的公共rsa加密密钥来加密该另一密钥。在一个实施方案中,随机生成的密钥可针对每个消息随机生成。在一个实施方案中,所得到的消息(每个接收设备一个消息)包括加密的消息文本、加密的消息密钥和发送者的数字签名,然后将每个接收设备的所得消息上载至一个或多个即时消息服务器51,以用于递送至接收者客户端设备诸如客户端设备54。在一个实施方案中,即时消息系统50可被配置为通过“公共”网络进行操作,该“公共”网络包括公共wifi接入点(诸如咖啡店、机场等中的wifi接入点)以及互联网。客户端设备53和54中的每一者上的即时消息应用程序还可被配置为与由无线蜂窝电话运营商诸如verizon和at&t提供的“专用”网络一起操作,并且即时消息应用程序可被配置为在专用网络和公共网络的使用之间无缝切换,具体取决于每个网络的可用性,并且还取决于即时消息会话中每个客户端设备的兼容性。在一个实施方案中,即时消息服务器51可包括一组推送通知服务器,其接收上载的文本消息并将那些文本消息“推送”到接收设备。

在一个实施方案中,客户端设备上的即时消息系统包括各自作为单独进程操作的即时消息应用程序和一个或多个扩展应用程序。在一个实施方案中,即时消息应用程序和一个或多个扩展应用程序可各自为在其自己的存储空间中操作或执行的单独的沙箱化进程。此外,即时消息应用程序还可与插件诸如图像创建插件或其他插件一起操作,所述插件在与即时消息应用程序相同的进程和存储空间内操作。即时消息应用程序和每个扩展应用程序通过进程间通信诸如ios和macosx中提供的xpc框架彼此通信。即时消息应用程序被设计为在发送设备上从设备用户接收文本并且在消息记录中显示该文本,并且通过一组一个或多个消息服务器将文本发送到接收设备,该接收设备通过接收设备上的对应即时消息应用程序而在接收设备上的消息记录中显示接收的文本。接收设备和发送设备可各自具有相同扩展应用程序的副本,其被配置为根据特定的扩展应用程序创建特定类型的内容(或者在另选的实施方案中,每个可包括与其所使用的内容兼容的不同扩展应用程序的副本)。

图3a示出了软件架构的示例,其中即时消息应用程序和一个或多个扩展应用程序一起操作以提供增强的即时消息系统。图3a中所示的即时消息系统包括即时消息应用程序76、可提供动态内容的扩展应用程序83和视图控制器80。在一个实施方案中,即时消息应用程序76允许从即时消息应用程序76所使用的即时消息账户中已发生的会话列表中选择会话。即时消息应用程序76可为所选择的会话创建消息记录,并且还可允许创建新会话以及删除现有会话。在一个实施方案中,即时消息应用程序76通过与被设计成与即时消息应用程序76一起操作的一个或多个扩展应用程序的进程间通信(ipc)提供可操作性。在一个实施方案中,即时消息应用程序76可在其沙箱中执行过程和任务,而扩展应用程序诸如扩展应用程序83可在其自身沙箱中执行过程和任务,该沙箱与即时消息应用程序76的沙箱环境分开且不同。在一个实施方案中,每个扩展应用程序可在其自身沙箱内操作,这可包括对可由每个进程访问的存储器的限制以及授予每个进程的权限。在一个实施方案中,扩展应用程序可提供相对于即时消息应用程序较少的系统权限,以便扩展应用程序在比即时消息应用程序更受限的环境中运行。

扩展应用程序83可为扩展应用程序,其生成动态的实况内容以显示在例如记录中的一个或多个消息气泡中。在一个实施方案中,扩展应用程序83还可在输入暂存区域诸如图4c中所示的输入暂存区域153和图9中所示的输入暂存区域407中生成动态的实况内容。显示来自扩展应用程序83的动态实况内容的消息气泡是由扩展应用程序83提供的用户界面的示例。类似地,在例如输入暂存区域中显示的扩展应用程序83的输出是扩展应用程序83的用户界面的另一示例。在一些情况下,这些用户界面既可显示输出又可接收输入,诸如指向用户界面的触摸输入或其他输入,并且这些输入可由扩展应用程序83接收并根据扩展应用程序83的内部过程进行处理。动态的实况内容不是静态的并且可随时间推移而改变,并且可基于来自数据处理系统上的用户的输入或基于来自数据处理系统的输入或基于扩展应用程序83中的过程而改变。在一个实施方案中,扩展应用程序(诸如扩展应用程序83)在即时消息应用程序的气泡或其他区域诸如输入暂存区域内的用户界面可通过一个或多个视图控制器诸如在一个实施方案中在来自appleinc.(cupertino,california)的操作系统ios上操作的应用程序中使用的远程视图控制器来提供。在一个实施方案中,每个消息气泡可具有其自身的远程视图控制器实例,该远程视图控制器提供扩展应用程序(诸如扩展应用程序83)的用户界面。类似地,为输入暂存区域提供动态内容的扩展应用程序的用户界面也可具有针对输入暂存区域的其自身的远程视图控制器实例。用于会话的一个消息记录可具有来自单个动态扩展应用程序的多个消息气泡,并且消息记录还可包括来自其他动态扩展应用程序的消息气泡。因此,消息记录可能同时要求或支持用于一个或多个动态扩展应用程序的记录内的多个消息气泡的多个视图控制器。在一个实施方案中,视图控制器被保持在存储器中的高速缓存中。在一个实施方案中,可在该高速缓存中限制视图控制器的数量,以便控制即时消息系统的资源使用。在一个实施方案中,即时消息应用程序76还可与具有呈现在一个或多个消息气泡内的静态内容的扩展应用程序一起工作。具有静态内容的扩展应用程序的示例在2016年9月23日提交的题为“messagingapplicationinteractingwithoneormoreextensionapplications”的美国专利申请15/275,136中有所描述,该专利申请据此全文以引用方式并入本文。

在一个实施方案中,被配置为与即时消息应用程序一起操作的扩展应用程序不能在即时消息应用程序之外执行,因此它们的生命周期完全由即时消息应用程序管理。此外,如在2016年9月23日提交的美国专利申请15/275,136中所述,在一个实施方案中,可通过即时消息应用程序专门控制扩展应用程序的下载和安装。

图3b示出了消息气泡82的示例,该消息气泡包括来自动态扩展应用程序诸如动态扩展应用程序83的动态内容85,该动态扩展应用程序被配置为通过例如如上所述的一个或多个远程视图控制器来为即时消息应用程序内的消息气泡和其他项目提供动态实况用户界面。动态内容85可包括图标87,其可以是创建动态内容85的扩展应用程序的图标。此外,消息气泡82还可包括文本消息88,该文本消息是可选的,并且其包含来自源诸如消息的发送者或发送者设备上的即时消息应用程序或扩展应用程序的文本。

图4a和图4b示出了即时消息应用程序的示例,该即时消息应用程序与动态扩展应用程序一起操作,以便在由即时消息应用程序提供的会话的消息记录内的一个或多个消息气泡中提供动态实况内容。记录101包括被标记为消息气泡102、消息气泡104和消息气泡106的三个消息气泡。在一个实施方案中,消息气泡102和106可由动态扩展应用程序生成,诸如图3a中所示的扩展应用程序83。消息气泡104可显示正在执行显示记录101的即时消息应用程序的设备的用户所输入的文本。在一个实施方案中,消息气泡102和106中的内容的发送者可以是餐厅,该餐厅在用户的设备上安装有其自身的扩展应用程序,并且该扩展应用程序可在消息气泡106中生成动态实况内容。在一个实施方案中,响应于来自用户的输入,消息气泡的输出可从图4a所示的消息气泡106改变为图4b所示的消息气泡106a。例如,在一个实施方案中,用户可轻击消息气泡106,该消息气泡导致呈现滑块用户界面,用户可通过该界面选择要保留的座位的数量。另选地,也可使用用于选择数量的其他已知用户界面(诸如屏幕键盘)。在任何情况下,用户通过消息气泡106与用户界面的交互可允许用户将输入输入到消息气泡106中,然后可将该输入提供至动态扩展应用程序,动态扩展应用程序然后可基于该输入将数据提供回消息气泡106的发送者(例如,参见图10)。在另选的实施方案中,生成消息气泡106中所示的动态内容的扩展应用程序的紧凑视图可接收来自用户的输入,这继而导致显示消息气泡106a的输出,该输出反映相对于消息气泡106的改变。

应当理解,可在由动态扩展应用程序生成的用户界面内接收许多不同的输入,并且许多不同类型的输出可响应于在动态消息气泡或即时消息应用程序的用户界面的其他区域内生成和显示的那些输入。

图4c示出了即时消息应用程序150的用户界面的示例,该用户界面显示会话中的消息的记录151。该记录的可视部分包括来自第一扩展应用程序的消息气泡157和来自第二扩展应用程序的消息气泡159。在一个实施方案中,生成消息气泡157的内容的消息应用程序可以是动态扩展应用程序,并且生成消息气泡159的动态内容的扩展应用程序也可以是动态扩展应用程序。因此,消息气泡157和159两者可为动态实况消息气泡,其中内容可在相应扩展应用程序的控制下改变。此外,消息气泡157和消息气泡159可各自接收输入并将这些输入提供至其相应的动态扩展应用程序。例如,消息气泡157中所示的餐厅评论可接收指示用户对特定餐厅的想法或意见或评论的用户输入。由扩展应用程序提供的在消息气泡159内显示动态内容的用户界面还可接收用于在特定餐厅预留座位的输入。在图4c所示的实例中,用于餐厅预订的扩展应用程序包括其在通常显示屏幕键盘的区域中的紧凑视图155。在该示例中,可在紧凑视图155中或在消息气泡159内接收用户输入,以便在餐厅创建预订。在另一个实施方案中,用于控制紧凑视图155并且还控制消息气泡159的餐厅预订的扩展应用程序还可在输入暂存区域153内生成用户界面,并且图9示出了输入暂存区域中的此类用户界面的示例。

图5示出了可用于实现图4c所示的即时消息系统的软件架构的实例。在图5所示的实例中,即时消息应用程序201允许两个不同的扩展应用程序控制会话的消息记录中的至少一个消息气泡。在图5所示的实例中,动态扩展应用程序203使用远程视图控制器204在消息气泡208内生成动态用户界面。动态扩展应用程序205具有针对记录中的每个消息气泡的远程视图控制器的一个实例。具体地,扩展应用程序205使用远程视图控制器211在消息气泡212内提供动态用户界面,并且还使用远程视图控制器206在消息气泡210内提供动态用户界面。在一个实施方案中,为向那些消息气泡提供内容的特定扩展应用程序的每个消息气泡提供远程视图控制器的单独实例化或实例。

图6示出了根据一个实施方案的方法的示例,该方法使用动态扩展应用程序在例如即时消息应用程序的记录中的消息气泡内生成动态用户界面。图6所示的方法可执行图3a中示出的软件架构或图5中所示的架构并且可导致显示图4a,图4b和图4c中所示的记录。在操作251中,第一设备上的第一即时消息应用程序从第二设备接收消息和元数据,其中该消息包括由第二扩展应用程序创建的内容,该第二扩展应用程序可以是与第二设备上的第二即时消息应用程序一起操作的动态扩展应用程序。在一个实施方案中,第二设备可为已将消息和元数据从发送者的设备发送至使用第一即时消息应用程序来接收消息和元数据的第一设备的发送者的设备。在操作253中,如果第一扩展应用程序被安装在第一设备上,则可响应于接收到内容而启动该第一扩展应用程序。在一个实施方案中,从第二设备接收的元数据可识别第一扩展应用程序,并且该元数据可用于确定第一扩展应用程序是否安装在第一设备上。如果未安装第一扩展应用程序,则第一设备上的第一即时消息应用程序可提供从可托管在第一即时消息应用程序内的扩展应用程序存储装置下载并安装第一扩展应用程序,如2016年9月23日提交的美国专利申请15/275,136中所述。在一个实施方案中,仅当包含由第一扩展应用程序生成的内容的消息气泡在所显示的记录内的屏幕上时,才可启动第一扩展应用程序。换句话讲,第一扩展应用程序的启动可被延迟,直到其在消息记录中可见并且在屏幕上。在操作255中,第一扩展应用程序的动态用户界面可在启动之后被显示在消息容器中,诸如由第一即时消息应用程序提供的消息记录内的消息气泡中。操作255中提供的动态用户界面可显示来自第一扩展应用程序的动态输出。然后,在操作257中,第一扩展应用程序可接收输入并基于输入改变消息气泡内的输出。这种改变的一个示例在图4a和图4b中示出。

图7示出了根据一个实施方案的动态扩展应用程序的生命周期管理的示例。该方法可在操作301中开始,在该操作中,用户从即时消息应用程序提供的会话的列表中选择会话。通过显示会话的消息记录来打开所选择的会话。消息记录包含具有用于由动态扩展应用程序(诸如图3a中所示的动态扩展应用程序83)使用的所接收的内容的消息气泡。扩展应用程序可通过元数据识别,以便其可被启动。在一个实施方案中,包含动态内容的消息气泡可能已在许多天之前被接收,因此可能在屏幕上的消息记录内不可见。在操作303中,通过确定包含由动态扩展应用程序生成的动态内容的消息气泡是否在屏幕上来测试可视性状态。如果操作303确定动态消息气泡不在屏幕上,则不启动由元数据标识的扩展应用程序。这可见于图8a和图8b中,其示出了显示记录351的即时消息应用程序350。在图8a所示的情况下,消息气泡353在记录351的可见区域之外。消息气泡353包含由动态扩展应用程序诸如动态扩展应用程序83生成的动态内容。在图7所示的示例中,操作303将延迟启动在消息气泡353内生成动态内容的扩展应用程序,直到消息气泡353出现在记录351的可见部分内为止。当用户向下滚动记录以使消息气泡353在记录351的屏幕上部分内可见时,可发生这种情况,如图8b所示。向下滚动记录的结果导致消息气泡355和357向下移动屏幕并且还导致消息气泡359离开记录351的可见部分,如图8b所示。如果操作303确定消息气泡是可见的,则随后可为操作305,其中即时消息应用程序使用所存储的快照,该快照可以是动态内容的静态图像以在动态扩展应用程序完成启动之前初始显示消息气泡中的内容。在一个实施方案中,存储的快照可在第一扩展应用程序的先前执行期间由第一扩展应用程序创建(例如,当先前打开会话并且随后由会话中的第一扩展应用程序显示消息气泡并且随后创建快照时)。在另一个实施方案中,存储的快照可由第二扩展应用程序(在发送者的设备上)创建并发送到接收者的设备。在操作307中,当静态快照显示在消息气泡内时,可启动动态扩展应用程序。在操作309中,创建视图控制器的实例,诸如用于消息气泡的远程视图控制器,使得扩展应用程序可生成用于消息气泡的动态用户界面。然后在操作311中,扩展应用程序在消息气泡中显示动态内容。此时,用户可与消息气泡进行交互,并且图4a和图4b提供此类用户与具有由动态扩展应用程序生成的动态用户界面的消息气泡中的动态内容的交互的实例。此时,如操作313中所示,即时消息应用程序可基于一个或多个事件或因素来控制扩展应用程序的生命周期。例如,如果用户切换到另一会话,则可终止或退出动态扩展应用程序。同样,如果即时消息应用程序已关闭或退出,那么可以终止或退出动态扩展应用程序。在一个实施方案中,如果使得即时消息应用程序从前台进程转到后台进程,则可终止动态扩展应用程序。在一个实施方案中,如果存在存储器压力(诸如低dram存储器情况),则可终止动态扩展应用程序。此外,如果具有动态内容的消息气泡不在-屏幕上并且用于视图控制器的高速缓存数已超过预先确定的限制,则可退出或终止动态扩展应用程序。

图9示出了即时消息应用程序的用户界面的示例,其中动态扩展应用程序可在输入暂存区域(诸如输入暂存区域407)内生成动态用户界面。即时消息应用程序401显示包括一个或多个消息气泡的记录403。在记录的底部处,输入暂存区域407可由用户选择以呈现动态扩展应用程序的用户界面。具体地,用户界面409是由动态扩展应用程序生成的动态用户界面,该动态扩展应用程序允许用户界面409接收用于动态扩展应用程序的输入并在输入暂存区域407中的用户界面409内提供来自动态扩展应用程序的输出。此外,动态扩展应用程序包括紧凑视图405中的用户界面,该用户界面是由动态扩展应用程序控制的另一用户界面区域。

图10示出了两个不同设备501和503上的两个扩展应用程序505和507之间的会话中的交互的实例,其中扩展应用程序两者可以是动态扩展应用程序。第一设备501包括第一即时消息应用程序509和第一动态扩展应用程序505,并且第二设备503包括第二即时消息应用程序511和第二动态扩展应用程序507。第一动态扩展应用程序505和第二动态扩展应用程序507可具有相同的应用程序标识符或元数据,指示应用程序相同但在两个设备上的相同应用程序具有不同实例。第一设备501还可包括远程视图控制器515,该远程视图控制器允许第一动态扩展应用程序505在消息气泡或即时消息应用程序909内的其他项目内提供动态用户界面。类似地,第二设备503可包括远程视图控制器517,该远程视图控制器允许第二动态扩展应用程序507在消息气泡或第二即时消息应用程序511内的其他部件内提供动态用户界面。第一即时消息应用程序和第二即时消息应用程序可从其相应的动态扩展应用程序接收动态内容,并(通过一个或多个即时消息服务器521)将其传输至其他设备,所述其他设备可在两个动态扩展应用程序之间提供会话。图4b示出了一个示例,其中接收设备已从远程动态扩展应用程序接收到动态内容,并且用户(使用本地动态扩展应用程序)已经通过在消息气泡的动态内容内输入数量而修改了该内容,该数量随后可通过两个即时消息应用程序或通过单独的通信信道被发送回(例如,作为url、数据等519)远程扩展应用程序。例如,在一个实施方案中,除了使用两个即时消息应用程序509和511以在两个扩展应用程序505和507之间交换数据之外,两个扩展应用程序505和507还可打开不使用这两个即时消息应用程序来交换数据的单独且不同的通信信道。因此,url、数据等519可通过单独且不同的通信信道进行传输;此外,每个扩展应用程序可与由扩展应用程序的开发者控制的web服务器通信,等等,并且该通信可通过单独且不同的通信信道进行。与扩展应用程序之间的此类会话有关的进一步信息可见于2016年9月23日提交的美国专利申请15/275,136中。

本文所述的系统和方法可在各种不同的数据处理系统和设备中实现,所述数据处理系统和设备包括通用计算机系统、专用计算机系统,或者通用计算机系统和专用计算机系统的混合。可使用本文所述的方法中的任一种方法的示例性数据处理系统包括服务器系统、台式计算机、膝上型计算机、平板电脑、智能电话、蜂窝电话、个人数字助理(pda)、嵌入式电子设备或其他消费电子设备。

图11为根据一个实施方案的数据处理系统硬件的框图。需注意,虽然图11示出了可结合到移动或手持设备或其他电子设备的数据处理系统的各种部件,但这并不旨在表示将这些部件互连的任何特定的构造或方式,因为此类细节与本发明并无密切关系。还应理解,还可将具有比图11所示更少部件或所示更多部件的其他类型的数据处理系统与本发明一起使用。

如图11所示,数据处理系统包括用于将系统的各种部件互连的一条或多条总线1309。一个或多个处理器1303如本领域中所公知地耦接到所述一条或多条总线1309。存储器1305可以是dram或非易失性ram,或者可以是闪存存储器或其他类型的存储器或此类存储器设备的组合。该存储器使用本领域已知的技术耦接到所述一条或多条总线1309。数据处理系统还可包括非易失性存储器1307,该非易失性存储器可以是硬盘驱动器或闪存存储器,或磁性光驱或磁性存储器,或光驱或者是甚至在系统断电之后仍维护数据的其他类型的存储器系统(例如,rom)。非易失性存储器1307和存储器1305均使用已知的接口及连接技术耦接到所述一条或多条总线1309。显示控制器1322耦接到一条或多条总线1309,以便接收将显示在显示设备1323上的显示数据。显示设备1323可包括集成式触摸输入以提供触摸屏。数据处理系统还可包括一个或多个输入/输出(i/o)控制器1315,该i/o控制器为一个或多个i/o设备提供接口,所述一个或多个i/o设备为诸如一个或多个鼠标、触摸屏、触摸板、操纵杆和其他输入设备(包括本领域已知的那些),以及输出设备(例如,扬声器)。输入/输出设备1317如本领域中所公知地通过一个或多个i/o控制器1315耦接。

虽然图11示出了非易失性存储器1307和存储器1305直接地而不是通过网络接口耦接到一条或多条总线,但应当理解,本发明可利用远离系统的非易失性存储器,诸如通过网络接口诸如调制解调器或以太网接口耦接到数据处理系统的网络存储设备。如本领域所熟知的,总线1309可通过各种网桥、控制器和/或适配器彼此连接。在一个实施方案中,i/o控制器1315包括用于控制usb外围设备的usb(通用串行总线)适配器、用于兼容ieee1394的外围设备的ieee1394控制器,或用于控制thunderbolt外围设备的thunderbolt控制器中的一者或多者。在一个实施方案中,一个或多个网络设备1325可耦接到一条或多条总线1309。一个或多个网络设备1325可为有线网络设备(例如,以太网)或无线网络设备(例如,wi-fi、蓝牙)。

通过本描述将显而易见的是,本发明的各方面可至少部分地在软件中体现。也就是说,响应于其处理器执行存储介质(诸如非暂态机器可读存储介质(例如,易失性dram或非易失性闪存存储器))中包含的指令序列而可在数据处理系统中实施这些技术。在各种实施方案中,可将硬连线的电路与软件指令结合使用来实施本发明。因此,这些技术不限于硬件电路与软件的任何特定组合,也不限于由数据处理系统执行的指令的任何特定源。此外,应当理解,在描述移动设备或手持设备的情况下,这种描述涵盖移动设备(例如膝上型电脑设备、平板设备)、具有集成计算能力的扬声器系统、手持设备(例如智能电话)以及适合用于可穿戴电子设备中的嵌入式系统。

在上述说明书中,已描述特定示例性实施方案。显而易见的是,可在不脱离以下权利要求所给出的更广泛的实质和范围的情况下对那些实施方案作出各种修改。相应地,说明书和附图被视为是例示性意义而不是限定性意义。

以下附录包括一组应用编程接口(api)的实施方案,该一组应用编程接口(api)允许一组动态扩展应用程序与即时消息应用程序一起操作以添加动态扩展应用程序在会话的记录和由即时消息应用程序呈现的其他部件中的消息气泡内生成和使用的动态实况用户界面。

附录

详细设计

从发送实况布局消息的示例开始:

swift

如前所述,为针对唯一有效的开发者现在可指定新类型的布局,这将导致创建来表示在记录中渲染时的消息的实例。在messages中,远程视图控制器被添加为记录控制器的子视图控制器,远程视图嵌入在记录中作为消息气球。记录中的相同或不同imessage应用程序可同时具有若干远程视图控制器。

标头更新

中,将新案例添加到

枚举:

objective-c

中,添加新方法

当将视图控制器的视图的尺寸设定为放置在记录中时,使用此尺寸。该尺寸将由实况气泡的最大受支持气泡尺寸(作为指导参数提供)来限制。

方法的名称为的混合。

在少数情况下,messages将调用此方法:针对记录宽度改变(分割视图尺寸改变)、地点改变和可访问性尺寸改变的给定记录生命周期第一次显示给定消息的实况气球。

objective-c

添加新的子类:

如果实例具有的实例作为其特性,则的实例将被实例化来表示两个可能地点的消息。首先是放置在架子上暂存用于发送(在用户轻击发送按钮之前在输入区域中)。其次用于记录中。

需要另选布局来在较早的whitetail系列设备上或者在未安装imessage应用程序的接收设备上表示消息。这可以是接收器的设备或发送器的另一设备。另选布局的类型必须为该布局在发送到ios10之前版本或sms设备时已定义行为。

objective-c

添加新的属性

要知道具有呈现样式的是否表示已暂存用于进行发送的消息或记录中的消息,则在上提供新的属性。可以在实例的活动会话的所选消息上检查此属性。

objective-c

对现有代码的影响

以前,每个扩展过程都实例化最多一个扩展、视图控制器、活动会话和所选消息之间存在紧密的1-1映射。该选择加入api将导致根据需要创建多个实例,从而导致扩展和视图控制器实例之间1对多的关系。

给定具有三条消息a,b,和c的会话当前只能有一个msmessagesappviewcontroller并且因此最多一个(可基于用户选择改变)。

使用此新的选择加入api,扩展可能会看到

具有不同选择的消息的的许多实例,因为在记录中每个实况布局消息具有一个记录样式实例,并且如果用户在应用程序抽屉中打开imessage应用程序,可能具有紧凑/扩展样式此实例可能指向与记录样式实例相同的消息。

示例:

将进行更新,以注释在哪个呈现样式中可以调用什么方法,以及在以特定呈现样式调用时可能存在的任何差异。在每种方法文档的部分中都会调用这些方法。

这些方法也将分解为两个新的协议:将符合这两个条件。这将帮助识别在特定的中应用哪些方法。

完全更新的建议的objective-c

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1