一种应用内文本复制方法、复制装置、存储介质和电子设备与流程

文档序号:14155845阅读:192来源:国知局

本发明涉及计算机领域,特别涉及一种应用内文本复制方法及复制装置。



背景技术:

随着无线技术的发展与智能手机的兴起,能够实时交换信息的即时通讯工具越来越受到人们欢迎。

为了方便信息的编辑,现有即时通讯工具一般具有文本复制粘贴功能。但目前的复制粘贴都是借助系统剪贴板来实现的,这样有一个弊端,就是应用内复制的消息可以拷贝到应用外,在某些应用特别是企业即时通讯应用中,用户不小心可能就泄露了企业敏感信息。而且,对于那些对信息安全要求比较严格的企业来说,其中的需求就包括应防外链复制,即文本消息不能复制到应用外的其他应用中。因此,有待解决现有技术中存在的复制问题。



技术实现要素:

针对现有技术的缺陷,本发明提供一种应用内文本复制方法及装置,能够实现应用内的消息不能复制到应用外的需求。

根据本发明的一个方面,提供一种应用内文本复制方法,包括以下步骤:

一种应用内文本复制方法,包括以下步骤:

获取包括文本复制操作的事件的触发信号;

调用预设的与所述事件对应的事件处理程序;

获取需要复制的文本内容写入应用内存储系统,所述应用内存储系统禁止应用外访问;

如果所述事件处理程序需要执行文本复制以外的其他操作,则完成所述其他操作;

结束所述事件处理程序。

进一步的,所述获取包括文本复制操作的事件的触发信号步骤之前还包括,建立事件触发信号的监视程序。

进一步的,所述调用预设的与所述事件对应的事件处理程序步骤之前还包括,对于包括文本复制操作的操作系统事件,将其对应的操作系统事件处理程序更改为预设的与所述事件对应的事件处理程序。

进一步的,所述获取需要复制的文本内容写入应用内存储系统步骤之前还包括,建立应用内存储系统。

进一步的,所述包括文本复制操作的事件包括但不限于以下至少一个,复制、剪切、转发、分享。

进一步的,所述事件为剪切时,完成所述其他操作步骤包括,删除需要剪切的文本;

所述事件为本应用的转发或分享时,完成所述其他操作步骤包括,从应用内存储系统读取复制后的文本转发或分享到本应用内。

进一步的,所述结束所述事件处理程序步骤还包括,禁止操作系统对所述事件的后续处理,避免文本被复制入剪贴板。

进一步的,所述结束所述事件处理程序步骤之后还包括:当获取到本应用预设的粘贴事件触发信号时,从应用内存储系统读取复制后的文本粘贴到本应用内。

进一步的,所述获取到本应用预设的粘贴事件触发信号步骤之前还包括:在功能菜单中加入本应用预设的粘贴菜单,用于触发本应用预设的粘贴事件触发信号。

根据本发明的另一方面,还提供一种应用内文本复制装置,包括以下程序单元:

获取单元,用于获取包括文本复制操作的事件的触发信号;

调用单元,用于调用预设的与所述事件对应的事件处理程序;

写入单元,用于获取需要复制的文本内容写入应用内存储系统;

处理单元,用于执行事件处理程序及其他操作。

进一步的,所述装置还包括:监视单元,用于建立事件触发信号的监视程序。

进一步的,所述装置还包括:应用内存储单元,用于存储需要复制的文本内容,并禁止应用外访问。

根据本发明的另一方面,还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上任一项所述方法的步骤。

根据本发明的另一方面,还提供一种电子设备,包括:上述的计算机可读存储介质;以及

一个或多个处理器,用于执行所述计算机可读存储介质中的程序。

根据本发明的另一方面,还提供一种计算机程序产品,其包括处理器可执行的程序,该程序被处理器执行时实现如权上任一项所述方法的步骤。

由本发明提供的上述技术方案可以看出,本发明的应用内文本复制方法及装置,既能使应用外复制内容粘贴到应用内,又能使应用内的复制内容无法粘贴到应用外,还不影响应用内的复制、粘贴。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本公开的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1为本发明一个实施例的应用内文本复制方法流程示意图。

图2为本发明另一实施例的应用内文本复制方法流程示意图。

图3为本发明另一实施例的应用内文本复制装置的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

如图1所示,一种应用内文本复制方法,包括以下步骤:

步骤s110,获取包括文本复制操作的事件的触发信号。

