首页 理论教育 深入了解iOS粘贴板操作及安全性

深入了解iOS粘贴板操作及安全性

时间:2023-06-23 理论教育 版权反馈
【摘要】:UIPasteboard类承担了粘贴板的相关操作。公共粘贴板被称为系统粘贴板;私有粘贴板则由应用程序自行创建,因此被称为应用程序粘贴板。需要注意的是,粘贴板在设备重启和应用卸载之间都是持久的,其中的信息并不会被删除。从iOS 10开始,出于安全和隐私角度考虑,查找粘贴板已经被表示为废弃、不可使用状态。此外,从iOS 10开始,有一个新的Handoff功能,允许一般的粘贴板内容在设备之间自动传输。设置的时间和日期一到,系统会从粘贴板中删除相关内容。

深入了解iOS粘贴板操作及安全性

UIPasteboard类承担了粘贴板的相关操作。它将数据共享的机制标准化,此外它还提供查找功能,以及通过定制URL进行不同应用间的数据传输。

我们可以通过UIPasteboard的方法创建一个或获取系统的粘贴板。粘贴板可能是公共的,也可能是私有的。公共粘贴板被称为系统粘贴板;私有粘贴板则由应用程序自行创建,因此被称为应用程序粘贴板。粘贴板必须有唯一的名字,UIPasteboard定义了两个系统粘贴板,每个都有自己的名字和用途。

1.General

用于剪切、复制和粘贴操作,兼容大部分数据类型,可以通过该UIPasteboard类的类属性general来取得代表通用粘贴板的单例对象。我们可以使用此粘贴板在应用程序内或应用程序之间复制和粘贴文本、图像、URL链接、颜色和其他数据。需要注意的是,粘贴板在设备重启和应用卸载之间都是持久的,其中的信息并不会被删除。

2.UIPasteboardNameFind(www.xing528.com)

用于搜索操作。当前用户在搜索框(UISearchBar)输入的字符串将被写入到这个粘贴板中,因此可以在不同的应用程序中共享。通过调用如下方法可以创建自定义应用程序粘贴板:

我们也可以使用它来获取General粘贴板,但是既然已经有类属性general来获取了,建议还是使用类属性。此方法返回的应用程序粘贴板不是持久性的,仅在应用程序退出之前存在。从iOS 10开始,出于安全和隐私角度考虑,查找粘贴板已经被表示为废弃、不可使用状态。不推荐使用持久命名的粘贴板,而是推荐使用共享容器读者可以查阅FileManager的文档来了解详细的内容。此外,从iOS 10开始,有一个新的Handoff功能,允许一般的粘贴板内容在设备之间自动传输。我们可以控制粘贴板内容的切换行为,并可以使用setItems(_:options :)方法将粘贴板设置为过期。要从Handoff中排除某个粘贴板,需要调用setItems(_:options :)方法,在options参数中使用localOnly指定需要排除的粘贴板;要指定复制数据的过期时间和日期,需要调用setItems(_:options :)方法,在options参数中使用expirationDate指定过期时间。设置的时间和日期一到,系统会从粘贴板中删除相关内容。

我们也可以使用它来获取General粘贴板,但是既然已经有类属性general来获取了,建议还是使用类属性。此方法返回的应用程序粘贴板不是持久性的,仅在应用程序退出之前存在。从iOS 10开始,出于安全和隐私角度考虑,查找粘贴板已经被表示为废弃、不可使用状态。不推荐使用持久命名的粘贴板,而是推荐使用共享容器,读者可以查阅FileManager的文档来了解详细的内容。此外,从iOS 10开始,有一个新的Handoff功能,允许一般的粘贴板内容在设备之间自动传输。我们可以控制粘贴板内容的切换行为,并可以使用setItems(_:options :)方法将粘贴板设置为过期。要从Handoff中排除某个粘贴板,需要调用setItems(_:options :)方法,在options参数中使用localOnly指定需要排除的粘贴板;要指定复制数据的过期时间和日期,需要调用setItems(_:options :)方法,在options参数中使用expirationDate指定过期时间。设置的时间和日期一到,系统会从粘贴板中删除相关内容。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