内容获取方法、装置、终端及存储介质转让专利

申请号 : CN201811637104.8

文献号 : CN109710909B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张凝孙忠达付玓瓅

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本发明公开了一种内容获取方法、装置、终端及存储介质,属于网络技术领域。所述方法包括:根据对目标文档的编辑指令,获取第一用户所编辑的第一内容;接收第二内容,所述第二内容为第二用户对所述目标文档所编辑的内容,所述第二用户为所述第一用户之外的用户;当所述第一内容与所述第二内容为对所述目标文档中同一个区域的编辑内容时,对所述第一内容和所述第二内容进行合并,得到所述区域的目标内容。本发明通过对多个用户对同一个区域编辑的内容进行合并,得到区域最终的内容,而不是基于编辑时间直接对内容进行覆盖,该多个用户编辑的内容均可以保留,因而不会造成数据丢失,获取到的内容的准确率高。

权利要求 :

1.一种内容获取方法,其特征在于,所述方法包括:

根据对目标文档的编辑指令,获取第一用户所编辑的第一内容;

接收第二内容,所述第二内容为第二用户对所述目标文档所编辑的内容,所述第二用户为所述第一用户之外的用户,所述第二用户的编辑时间在前,所述第一用户的编辑时间在后;

当所述第一内容与所述第二内容为对所述目标文档中同一个区域的编辑内容时,显示选择提示,所述选择提示用于提示在内容合并和复制中选择一种处理方式;

如果获取到所述第一用户的内容合并指令,基于所述内容合并指令,对所述第一内容和所述第二内容进行合并,得到所述区域的目标内容;

如果获取到所述第一用户的复制指令,基于所述复制指令,复制所述第一内容,将所述第二内容作为所述区域的目标内容。

2.根据权利要求1所述的方法,其特征在于,所述对所述第一内容和所述第二内容进行合并,得到所述区域的目标内容,包括:对所述第一内容与所述第二内容进行拼接,得到所述区域的目标内容。

3.根据权利要求2所述的方法,其特征在于,所述对所述第一内容与所述第二内容进行拼接,得到所述区域的目标内容,包括:基于换行符,对所述第一内容和所述第二内容进行拼接,得到所述区域的目标内容。

4.根据权利要求2所述的方法,其特征在于,所述对所述第一内容与所述第二内容进行拼接,得到所述区域的目标内容,包括:按照所述第一内容和所述第二内容编辑的时间顺序,对所述第一内容和所述第二内容进行拼接,得到所述区域的目标内容。

5.根据权利要求1所述的方法,其特征在于,所述方法还包括:接收所述第二用户的编辑状态;

根据所述第二用户的编辑状态,获取所述第二用户对所述目标文档所编辑的区域的显示样式;

根据所述显示样式,显示所述区域。

6.根据权利要求5所述的方法,其特征在于,所述根据所述第二用户的编辑状态,获取所述第二用户对所述目标文档所编辑的区域的显示样式,包括:当所述第二用户的编辑状态为选中状态时,获取所述区域的第一标签,所述第一标签用于指示所述第二用户正在选中所述区域;或,当所述第二用户的编辑状态为输入状态时,获取所述区域的第二标签,所述第二标签用于指示所述第二用户正在对所述区域进行编辑;

相应地,所述根据所述显示样式,显示所述区域,包括:

显示所述区域,在所述区域的第一目标位置上显示所述区域的所述第一标签或所述第二标签。

7.根据权利要求6所述的方法,其特征在于,所述显示所述区域,在所述区域的第一目标位置上显示所述区域的所述第一标签或所述第二标签,包括:当所述第二用户的数量为多个时,按照所述第二用户对所述区域进行编辑的时间顺序,叠加显示多个第二用户的第一标签或第二标签。

8.根据权利要求6所述的方法,其特征在于,所述方法还包括:当所述第一用户的编辑状态为输入状态时,隐藏所述第一标签或所述第二标签。

9.根据权利要求8所述的方法,其特征在于,所述方法还包括:当光标悬停于所述第一目标位置时,显示隐藏的所述第一标签或所述第二标签。

10.根据权利要求1所述的方法,其特征在于,所述方法还包括:当接收到所述区域的删除信息时,在所述区域的第二目标位置上显示第三标签,所述第三标签用于指示所述区域已被所述第二用户删除。

11.根据权利要求1所述的方法,其特征在于,所述方法还包括:当接收到对所述区域中的原有内容的删除信息时,在所述区域的第三目标位置上显示删除标记,所述删除标记用于表示第二用户在所述区域中对所述原有内容进行了删除操作。

12.根据权利要求1所述的方法,其特征在于,所述根据对目标文档的编辑指令,获取第一用户所编辑的第一内容之前,所述方法还包括:获取所述目标文档中所述区域中的原有内容,所述原有内容是指所述第一用户对所述区域开始编辑之前所述区域的内容;

相应地,所述接收第二内容之后,所述方法还包括:

当所述第二内容与所述原有内容不同时,执行所述当所述第一内容与所述第二内容为对所述目标文档中同一个区域的编辑内容时,显示选择提示的步骤。

13.根据权利要求12所述的方法,其特征在于,所述方法还包括:当所述第二内容与所述原有内容相同,且所述第一内容与所述第二内容为对所述目标文档中同一个区域的编辑内容时,将所述第一内容作为所述区域的目标内容。

14.根据权利要求12所述的方法,其特征在于,所述方法还包括:当所述第二内容与所述原有内容相同,且所述第一内容与所述第二内容为对所述目标文档中同一个区域的编辑内容时,执行对所述第一内容和所述第二内容进行合并,得到所述区域的目标内容的步骤。

15.一种内容获取装置,其特征在于,所述装置包括:

获取模块,用于根据对目标文档的编辑指令,获取第一用户所编辑的第一内容;

接收模块,用于接收第二内容,所述第二内容为第二用户对所述目标文档所编辑的内容,所述第二用户为所述第一用户之外的用户,所述第二用户的编辑时间在前,所述第一用户的编辑时间在后;

第一显示模块,用于当所述第一内容与所述第二内容为对所述目标文档中同一个区域的编辑内容时,显示选择提示,所述选择提示用于提示在内容合并和复制中选择一种处理方式;

合并模块,用于如果获取到所述第一用户的内容合并指令,基于所述内容合并指令,对所述第一内容和所述第二内容进行合并,得到所述区域的目标内容;

复制模块,用于如果获取到所述第一用户的复制指令,基于所述复制指令,复制所述第一内容,将所述第二内容作为所述区域的目标内容。

16.一种终端,其特征在于,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如权利要求1至权利要求14任一项所述的内容获取方法所执行的操作。

17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如权利要求1至权利要求14任一项所述的内容获取方法所执行的操作。

说明书 :

内容获取方法、装置、终端及存储介质

技术领域

[0001] 本发明涉及网络技术领域,特别涉及一种内容获取方法、装置、终端及存储介质。

背景技术