目前应用文本复制操作的具体表现形式分为两种:一种是系统自带的控件操作,例如文本框edittext操作,或者textview操作,另一种是应用内自定义的操作事件。

系统自带的文本框操作是指在输入文本框上长按文本会弹出系统默认的文本操作菜单,比如“全选”、“剪切”、“复制”、“粘贴”、“分享”等菜单,此外还可能包括“插入”、“粘贴”等文本插入操作菜单,当点击复制或剪切时把文本保存到系统剪贴板中,当点击粘贴时再从系统剪贴板中拷贝出来,这些操作以及菜单的弹出都是系统内部实现好的。

应用内自定义的操作事件是指聊天列表中的文本消息长按会弹出应用自己定制的复制菜单项,如微信消息上长按会弹出“复制、删除、转发”等菜单。当点击“复制”后保存复制内容到系统剪贴板中,在粘贴的地方再从系统剪贴板中取出复制内容贴入。

点击文本操作菜单上的任意一个菜单项,均可以成为包括文本复制操作的事件的触发信号,这些触发信号的具体实现形式可以是操作系统或者应用中的消息、事件或中断;比如点击菜单上的“复制”菜单项,就成为文本复制操作事件的触发信号,以便调取后续处理程序。这种包括文本复制操作的事件可以是复制、剪切、转发、分享等中的至少一个。

以android系统为例,对系统文本框(edittext)处理时,在onactionitemclicked方法中对菜单的点击操作即产生一个触发信号,在android系统获取到这个触发信号后,会进一步调用后续的处理程序。

步骤s120,调用预设的与所述事件对应的事件处理程序。

当获取触发信号后,对该事件调取相应的预设的事件处理程序,即拦截系统自带的文本框的“复制”、“剪切”菜单项的事件处理程序,因此“复制”、“剪切”的内容不会保存到系统剪切板中,仅允许在事件处理程序内进行“复制”、“剪切”、“粘贴”等操作,进而防止了“复制”、“剪切”信息的外泄。

以android系统为例,对系统文本框(edittext)处理时,调用事件处理程序的接口设置为actionmode.callback2()接口,而不再调用系统自带的事件处理程序。而对于应用自定义的包括复制操作的事件处理,其事件处理程序本来就是由应用自己设定的,因此只需要预先设置好其相应的事件处理程序即可。

步骤s130,获取需要复制的文本内容写入应用内存储系统,所述应用内存储系统禁止应用外访问。

无论是针对系统自带的文本框操作形式,还是针对应用内自定义的操作事件形式,对需要复制的文本内容均只写入应用内存储系统,该应用内存储系统是禁止应用外访问的。

应用内存储系统可以在本步骤或本方法之前预先建立好,也可以是在获取需要复制的文本内容后进行建立的。

以android系统为例,为了做到应用内复制粘贴,需要建立应用内的存储系统,这里用android系统的轻量级存储类sharepreferences,同时操作模式设置为mode_private,表示应用外无法访问。sharepreferences以键值对的形式存储数据,它是一种map结构,这里设置复制的key为“snap_copy”。将要复制的文本写入这个key中。

进一步的,针对不同的事件触发信号,可能会涉及不同的后续其他操作,比如当事件触发信号为“剪切”时,在剪切内容写入应用内存储系统的同时或在其之后,还包括在显示界面上删除剪切内容的操作;当事件触发信号为“转发”或“分享”时,在转发或分享内容写入应用内存储系统的同时或在其之后,还包括从应用内存储系统读取复制后的文本转发或分享到本应用内;以及在所有文本复制操作之后,还包括处理关闭菜单,恢复顶层窗口等必要的其他处理操作。

步骤s140,结束所述事件处理程序。

结束所述事件处理程序,包括禁止操作系统对所述事件的后续处理,避免文本被复制入系统剪贴板中,防止了消息的外链操作。

通过本发明的实施例可以看出,本发明在获取触发信号后,调用了预设的与该触发信号对应的事件处理程序,而不是调用操作系统自带的处理程序,其需要复制的文本内容也是写入了预设的应用内存储系统,因此有效的隔离了应用内的内容复制到应用外的途径,既保证了原有复制系统的灵活性,又实现了应用内复制内容无法外链复制的功能,保证了防止信息外泄的安全性。

在上一实施例的基础上,本发明又提供了另一种更为详尽的实施例,对于本实施例与上述实施例原理相同的步骤,在本实施例中不再赘述。如图2所示,一种应用内文本复制方法,包括以下步骤:

步骤s210,建立事件触发信号的监视程序。

在获取触发信号之前,需要建立事件触发信号的监视程序,来监视触发信号是发生在系统自带的文本框的操作情形下,还是发生在应用内自定义的操作事件操作情形下,针对不同的情形,后续执行不同的事件处理程序。

步骤s220,获取包括文本复制操作事件的触发信号。

包括文本复制操作的事件可以是复制、剪切、转发、分享等中的至少一个。

步骤s230,对于包括文本复制操作的操作系统事件,将其对应的操作系统事件处理程序更改为预设的与所述事件对应的事件处理程序。

对系统文本框原有的菜单项“复制”、“剪切”进行拦截。

具体的,以android系统为例,对系统文本框(edittext)设置文本选择菜单拦截操作的方法为设置edittext的setcustomselectionactionmodecallback方法,设置edittext插入菜单拦截操作的方法为设置edittext的setcustomselectionactionmodecallback方法,在方法里实现actionmode.callback2()接口,在onactionitemclicked方法中对菜单选点击操作进行拦截。

进一步的,步骤s230可以放在步骤s220之前,或者放在步骤s210之前。

步骤s240,调用预设的与所述事件对应的事件处理程序。

步骤s250,获取需要复制的文本内容写入应用内存储系统,所述应用内存储系统禁止应用外访问;如果事件处理需要执行文本复制以外的其他操作,则完成其他操作。

步骤s260,当获取到本应用预设的粘贴事件触发信号时,从应用内存储系统读取复制后的文本粘贴到本应用内。

针对来自应用外的“粘贴”操作,系统不进行拦截,自动从系统剪切板中获取上次复制的文本(这里复制来源为应用外,即将应用外的复制内容粘贴入应用内),然后插入到文本框的光标处进行粘贴即可。

当获取到本应用预设的粘贴事件触发信号时,即在应用内执行“粘贴”操作时,从应用内存储系统读取复制后的文本粘贴到本应用内。

在此步骤之前,还可以包括在功能菜单中加入本应用预设的粘贴菜单,用于触发本应用预设的粘贴事件触发信号。

下面以具体的应用场景进一步阐述本发明的具体实施例,以android系统为例,在做到应用内复制、粘贴之前,首先建立应用内存储系统:这里用android系统的轻量级存储类sharepreferences,同时操作模式设置为mode_private,表示应用外无法访问。sharepreferences以键值对的形式存储数据,它是一种map结构,这里设置复制的key为”snap_copy”。

接下来针对目前即时通讯中复制粘贴的两种形式进行处理。

第一种情形例如是,对于系统文本框(edittext)的处理:

对系统文本框(edittext)的文本选择菜单与插入菜单设置拦截器,对原有的菜单项“复制”、“剪切”进行拦截。

具体的,对edittext设置文本选择菜单拦截操作的方法为设置edittext的setcustomselectionactionmodecallback方法,设置edittext插入菜单拦截操作的方法为设置edittext的setcustomselectionactionmodecallback方法,在方法里实现actionmode.callback2()接口,在onactionitemclicked方法中对菜单选点击操作进行拦截。

(1)针对“复制”选项操作进行拦截,作如下处理:

获取当前文本框所选文本,具体为所选范围起始位置到终止位置,比如一句话“产品文档在161服务器上,你去取一下”,用户可能对“产品文档在161服务器上”进行了长按,然后选择了复制,那么,本次所选文本即为“产品文档在161服务器上”;

把所选文本存入应用内存储系统内,具体为设置sharepreferences中key为“snap_copy”的value值为“产品文档在161服务器上”;

关闭菜单,不继续交给系统处理,也就是此次复制处理结束。

(2)针对“剪切”选项操作进行拦截,作如下处理:

获取当前文本框所选文本,具体为所选范围起始位置到终止位置,比如一句话“产品文档在161服务器上,你去取一下”,用户可能对“产品文档在161服务器上”进行了长按,然后选择了剪切,那么,本次所选文本即为“产品文档在161服务器上”;

对文本框重新赋值,本例中,重新赋值为“,你去取一下”;

把所选文本存入应用内存储系统内,具体为设置sharepreferences中key为“snap_copy”的value值为“产品文档在161服务器上”;

关闭菜单,不继续交给系统处理,也就是此次剪切处理结束。