[0002] 随着网络技术的发展,人们也可以通过网络,线上对文档表格进行编辑,也即是在线表格。其中,在线表格还可以提供多人线上编辑的功能,甚至可以支持多个用户同时对同一个表格进行协作编辑,以提高编辑效率。
[0003] 目前,内容获取方法通常是当多个用户同时对一个文档中同一区域进行编辑操作时,基于该多个用户编辑操作结束的时间点,将时间点最晚的编辑操作在该区域中编辑的内容作为该区域的内容,对于其他用户编辑的内容,则直接被该时间点最晚的编辑操作编辑的内容所覆盖。
[0004] 上述内容获取方法中编辑时间在后的内容的用户并不知道还有其他用户在该区域中也编辑了内容,直接用编辑时间在后的内容覆盖编辑时间在前的内容,很容易造成数据丢失,因而上述内容获取方法的准确率较低。

发明内容

[0005] 本发明实施例提供了一种内容获取方法、装置、终端及存储介质,可以解决相关技术中很容易数据丢失和准确率较低的问题。所述技术方案如下:
[0006] 一方面,提供了一种内容获取方法,所述方法包括:
[0007] 根据对目标文档的编辑指令,获取第一用户所编辑的第一内容;
[0008] 接收第二内容,所述第二内容为第二用户对所述目标文档所编辑的内容,所述第二用户为所述第一用户之外的用户;
[0009] 当所述第一内容与所述第二内容为对所述目标文档中同一个区域的编辑内容时,对所述第一内容和所述第二内容进行合并,得到所述区域的目标内容。
[0010] 一方面,提供了一种内容获取装置,所述装置包括:
[0011] 获取模块,用于根据对目标文档的编辑指令,获取第一用户所编辑的第一内容;
[0012] 接收模块,用于接收第二内容,所述第二内容为第二用户对所述目标文档所编辑的内容,所述第二用户为所述第一用户之外的用户;
[0013] 合并模块,用于当所述第一内容与所述第二内容为对所述目标文档中同一个区域的编辑内容时,对所述第一内容和所述第二内容进行合并,得到所述区域的目标内容。
[0014] 一方面,提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现所述内容获取方法所执行的操作。
[0015] 一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现所述内容获取方法所执行的操作。
[0016] 本发明实施例通过多个用户同时对同一文档的同一区域进行编辑时,可以基于用户的内容合并指令,对多个用户编辑的内容进行合并,得到该区域最终的内容,而不是基于编辑时间直接对内容进行覆盖,该多个用户编辑的内容均可以保留,因而不会造成数据丢失,获取到的内容的准确率高。

附图说明

[0017] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0018] 图1是本发明实施例提供的一种内容获取方法的实施环境;
[0019] 图2是本发明实施例提供的一种内容获取方法的流程图;
[0020] 图3是本发明实施例提供的一种第一目标位置的示意图;
[0021] 图4是本发明实施例提供的一种第一目标位置的示意图;
[0022] 图5是本发明实施例提供的一种第一标签的示意图;
[0023] 图6是本发明实施例提供的一种第二标签的示意图;
[0024] 图7是本发明实施例提供的一种多个标签显示的示意图;
[0025] 图8是本发明实施例提供的一种隐藏第一标签或第二标签的示意图;
[0026] 图9是本发明实施例提供的一种选择提示的示意图;
[0027] 图10是本发明实施例提供的一种第一内容的示意图;
[0028] 图11是本发明实施例提供的一种第二内容的示意图;
[0029] 图12是本发明实施例提供的一种目标内容的示意图;
[0030] 图13是本发明实施例提供的一种目标内容的示意图;
[0031] 图14是本发明实施例提供的一种内容获取方法的流程图;
[0032] 图15是本发明实施例提供的一种内容获取装置的结构示意图;
[0033] 图16是本发明实施例提供的一种终端的结构框图。

具体实施方式

[0034] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0035] 图1是本发明实施例提供的一种内容获取方法的实施环境,参见图1,该实施环境中可以包括多个终端101和服务器102,该多个终端101可以分别基于网络连接与服务器102进行数据交互。
[0036] 在本发明实施例中,该多个终端101上登录的用户可以正在同时访问服务器102中的一个文档,每个终端101可以向服务器102发送该终端101上登录的用户对一个文档的编辑信息,服务器102可以对该编辑信息进行处理后,并将处理后的编辑信息发送给访问该文档的其它用户所在终端101。
[0037] 例如,该文档可以为表格,多个用户可以访问该表格,该服务器102上可以存储有该表格,该多个用户所在的多个终端101可以通过网络连接访问该服务器102中的该表格,该多个用户可以同时对该表格进行编辑。该多个终端101可以向服务器102发送编辑信息,该服务器102可以将一个终端101发送的编辑信息处理后发送给其他终端101,从而实现该表格中的数据同步。
[0038] 需要说明的是,该多个终端101可以通过安装的客户端对该服务器102进行访问,也可以通过对门户网站对该服务器102进行访问,本发明实施例对此不作限定。
[0039] 该内容获取方法应用于终端,该终端可以为上述多个终端101中的一个终端101,下述均以该终端上当前登录的用户为第一用户,该第一用户之外的用户为第二用户为例进行说明。在本发明实施例中,多个用户可以同时对同一个文档进行编辑,其中,对于某个终端来说,该终端上登录的第一用户正在访问一个文档,且其他终端上登录的第二用户也在访问该文档,并正在对该文档中区域进行编辑。
[0040] 任一用户访问文档时,终端可以与服务器建立连接。具体地,终端可以调用socket.io库,与服务器建立socket通道。该socket通道用于与服务器进行全双工的通信。下面对该socket.io库的名称socket.io进行简单的解释,该名称中的socket的中文名称为套接字,io的英文全称为Input Output,是指输入输出。
[0041] 在一种可能实现方式中,对于一个文档,服务器可以存储访问该文档的所有用户的socket通信句柄与该文档的对应关系。例如,服务器可以将访问该文档的所有用户的socket通信句柄存储于一个哈希映射(HashMap)对象中。该HashMap对象通常以键值对的形式存储数据。具体地,该HashMap对象中可以将该文档的标识信息作为键(key),该标识信息用于唯一识别该文档。例如,可以将该文档的身份标识号(Identification,ID)作为key。每当用户发送编辑信息至服务器时,服务器可以根据该文档的标识信息,获取到正在访问该文档的所有用户的socket通信句柄,从而对该编辑信息进行处理后,将处理后的编辑信息通过获取到的该所有用户的socket通信句柄发送给该所有用户,可以将上述服务器对该编辑信息的接收和发送过程称为广播,多个用户协同对同一文档进行编辑,则也可以将该编辑信息称为协同信息。
[0042] 在一种可能实现方式中,第二用户在访问该文档时,该第二用户所在终端可以创建一个映射(map)对象,该map对象也可以对应存储有该第二用户的标识信息和该第二用户的相关信息,例如,将该第二用户的标识信息作为key。进一步地,该第二用户所在终端可以通过该第二用户所在终端与服务器之间建立的socket,向服务器发送第一编辑信息,该第一编辑信息用于告知该第二用户正在访问该文档,该第一编辑信息可以包括该第二用户的标识信息。当然,该第一编辑信息还可以包括该第二用户的其它信息,本发明实施例对此不作限定。服务器可以将该第一编辑信息广播给其他用户所在终端,该第一用户所在终端也可以接收到该服务器广播的第一编辑信息,从而可以获知该第二用户正在访问该文档。
[0043] 例如,可以称该第二用户为第一用户的协作者(collaborator),则上述map对象可以命名为collaboratorMap,该第二用户所在终端同时可以通过socket向服务器发送collabEnterAction,该collabEnterAction即为第一编辑信息,在此称编辑信息为协同信息,则该collabEnterAction为协同信息的一种,该第一编辑信息用于描述第二用户的标识信息的数据结构,例如,该第二用户的标识信息可以为该第二用户的ID或昵称,该标识信息用于唯一识别该第二用户。服务器可以将该collabEnterAction广播至除该第二用户外的所有正在访问该文档的用户。
[0044] 在一个具体的可能实施例中,该第二用户还可以在该文档中进行编辑,在该第二用户进行编辑操作时,该第二用户所在终端可以向服务器发送第二编辑信息,该第二编辑信息可以包括该第二用户的标识信息、该第二用户编辑的区域以及该第二用户的编辑状态。其中,该编辑状态可以包括选中状态和输入状态。服务器接收到该第二编辑信息后,可以将其广播给正在访问该文档的其它用户所在终端,第一用户所在终端即为其中一个终端,则第一用户可以获知该第二用户正在对该文档进行编辑。例如,该第二编辑信息可以被命名为coordAction,该coordAction也可以为协作信息中的一种。
[0045] 进一步地,在该第二用户对文档中的某个区域编辑结束后,也即是第二用户退出了对该区域的输入状态时,该第二用户所在终端可以向服务器发送第三编辑信息,该第三编辑信息可以包括该第二用户的标识信息、该第二用户编辑的区域以及该第二用户编辑的内容。服务器接收到该第三编辑信息后,也可以将该第三编辑信息广播给正在访问该文档的其它用户所在终端,从而该其它用户所在终端可以根据该第三编辑信息,同步更新文档中的数据。当然,如果该第二用户退出对该区域的输入状态时,该第二用户所在终端在确定该第二用户并未输入内容时,则可以不向服务器发送第三编辑信息。
[0046] 下面通过图2所示实施例对该多个用户对同一个文档中的同一个区域进行编辑时终端进行内容获取的具体流程进行说明。图2是本发明实施例提供的一种内容获取方法的流程图,参见图2,该内容获取方法可以包括以下步骤:
[0047] 201、终端接收第二用户的编辑状态。
[0048] 在本发明实施例中,第一用户和第二用户可以对目标文档进行编辑,该目标文档可以为在线共享文档,也可以由第一用户所在终端本地存储,但基于共享软件,第二用户所在终端也可以对该目标文档进行编辑,当然,也可以由第二用户所在终端本地存储,但基于共享软件,第一用户所在终端也可以对该目标文档进行编辑。
[0049] 该第二用户可以在目标文档中进行编辑,在该第二用户进行编辑操作时,该第二用户所在终端可以向服务器发送第二编辑信息,该第二编辑信息可以包括该第二用户的标识信息、该第二用户编辑的区域以及该第二用户的编辑状态。服务器接收到该第二编辑信息后,可以将其广播给正在访问该目标文档的其它用户所在终端,该步骤201所示的第一用户所在终端即为其中一个终端,则可以获知该第二用户正在对该目标文档进行编辑。例如,该第二编辑信息可以被命名为coordAction,该coordAction也可以为协作信息中的一种。
[0050] 相应地,在该步骤201中,终端可以接收到该第二用户所在终端发送的第二编辑信息,从而接收到第二用户的编辑状态,以获知该第二用户正在选中该目标文档中的某个区域还是正在某个区域中输入内容。
[0051] 例如,以该目标文档为表格为例,第二用户点击该表格中的某个单元格,或在某个单元格中输入内容时,该第二用户即正在对该单元格进行编辑,则可以通过上述广播过程,终端接收到第二编辑信息,该第二编辑信息包括该第二用户的ID、该单元格的坐标和该第二用户的编辑状态等。例如,仍以该目标文档为表格为例,第二用户点击某个单元格,则该第二用户的编辑状态即为选中状态,第二用户双击单元格,可以在该单元格中输入内容,则该第二用户即处于输入状态。
[0052] 202、终端根据该第二用户的编辑状态,获取该第二用户对该目标文档所编辑的区域的显示样式。
[0053] 在一种可能实现方式中,在第二用户正在对目标文档中区域进行编辑时,该终端可以对该区域进行突出显示,以提示该区域正在被第二用户编辑。具体地,第二用户的编辑状态不同,该区域的显示样式也可以不同。终端可以根据该第二用户的编辑状态,获取该区域的显示样式,从而可以基于该获取到的显示样式,执行下述步骤203,这样第一用户通过该区域的显示样式即可直观地获知第二用户对该区域的编辑状态。
[0054] 在一个具体的可能实施例中,该区域不同的显示样式可以通过不同的标签实现。也即是,该第二用户的编辑状态不同时,该区域的标签也可以不同。具体地,当该第二用户的编辑状态为选中状态时,终端获取该区域的第一标签,该第一标签用于指示该第二用户正在选中该区域。当该第二用户的编辑状态为输入状态时,终端获取该区域的第二标签,该第二标签用于指示该第二用户正在对该区域进行编辑。
[0055] 例如,第一标签的内容可以为该第二用户的ID或昵称,第一用户可以通过该第一标签获知该第二用户正在选中该区域。第二标签的内容可以包括该第二用户的ID或昵称和编辑状态,例如,该第二标签可以为XXX正在输入,该XXX即为该第二用户的ID或昵称,从而第一用户可以通过该第二标签获知该第二用户正在该区域中输入内容。
[0056] 在一个具体的可能实施例中,上述过程中该终端在接收到该服务器发送的第一编辑信息时,还可以创建一个文档分区(division,div)元素,该div元素即为标签,该div元素可以被设置为不可见,也即是被设置为隐藏。当然,也可以称该div元素为协作标签,该协作标签用于表示协作者(第二用户)的编辑状态。该终端还可以将该第二用户的标识信息作为键,将该第二用户的其它身份信息以及该协作标签存储于该终端中的collaboratorMap中。以该目标文档为表格为例,在该第二用户点击单元格时,终端接收到服务器发送的第二编辑信息时,可以根据该第二用户的标识信息,获取该协作标签,并将该协作标签的内容设置为该第二用户的标识信息,例如,ID或昵称。在该第二用户双击单元格输入内容时,终端接收到服务器发送的第二编辑信息时,可以根据该第二用户的标识信息,获取该协作标签,并将该协作标签的内容设置为该第二用户的标识信息以及编辑状态,例如,XXX正在输入。
[0057] 当然,如果第二用户退出对该目标文档的访问,第二用户所在终端可以向服务器发送第四编辑信息,该第四编辑信息也是协同信息中的一种,该第四编辑信息可以包括第二用户的标识信息。当服务器接收到该第四编辑信息后,也可以将该第四编辑信息广播至其他正在访问该目标文档的用户所在终端,其他用户所在终端接收到该第四编辑信息后,还可以将该第二用户的相关信息删除或相关信息的状态设置为不可用状态。例如,该第四编辑信息可以被命名为collabExistAction,该其他用户所在终端接收到collabExistAction后,可以根据该第二用户的ID或昵称,从collaboratorMap中获取该第二用户对应的协作标签,并将该协作标签删除或销毁,可以将该第二用户在该collaboratorMap中对应的存储信息设置为undefined(未阐明的),这样则可以表示该第二用户已退出对该目标文档的访问。
[0058] 203、终端根据该显示样式,显示该区域。
[0059] 终端获取到区域的显示样式后,可以根据该显示样式,显示该区域。具体地,该显示样式可以通过标签实现,则终端可以显示该区域,在该区域的第一目标位置上显示该区域的该第一标签或该第二标签。也即是,如果步骤202中终端获取到该区域的标签为第一标签,则终端可以在该区域的第一目标位置上显示该第一标签,如果步骤202中终端获取到该区域的标签为第二标签,则终端可以在该区域的第一目标位置上显示该第二标签。
[0060] 其中,该第一目标位置可以为该区域周围的某个位置,例如,如图3所示,该第一目标位置可以为区域周围的右上角区域,当然,该第一目标位置还可以为该区域周围的其它区域,例如,右下角区域、左上角区域、左下角区域、正上方区域、正下方区域、左边区域或右边区域等。当然,该第一目标位置还可以该区域中的某个位置,例如,如图4所示,也可以为该区域中的右上角区域,或者也可以为该区域中的其它区域,本发明实施例对该第一目标位置不作限定。
[0061] 在一种可能实现方式中,终端在显示该第一标签或第二标签时,可以基于该区域的位置,计算该第一目标位置,从而在该第一目标位置上显示该第一标签或第二标签。
[0062] 需要说明的是,上述该第一标签或第二标签用于体现第二用户对该目标文档中的该区域的编辑状态,对于第二用户来说,第二用户自身知道自己正在进行的编辑状态,因而第二用户所在终端无需显示该第一标签或第二标签,该终端(即第一用户所在终端)则可以在该第一用户的界面中显示该第一标签或第二标签,以对第一用户进行提示。当然,在该第一用户对该区域进行编辑时,该第二用户所在终端也可以在该第二用户的界面中显示用于体现该第一用户正在编辑的第一标签或第二标签。
[0063] 在一个具体的可能实施例中,该区域的标签不同时,该第一目标位置也可以不同。例如,第一标签对应的第一目标位置可以为该区域周围的右上角区域,第二标签对应的第一目标位置可以为该区域周围的左上角区域。这样该终端上第一用户可以直接基于该第一标签或第二标签的显示位置,直观地获知该第二用户对该区域的编辑状态。
[0064] 在一种可能实现方式中,在该步骤203中,终端还可以显示标记框,该标记框中包括该区域,该标记框用于指示该区域处于被第二用户进行编辑的状态。例如,以该目标文档为表格为例,如图5所示,如果第二用户的编辑状态为选中状态,比如该第二用户点击了某个单元格,该终端可以在该单元格的右上角显示第一标签,该第一标签的内容为该第二用户的ID或昵称,且该单元格位置上可以显示有标记框,用于标记该单元格正在被编辑。如图6所示,如果第二用户的编辑状态为输入状态时,比如第二用户双击了某个单元格,此时该第二用户所在终端上该单元格中可以显示有光标,则终端可以在该单元格的右上角显示第二标签,该第二标签的内容为“XXX正在输入”,该XXX为该第二用户的ID或昵称,且该单元格位置上可以显示有标记框,用于标记该单元格正在被编辑。
[0065] 需要说明的是,上述第二用户的数量可以为一个,也可以为多个,当该第二用户的数量为多个时,终端还可以显示每个第二用户的第一标签或第二标签。在一种可能实现方式中,当该第二用户的数量为多个时,按照该第二用户对该区域进行编辑的时间顺序,叠加显示多个第二用户的第一标签或第二标签。
[0066] 需要说明的是,该多个第二用户的第一标签或第二标签的叠加方式还可以包括多种方式,在一种可能实现方式中,可以按照上述时间顺序,在该区域的第一目标位置上自下而上叠加显示该多个第一标签或第二标签,或在该区域的第一目标位置上自上而下叠加显示该多个第一标签或第二标签,或在该区域的第一目标位置上自左而右叠加显示该多个第一标签或第二标签,或在该区域的第一目标位置上自右而左叠加显示该多个第一标签或第二标签。当然,该叠加方式还可以为在该第一目标位置上直接叠加,时间顺序在后的第一标签或第二标签显示于最上层。例如,如图7中(A)图所示,该多个第一标签或第二标签的排列顺序可以为自上而下或自下而上,如图7中(B)图所示,该多个第一标签或第二标签的排列顺序可以为自左而右或自右而左,如图7中(C)图所示,该多个第一标签或第二标签的在同一个位置上直接叠加,时间顺序在后的第一标签或第二标签显示于最上层。
[0067] 在另一种可能实现方式中,对于该多个第一标签或第二标签,终端也可以基于多个第二用户中编辑状态相同的第二用户的第一标签或第二标签,获取第四标签或第五标签,从而按照上述时间顺序,在该区域的第一目标位置上叠加显示该第四标签或第五标签。例如,可以将编辑状态相同的第二用户作为一组,将编辑状态为选中状态的第二用户作为第一组,将编辑状态为输入状态的第二用户作为第二组,将该第一组的多个第二用户的标识信息综合为第四标签,例如,如图7中(D)图所示,第四标签的内容可以为AAA、BBB、CCC,将该第二组的多个第二用户的标识信息按照上述编辑的时间顺序排列,并在该标识信息后统一显示编辑状态,得到第五标签,例如,第五标签的内容可以为XXX、YYY、ZZZ正在输入。
[0068] 上述仅以几种示例说明了几种多个第一标签或第二标签的叠加显示方式,该多个第一标签或第二标签还可以具有其他的叠加显示方式,例如,在该区域的第一目标位置上呈目标形状是显示该第一标签或第二标签,该目标形状可以由相关技术人员预先设置,也可以由第一用户根据自身使用习惯进行调整,例如,目标形状可以为金字塔形状,本发明实施例对该多个第一标签或第二标签的叠加显示方式以及该目标形状不作限定。
[0069] 在一个具体的可能实施例中,在第二用户的数量为多个的情况中,上述该终端显示标记框的设置中还可以包括:当该第二用户的数量为多个时,终端显示多个标记框。其中,该多个标记框的显示位置基于该第二用户对该区域进行编辑的时间顺序确定,例如,该多个标记框可以按照该第二用户对该区域进行编辑的时间顺序,自内而外显示多个标记框,时间顺序在前的第二用户对应的标记框可以在内,时间顺序在后的第二用户对应的标记框可以在外。
[0070] 在一种可能实现方式中,不同第二用户对应的标记框的显示样式不同。具体地,不同第二用户对应的标记框的颜色可以不同。例如,第二用户的数量为2时,其中一个第二用户对应的标记框的颜色可以为蓝色,且该第二用户编辑的时间在前,另一个第二用户对应的标记框的颜色可以为紫色,且该第二用户编辑的时间在后,则终端可以显示两个标记框,蓝色的标记框在内,紫色的标记框在内。当然,该标记框的显示样式还可以通过其他方式实现,例如,不同第二用户对应的标记框的线条样式不同,例如,宽度不同、实虚线样式不同或直线曲线样式不同等,本发明实施例对此不作限定。
[0071] 需要说明的是,上述步骤201至步骤203中,在第二用户正在对目标文档中区域进行编辑时,终端可以对该区域进行突出显示。当然,该终端也可以不对该区域进行突出显示,在该第二用户正在对目标文档中区域进行编辑时,如果获取到第一用户对该区域的编辑指令,执行下述步骤204,本发明实施例对该区域的显示方式不作限定。
[0072] 204、终端根据对目标文档的编辑指令,获取第一用户所编辑的第一内容。
[0073] 在第二用户正在对该目标文档进行编辑时,该终端上第一用户也可以对该目标文档进行编辑操作,终端获取到该编辑操作触发的编辑指令时,可以获取该第一用户编辑的第一内容。具体地,第一用户在该终端上对目标文档中的某个区域进行编辑,在第一用户在该终端进行编辑结束操作时,该终端可以基于获取到的编辑结束操作触发的编辑结束指令,基于该编辑结束指令,获取第一用户编辑的第一内容。例如,以该目标文档为表格为例,第一用户对该表格中某个单元格进行编辑,该第一用户可以双击该单元格,在该单元格中输入第一内容,比如第一内容可以为“456”,在该第一用户结束输入,退出输入状态时,终端可以获取该第一内容。
[0074] 在一种可能实现方式中,当该第一用户的编辑状态为输入状态时,终端可以隐藏该第一标签或该第二标签。例如,如图6所示,在第一用户的编辑状态处于输入状态之前,终端可以在区域的右上角显示第二标签,如图8所示,当第一用户双击该单元格进入输入状态时,终端可以隐藏该第二标签。这样在第一用户处于输入状态时,可以减少当前界面中显示的信息量,以避免对第一用户输入造成遮挡或其他影响。
[0075] 在该实现方式还有一种可能设计,如果第一用户还想要查看第二用户对该区域的编辑状态,也即是,还想要终端显示该第一标签或第二标签,则可以将光标悬停于该第一标签或第二标签所处的区域的第一目标位置上,则当光标悬停于该第一目标位置时,终端可以显示隐藏的该第一标签或该第二标签。
[0076] 需要说明的是,该第一用户和第二用户可能正在对目标文档中的同一个区域进行编辑,在该第一用户对该区域进行编辑的过程中,第二用户也可能对该区域进行了编辑,例如,可能改变了该区域的位置,以该目标文档为表格,该区域为该表格中的某个单元格为例,第二用户在该单元格前添加了行或列,或删除了该单元格前的行或列或该单元格所在行或列,或修改了该单元格所在行的高度或所在列的宽度,或修改了该单元格所在行或列前的行的高度或列的宽度,则该单元格的位置则可能会发生变化。终端可以基于第二用户的编辑信息,确定该区域的位置变化情况,从而获取该区域变化后的位置,并基于该变化后的位置,获取该区域的第一目标位置,从而在需要显示第一标签或第二标签时,在变化后的该区域的第一目标位置上显示第一标签或第二标签。
[0077] 例如,可以将第二用户称为第一用户的协作者,将协作者的编辑信息称为协同信息,例如,可以将删除行的协同信息命名为delRowAction,将删除列的协同信息命名为delColAction,将增加行的协同信息命名为addRowAction,将增加列的协同信息命名为addColAction,将调整设置行高的协同信息命名为setRowHeightAction,将调整设置列宽的协同信息命名为setColHeightAction。其中,终端对删除行的协同信息delRowAction与删除列的协同信息delColAction的处理方式类似,对增加行的协同信息addRowAction与增加列的协同信息addColAction的处理方式类似,对调整设置行高的协同信息setRowHeightAction与调整设置列宽的协同信息setColWidthAction的处理方式类似。比如可以将上述几种协同信息分为三类:删除类、增加类和调整类。
[0078] 对于删除类,也即是对于删除行的协同信息delRowAction与删除列的协同信息delColAction,终端可以判断删除的行或列是否为区域所在行或列,如果否,则终端可以基于该delRowAction或delColAction,获取该区域的位置,该位置为变化后的位置,并基于该变化后的位置,获取该区域的第一目标位置,从而可以改变第一标签或第二标签的显示位置。如果删除的行或列是该区域所在行或列,也即是,该区域已被第二用户删除,在这种情况中,当接收到该区域的删除信息时,终端可以在该区域的第二目标位置上显示第三标签,该第三标签用于指示该区域已被该第二用户删除。
[0079] 其中,该第二目标位置可以由相关技术人员预先设置,或由用户根据自身使用习惯进行调整,例如,该第二目标位置可以为该区域周围的左上角区域,该第二目标位置可以与第一目标位置相同,也可以与第一目标位置不同,从而用户可以直接基于该第二目标位置获知该区域已被删除,本发明实施例对该第二目标位置也不作限定。
[0080] 对于增加类和调整类,该区域的位置可能发生了变化,终端可以基于上述增加类或调整类的协同信息,获取该区域改变后的位置,从而获取该区域改变后的第一目标位置,从而可以改变第一标签或第二标签的显示位置。
[0081] 205、终端接收第二内容,该第二内容为第二用户对该目标文档所编辑的内容。
[0082] 上述第一用户在对目标文档进行编辑得到第一内容时,如果该第二用户同时也在对该目标文档进行编辑,且可能该第二用户已经在该区域中输入了新的内容,终端还可能接收到该第二用户所在终端发送的第二内容。终端可以判断该第一用户和第二用户是否在对该目标文档中的同一个区域进行编辑,也即是判断第一用户进行编辑的区域与第二用户进行编辑的区域是否相同,如果第一用户和第二用户同时对同一个区域进行了编辑,则在该区域中的编辑的内容发生了冲突,终端需要执行下述步骤,基于该第一内容和第二内容,确定该区域的目标内容。其中,该目标内容即为通过第二用户和第一用户同时编辑后,该区域中所需要显示的最终内容。
[0083] 具体地,该终端接收该第二内容的过程可以与上述接收第三编辑信息的过程同理,本发明实施例在此不多做赘述。
[0084] 需要说明的是,对于上述第一内容和第二内容,该第一内容和第二内容分别是指第一用户和第二用户对该目标文档中的某个区域编辑结束后该区域中的所有内容。例如,如果该区域在被编辑前没有内容,第一用户输入了“123”,则在该第一用户结束编辑时,该区域中的内容为“123”,则终端可以获取到第一内容“123”;如果该区域在被编辑前已有内容,比如该区域中已有内容“1124”,该第一用户对该区域进行编辑,对“1124”中的“1”进行了删除,并增加了内容“3”,在该第一用户结束编辑时,该区域中的内容为“1243”,则终端可以获取到第一内容“1243”。也即是,在第一用户对该区域编辑结束后,向服务器提交的内容为编辑结束后该区域中的全部内容。第二内容的获取方式与该第一内容的获取方式同理,本发明实施例在此不多做赘述。
[0085] 当然,如果当前该第二用户并未在该区域中输入内容,也即是,终端未接收到第二用户所在终端发送的第三编辑信息,则终端可以直接将该第一用户编辑的第一内容作为该区域的目标内容。
[0086] 206、当该第一内容与该第二内容为对该目标文档中同一个区域的编辑内容时,终端显示选择提示,该选择提示用于提示在内容合并和复制中选择一种处理方式,如果获取到内容合并指令,则执行步骤207,如果获取到复制指令,则执行步骤208。
[0087] 当该第一内容与该第二内容为对该目标文档中同一个区域的编辑内容时,第一用户和第二用户在该区域中的编辑的内容发生了冲突,终端可以显示选择提示,提示第一用户选择保留第一用户和第二用户编辑的内容,还是选择放弃将本次编辑的第一内容作为目标内容中的一部分,而可以复制该第一内容,以便后续想要再编辑该第一内容时直接粘贴即可,而无需再重新编辑。
[0088] 例如,如图9所示,该选择提示可以通过弹窗的形式显示,终端可以显示该选择提示,该选择提示可以用于告知第一用户该区域已被第二用户编辑以及提示从内容合并和复制两种处理方式中选择一种。
[0089] 具体地,终端可以显示内容合并按钮和复制按钮。用户在终端显示选择提示时,可以进行选择操作,该选择操作可以为对该内容合并按钮的触控操作或对该复制按钮的触控操作,如果用户对该内容合并按钮进行触控操作,终端可以获取到对该内容合并按钮的触控操作触发的内容合并指令,终端则可以执行下述步骤207,对第一内容和第二内容进行合并,得到目标内容;如果用户对该复制按钮进行触控操作,终端可以获取到对该复制按钮的触控操作触发的复制指令,终端则可以执行下述步骤208,复制该第一内容。其中,该目标内容即为通过第二用户和第一用户同时编辑后,该区域中所需要显示的最终内容。
[0090] 在一种可能实现方式中,可以由第一用户和第二用户中编辑时间在后的用户所在终端执行该步骤206、下述步骤207或步骤208,再将确定的区域的目标内容通过编辑信息的方式广播给其他正在访问该目标文档的用户。本发明实施例中仅以该第二用户编辑的时间在前,第一用户编辑的时间在后为例进行说明。
[0091] 207、终端基于该第一用户的内容合并指令,对该第一内容和该第二内容进行合并,得到该区域的目标内容,基于该目标内容,执行步骤209。
[0092] 终端获取到内容合并指令后,可以基于该内容合并指令,可以对第一内容和第二内容进行合并,确定该区域的目标内容。其中,该目标内容包括该第一内容和第二内容。
[0093] 在一种可能实现方式中,该终端可以采用内容拼接的方式对两项内容合并,终端对该第一内容与该第二内容进行拼接,得到该区域的目标内容。这样将第一内容和第二内容拼接在一起作为目标内容,可以保留第一用户和第二用户编辑的内容,不会造成数据丢失,可以保证内容获取过程的准确性。且通过上述步骤201至步骤203中按照一定的显示样式显示区域,可以直观地了解到还有其他用户在对区域进行编辑。
[0094] 在一个具体的可能实施例中,终端对第一内容和第二内容进行拼接时,可以按照该第一内容和该第二内容编辑的时间顺序,对该第一内容和该第二内容进行拼接,得到该区域的目标内容。也即是,在对第一内容和第二内容进行拼接时,该第一内容和第二内容的拼接顺序还可以基于该第一内容和第二内容编辑的时间顺序确定。例如,该编辑的时间顺序可以为编辑结束的时间顺序,也可以为开始编辑的时间顺序,在此仅以编辑结束的时间顺序为例进行说明。例如,编辑结束的时间顺序在前的内容在目标内容中的顺序在前,编辑结束的时间顺序在后的内容在目标内容中的顺序在后。当然,也可以设置有:编辑结束的时间顺序在前的内容在目标内容中的顺序在后,编辑结束的时间顺序在后的内容在目标内容中的顺序在前。本发明实施例对此不作限定。
[0095] 具体地,上述拼接过程也可以通过不同的拼接方式实现,在一种可能实现方式中,终端可以基于换行符,对该第一内容和该第二内容进行拼接,得到该区域的目标内容。在此仅以编辑结束的时间顺序在前的内容在目标内容中的顺序在前,且该第一内容编辑结束的时间顺序在后为例进行说明,则该第二内容在该换行符前,该第一内容在该换行符后。
[0096] 例如,以该目标文档为表格为例,如图10和图11所示,第二用户在某个单元格中进行编辑,与此同时,第一用户也在该单元格中进行编辑,在该第一用户结束编辑之前,第二用户编辑了第二内容为123,在此之后第一用户编辑的第一内容为456,该第一用户结束编辑时,终端获取到第一内容为456,则终端可以显示如图9所示的选择提示,如果用户选择了进行内容合并,则终端可以执行该步骤207,通过换行符将第一内容和第二内容拼接在一起,得到如图12所示的目标内容,其中,第二内容在第一行,第二内容在第二行。
[0097] 当然,上述拼接过程也可以通过其他拼接方式实现,例如,通过目标字符进行拼接等,比如加号、空格符等,本发明实施例对此不作限定。
[0098] 在一种可能实现方式中,该第一用户编辑该第一内容的过程中,第二用户还可能删除了该目标文档中该区域中的原有内容,该原有内容是指该第一用户对该区域开始编辑之前该区域的内容。这样第一用户和第二用户均对该区域进行编辑时,其中一个用户对其原有内容的全部或部分进行了删除时,可能在最终显示目标内容时无法直观地体现出来,因而,当接收到对该区域中的原有内容的删除信息时,终端还可以在该区域的第三目标位置上显示删除标记,该删除标记用于表示第二用户在该区域中对该原有内容进行了删除操作。其中,该第三目标位置也可以由相关技术人员预先设置或根据用户的使用习惯进行调整,例如,批注框显示,或该区域的左侧区域或右侧区域等,本发明实施例对此不作限定。
[0099] 需要说明的是,上述步骤206和步骤207为当该第一内容与该第二内容为对该目标文档中同一个区域的编辑内容时,对该第一内容和该第二内容进行合并,得到该区域的目标内容的过程,上述仅以终端显示选择提示,且终端基于第一用户的内容合并指令进行内容获取为例进行说明,在一种可能实现方式中,在步骤205之后,当该第一内容与该第二内容为对该目标文档中同一个区域的编辑内容时,终端可以直接对该第一内容和该第二内容进行合并,得到该区域的目标内容,而无需显示选择提示,也无需由用户进行选择操作,可以提高内容获取的效率和准确性,减少用户操作的复杂度。
[0100] 208、终端基于该第一用户的复制指令,复制该第一内容,将该第二内容作为该区域的目标内容,基于该目标内容,执行步骤209。
[0101] 在上述步骤206中,终端显示选择提示后,用户也可以选择复制这种处理方式,终端可以获取到复制指令,则可以执行该步骤208,基于该复制指令,复制该第一内容,且用户选择复制该第一内容,而不是将其作为目标内容中的一部分,则终端可以将第二用户编辑的第二内容作为该区域的目标内容。
[0102] 例如,以该目标文档为表格为例,如图10和图11所示,第二用户和第一用户在同时对一个单元格进行编辑,第二用户编辑的第二内容为123,第一用户编辑的第一内容为456,且该第一用户编辑结束该第一内容的时间在该第二用户编辑结束第二内容的时间之后,则终端可以显示如图9所示的选择提示,如果用户选择了进行内容合并,则终端可以执行该步骤208,复制第一内容“456”,将第二内容“123”作为目标内容,如图13所示,终端可以执行下述步骤209,在该单元格中显示的目标内容“123”。
[0103] 进一步地,该第一内容可以被复制于剪贴板中。终端还可以显示复制提示,该复制提示用于提示已成功对第一内容进行复制。例如,该复制提示的内容可以为“已复制至剪贴板”。
[0104] 在一种可能实现方式中,在第一用户对该区域进行编辑之前,第二用户还可能已经在该区域中编辑有内容,相应地,上述步骤204之前,该终端还可以获取目标文档中区域中的原有内容,该原有内容是指该第一用户对该区域开始编辑之前该区域的内容。进而,终端在获取到第二内容后,则可以与该原有内容进行比较,以确定在第一用户编辑过程中第二用户是否在该区域中编辑新的内容。因而,在这种实现方式中,步骤205之后可能包括以下三种情况。
[0105] 情况一:当该第二内容与该原有内容不同时,终端可以执行步骤206,显示选择提示。如果获取到内容合并指令,则可以执行步骤207,则该过程即为:当该第二内容与该原有内容不同时,执行该当该第一内容与该第二内容为对该目标文档中同一个区域的编辑内容时,对该第一内容和该第二内容进行合并,得到该区域的目标内容的步骤。
[0106] 在该情况一中,第二内容与原有内容不同,则说明在第一用户对该区域进行编辑的过程中,第二用户也对该区域的内容进行了编辑,得到了新的内容,也即是第二内容,则该第一用户与第二用户编辑的内容发生了冲突,因而在终端获取到内容合并指令时,可以执行步骤207,得到目标内容。
[0107] 情况二:当该第二内容与该原有内容相同时,终端可以将该第一内容作为该区域的目标内容。在该情况二中,第二内容和原有内容相同,则说明在第一用户对该区域进行编辑的过程中,第二用户并未对该区域中的原有内容进行改动,因而第一用户与第二用户对该区域的编辑操作并没有发生冲突,因而终端可以直接将该第一用户编辑的第一内容作为该区域的目标内容。
[0108] 情况三:当该第二内容与该原有内容相同,且该第一内容与该第二内容为对该目标文档中同一个区域的编辑内容时,终端执行对该第一内容和该第二内容进行合并,得到该区域的目标内容的步骤。在该情况三中,在该第一用户对该目标文档中的该区域进行编辑的过程中,该第二用户可能对该区域进行了多次编辑操作,最终确定的第二内容与该区域中的原有内容相同,也即是,第二用户想要该区域中的内容保持为原有内容,这样为了保证多个用户的编辑内容均得到保留,则终端可以对原有内容(也即是第二内容)和第一内容进行合并,得到目标内容。具体地,该合并过程与上述步骤207所示的合并过程同理,本发明实施例在此不多作赘述。
[0109] 当然,还有一种可能情况,在该第一用户对该目标文档中的该区域进行编辑的过程中,第二用户可能并未对该区域中的原有内容进行更改,则终端则可以执行上述情况二或情况三中的步骤,对该原有内容(第二内容)进行覆盖或对原有内容(第二内容)和第一内容进行合并,本发明实施例对此不作限定。
[0110] 209、终端在该区域中显示目标内容。
[0111] 终端在步骤207或步骤208中获取到该区域的目标内容后,可以执行该步骤209,在第一用户的界面中显示该目标内容。当然,该终端还可以将该目标内容通过第三编辑信息发送至服务器,该服务器接收到第三编辑信息后,可以将其广播至第一用户所在终端,从而第一用户所在终端也可以基于该第三编辑信息对目标文档的内容进行更新,也可以在其界面中显示的区域中显示目标内容。
[0112] 本发明实施例通过多个用户同时对同一文档的同一区域进行编辑时,可以基于用户的内容合并指令,对多个用户编辑的内容进行合并,得到该区域最终的内容,而不是基于编辑时间直接对内容进行覆盖,该多个用户编辑的内容均可以保留,因而不会造成数据丢失,获取到的内容的准确率高。
[0113] 上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
[0114] 下面通过一个具体示例对该内容获取方法的具体流程进行说明,图14是本发明实施例提供的一种内容获取方法的流程图,参见图14,以文档为表格,区域为某个单元格为例,终端可以先记录当前输入框的值D1及输入框的坐标,该当前输入框即是指第一用户正在进行编辑的区域,当前输入框的值D1即为原有内容。
[0115] 该第一用户开始在该输入框中输入,在该第一用户输入的过程中,终端还可以判断是否有影响选中单元格坐标的协同行列操作,也即是,终端可以判断第二用户是否有进行上述步骤204所示的增加或删除该单元格前的行或列的操作,或调整该单元格前的行或列的行高或列宽的操作,或删除该单元格所在行或列的操作,这些操作均可能会影响该单元格的坐标,当然,对于删除该单元格所在行或列的操作,终端还可以显示第三标签,该部分内容可以参见上述步骤204所示的内容,本发明实施例在此不多做赘述。对于这些影响该单元格的坐标的操作,终端可以更新选中单元格的坐标。
[0116] 在第一用户输入完成时,终端可以判断第一用户是否输入了数据,例如,可以将该第一用户输入的数据命名为InputValue1,该InputValue1即为上述第一内容。终端可以判断该InputValue1与D1是否一致,如果一致,则该第一用户未输入数据,因而直接退出输入态即可,如果不一致,则说明第一用户输入了数据,终端根据该单元格坐标获取选中单元格内的数据D2,该D2即为上述第二内容,终端可以判断D1和D2是否相同,如果相同,则说明第二用户并未输入新的内容,则可以直接退出输入态,且可以确定该选中单元格中的内容为D1。而如果D1和D2不同,则说明在第一用户对选中单元格中输入内容的同时,第二用户也在该选中单元格中输入了内容,终端可以提示数据有差异,提示用户可以点击仅复制文本,或点合并单元格,该合并单元格是指合并该单元格对应的两项内容D1和D2,也即对应于上述步骤206,如果用户点击合并单元格,则终端可以将输入的内容InputValue1拼接于D2之后,更新D1数据为拼接之后的值,也即是对应于上述步骤207,而如果用户点击复制文本,则终端可以复制InputValue1数据,并退出输入态,该选中单元格中的内容则可以被更新为D2,也即是对应于上述步骤208。
[0117] 图15是本发明实施例提供的一种内容获取装置的结构示意图,参见图15,该装置包括:
[0118] 获取模块1501,用于根据对目标文档的编辑指令,获取第一用户所编辑的第一内容;
[0119] 接收模块1502,用于接收第二内容,该第二内容为第二用户对该目标文档所编辑的内容,该第二用户为该第一用户之外的用户;
[0120] 合并模块1503,用于当该第一内容与该第二内容为对该目标文档中同一个区域的编辑内容时,对该第一内容和该第二内容进行合并,得到该区域的目标内容。
[0121] 在一种可能实现方式中,该合并模块1503用于对该第一内容与该第二内容进行拼接,得到该区域的目标内容。
[0122] 在一种可能实现方式中,该合并模块1503用于基于换行符,对该第一内容和该第二内容进行拼接,得到该区域的目标内容。
[0123] 在一种可能实现方式中,该合并模块1503用于按照该第一内容和该第二内容编辑的时间顺序,对该第一内容和该第二内容进行拼接,得到该区域的目标内容。
[0124] 在一种可能实现方式中,该装置还包括:
[0125] 第一显示模块,用于当该第一内容与该第二内容为对该目标文档中同一个区域的编辑内容时,显示选择提示,该选择提示用于提示在内容合并和复制中选择一种处理方式;
[0126] 该合并模块1503,用于基于该第一用户的内容合并指令,执行该对该第一内容和该第二内容进行合并,得到该区域的目标内容的步骤;
[0127] 相应地,该装置还包括:
[0128] 复制模块,用于当该第一内容与该第二内容为对该目标文档中同一个区域的编辑内容时,基于该第一用户的复制指令,复制该第一内容,将该第二内容作为该区域的目标内容。
[0129] 在一种可能实现方式中,该接收模块1502还用于接收该第二用户的编辑状态;
[0130] 该获取模块1501,还用于根据该第二用户的编辑状态,获取该第二用户对该目标文档所编辑的区域的显示样式;
[0131] 该装置还包括:
[0132] 第二显示模块,用于根据该显示样式,显示该区域。
[0133] 在一种可能实现方式中,该获取模块1501还用于当该第二用户的编辑状态为选中状态时,获取该区域的第一标签,该第一标签用于指示该第二用户正在选中该区域;或,当该第二用户的编辑状态为输入状态时,获取该区域的第二标签,该第二标签用于指示该第二用户正在对该区域进行编辑;
[0134] 相应地,该第二显示模块用于显示该区域,在该区域的第一目标位置上显示该区域的该第一标签或该第二标签。
[0135] 在一种可能实现方式中,该第二显示模块还用于当该第二用户的数量为多个时,按照该第二用户对该区域进行编辑的时间顺序,叠加显示多个第二用户的第一标签或第二标签。
[0136] 在一种可能实现方式中,该装置还包括:
[0137] 第三显示模块,用于显示标记框,该标记框中包括该区域,该标记框用于指示该区域处于被第二用户进行编辑的状态;
[0138] 相应地,该装置还包括:
[0139] 第四显示模块,用于当该第二用户的数量为多个时,显示多个标记框,不同第二用户对应的标记框的显示样式不同。
[0140] 在一种可能实现方式中,该第二显示模块还用于当该第一用户的编辑状态为输入状态时,隐藏该第一标签或该第二标签。
[0141] 在一种可能实现方式中,该第二显示模块还用于当光标悬停于该第一目标位置时,显示隐藏的该第一标签或该第二标签。
[0142] 在一种可能实现方式中,该装置还包括:
[0143] 第五显示模块,用于当接收到该区域的删除信息时,在该区域的第二目标位置上显示第三标签,该第三标签用于指示该区域已被该第二用户删除。
[0144] 在一种可能实现方式中,该装置还包括:
[0145] 第六显示模块,用于当接收到对该区域中的原有内容的删除信息时,在该区域的第三目标位置上显示删除标记,该删除标记用于表示第二用户在该区域中对该原有内容进行了删除操作。
[0146] 在一种可能实现方式中,该获取模块1501还用于获取该目标文档中该区域中的原有内容,该原有内容是指该第一用户对该区域开始编辑之前该区域的内容;
[0147] 相应地,该合并模块1503还用于当该第二内容与该原有内容不同时,执行该当该第一内容与该第二内容为对该目标文档中同一个区域的编辑内容时,对该第一内容和该第二内容进行合并,得到该区域的目标内容的步骤。
[0148] 在一种可能实现方式中,该获取模块1501还用于当该第二内容与该原有内容相同,且该第一内容与该第二内容为对该目标文档中同一个区域的编辑内容时,将该第一内容作为该区域的目标内容。
[0149] 在一种可能实现方式中,该获取模块1501还用于当该第二内容与该原有内容相同,且该第一内容与该第二内容为对该目标文档中同一个区域的编辑内容时,执行对该第一内容和该第二内容进行合并,得到该区域的目标内容的步骤。
[0150] 本发明实施例提供的装置,通过多个用户同时对同一文档的同一区域进行编辑时,可以基于用户的内容合并指令,对多个用户编辑的内容进行合并,得到该区域最终的内容,而不是基于编辑时间直接对内容进行覆盖,该多个用户编辑的内容均可以保留,因而不会造成数据丢失,获取到的内容的准确率高。
[0151] 需要说明的是:上述实施例提供的内容获取装置在获取内容时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将终端的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的内容获取装置与内容获取方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0152] 图16是本发明实施例提供的一种终端的结构框图。该终端1600可以是:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端1600还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
[0153] 通常,终端1600包括有:处理器1601和存储器1602。
[0154] 处理器1601可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1601可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1601也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1601可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1601还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
[0155] 存储器1602可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1602还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1602中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1601所执行以实现本发明中方法实施例提供的内容获取方法,该内容获取方法可以包括:根据对目标文档的编辑指令,获取第一用户所编辑的第一内容;接收第二内容,该第二内容为第二用户对该目标文档所编辑的内容,该第二用户为该第一用户之外的用户;当该第一内容与该第二内容为对该目标文档中同一个区域的编辑内容时,对该第一内容和该第二内容进行合并,得到该区域的目标内容。
[0156] 在一些实施例中,终端1600还可选包括有:外围设备接口1603和至少一个外围设备。处理器1601、存储器1602和外围设备接口1603之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1603相连。具体地,外围设备包括:输入设备1604、显示屏1605和电源1606中的至少一种。
[0157] 外围设备接口1603可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1601和存储器1602。在一些实施例中,处理器1601、存储器1602和外围设备接口1603被集成在同一芯片或电路板上;在一些其他实施例中,处理器1601、存储器1602和外围设备接口1603中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
[0158] 输入设备1604可以用于提供输入功能,该输入设备1604可以通过外围设备接口1603与处理器1601或存储器1602连接,例如,该输入设备1604可以为输入板、键盘、鼠标或触摸屏等。在本发明实施例中,可以基于该输入设备1604,为用户提供对目标文档的编辑功能,从而获取第一用户所编辑的第一内容。该处理器1601可以获取得到该第一内容,并基于接收到的第二内容,执行上述内容合并步骤,得到目标内容。
[0159] 显示屏1605用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1605是触摸显示屏时,显示屏1605还具有采集在显示屏1605的表面或表面上方的触摸信号的能力,该触摸显示屏可以作为上述输入设备1604。该触摸信号可以作为控制信号输入至处理器1601进行处理。此时,显示屏1605还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1605可以为一个,设置终端1600的前面板;在另一些实施例中,显示屏1605可以为至少两个,分别设置在终端1600的不同表面或呈折叠设计;在再一些实施例中,显示屏1605可以是柔性显示屏,设置在终端1600的弯曲表面上或折叠面上。甚至,显示屏1605还可以设置成非矩形的不规则图形,也即异形屏。显示屏1605可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。在本发明实施例中,该显示屏1605可以通过外围设备接口1603,从该处理器1601处或该存储器1602处获取得到目标文档中该区域的显示样式,并对该区域进行显示,在获取得到该区域中的目标内容时也可以对该目标内容进行显示。
[0160] 电源1606用于为终端1600中的各个组件进行供电。电源1606可以是交流电、直流电、一次性电池或可充电电池。当电源1606包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
[0161] 本领域技术人员可以理解,图16中示出的结构并不构成对终端1600的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
[0162] 在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由处理器执行以完成上述实施例中的内容获取方法。例如,该计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。
[0163] 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0164] 上述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。