(3)针对“粘贴”选项操作不进行拦截,系统自动从系统剪切板中获取上次复制的文本(这里复制来源为应用外),然后插入到文本框的光标处进行粘贴。

至此,我们实现了针对edittext的应用内复制与剪切后文本内容无法粘贴到应用外的功能,也保留了原有的应用外复制的内容可以粘贴到应用内的功能。

第二种情形例如是,针对应用内自定义长按事件处理:

应用内的长按事件,比如在文本消息上长按会弹出”复制”、“转发”、“删除”等菜单。

(1)针对“复制”选项操作,作如下处理;

获取当前长按文本消息的消息内容,比如“产品文档在161服务器上,你去取一下”;

把文本消息内容存入应用内存储系统内,具体为设置sharepreferences中key为“snap_copy”的value值为“产品文档在161服务器上,你去取一下”;

关闭长按弹出菜单,处理结束。

(2)针对“粘贴”选项操作,作如下处理;

对文本选择菜单与文本插入菜单进行拦截,在actionmode.callback2()接口的oncreateactionmode方法中添加自定义的一项菜单,取名比如“snap粘贴”,固名思义,意思为snap应用内的粘贴,同时针对“snap粘贴”,作以下处理:

从应用内存储系统sharepreferences中取出key为”snap_copy“的值,比如“产品文档在161服务器上”;

在文本框(edittext)的光标处插入上一步获取的文本内容;

本次处理结束。

通过以上对系统菜单“复制”、“剪切”的处理和“snap粘贴”菜单的添加及处理,我们实现了应用内复制、剪切内容存入应用内的存储系统中,防止了消息的外链操作,同时针对应用外的复制内容,可以粘贴到应用内,既保证了一定了安全性,又没有破坏原有系统剪切板的灵活性。

在某些企业中,企业员工在单位内用的是企业发的手机,同时应用比如企业即时通讯软件也是安装在这些手机上的,比如华为mate8、mate9手机,在这种场景下,本专利中的技术方案满足了企业的防外链复制需求。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域的技术人员也应该知悉,说明书中所描述的实施例均为优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

根据本发明的另一方面,如图3所示,一种应用内文本复制装置300,包括以下程序单元:

获取单元301,用于获取包括文本复制操作的事件的触发信号;

调用单元302,用于调用预设的与所述事件对应的处理单元;

处理单元303,用于执行事件处理程序或系统程序,以及其他操作;

写入单元304,用于获取需要复制的文本内容写入应用内存储系统。

进一步的,应用内文本复制装置300还包括:

监视单元305,用于建立事件触发信号的监视程序;

应用内存储单元306,用于存储需要复制的文本内容,并禁止应用外访问。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处请参见方法实施例的部分说明即可,不再进行过多的赘述。

根据本发明的另一方面,还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:

获取包括文本复制操作的事件的触发信号;

调用预设的与所述事件对应的事件处理程序;

获取需要复制的文本内容写入应用内存储系统,所述应用内存储系统禁止应用外访问;

如果所述事件处理程序需要执行文本复制以外的其他操作,则完成所述其他操作;

结束所述事件处理程序。

根据本发明的另一方面,还提供一种电子设备,包括:

如上所述的计算机可读存储介质;以及

一个或多个处理器,用于执行所述计算机可读存储介质中的程序。

根据本发明的另一方面,还提供一种计算机程序产品,其包括处理器可执行的程序,该程序被处理器执行时实现以下步骤:

获取包括文本复制操作的事件的触发信号;

调用预设的与所述事件对应的事件处理程序;

获取需要复制的文本内容写入应用内存储系统,所述应用内存储系统禁止应用外访问;

如果所述事件处理程序需要执行文本复制以外的其他操作,则完成所述其他操作;

结束所述事件处理程序。

本发明既保证了原有复制系统的灵活性,又实现了应用内复制内容无法外链复制的功能。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本公开的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。本说明书中涉及到的步骤编号仅用于区别各步骤,而并不用于限制各步骤之间的时间或逻辑的关系,除非文中有明确的限定,否则各个步骤之间的关系包括各种可能的情况。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本公开的范围之内并且形成不同的实施例。例如,在权利要求书中所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本公开的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本公开还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本公开的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本公开进行说明而不是对本公开进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本公开可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。

以上所述仅是本公开的具体实施方式,应当指出的是,对于本领域的普通技术人员来说,在不脱离本公开精神的前提下,可以作出若干改进、修改、和变形,这些改进、修改、和变形都应视为落在本申请的保护范围内。

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