应用之间共享数据的不同方式-iOS

一个好主意大约是百分之十,需要实施和辛勤工作,而运气是百分之九十。 — 川崎圭

作为开发人员,我们总是对社区,企业或产品的贡献有所了解,但要实施它,则是优先考虑的事情。

开始时不一定要很棒,但是就必须变得很棒。 — Zig Ziglar

这是关于在单个设备中的两个应用之间共享数据。 就像我们想共享登录访问权限,电子邮件ID,照片,事件或文件等。

通过以下方式,我们可以在Apps之间共享数据。

UIActivityViewController – iOS 6.0+

您的应用负责配置,展示和关闭该视图控制器。 视图控制器的配置涉及指定视图控制器应在其上操作的数据对象。 (您还可以指定应用程序支持的自定义服务的列表。)在显示视图控制器时,必须使用适用于当前设备的适当方法。 在iPad上,必须在弹出窗口中显示视图控制器。 在iPhone和iPod touch上,必须以模态显示。

打开UIActivityViewController并指定要共享的数据类型,并将向活动视图控制器显示支持该文件类型的应用程序。

要接收使用AirDrop发送到您的应用的文件,请执行以下操作:

  • 在Xcode中,声明对您的应用程序能够打开的文档类型的支持。
  • 在您的应用程序委托中,实现application:openURL:sourceApplication:annotation:方法。 使用该方法可以接收其他应用发送的数据。

Xcode项目的“信息”选项卡包含“文档类型”部分,用于指定您的应用支持的文档类型。 至少必须为文档类型指定一个名称,并为数据类型指定一个或多个UTI。 例如,要声明支持PNG文件,您可以将public.png作为UTI字符串包括在内。 iOS使用指定的UTI来确定您的应用是否符合打开给定文档的条件。

自定义网址方案

在任何平台上的Safari中运行的本机iOS应用程序和Web应用程序都可以使用这些方案与系统应用程序集成,并为用户提供更无缝的体验。 例如,如果您的iOS应用显示电话号码,则只要有人点击其中一个电话号码,便可以使用适当的URL来启动“电话”应用程序。 同样,单击iTunes链接会启动iTunes应用程序并播放链接中指定的歌曲。 用户单击链接时,发生的情况取决于平台和已安装的系统应用程序。

要在我们的应用程序中启用URL方案,我们必须向信息选项卡添加自定义url方案。 打开safari,然后输入[URL_scheme]://parameter ,它将打开应用程序。

在AppDelegate类中编写一个函数以提取参数并相应地导航应用程序。

 func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool { 
let urlScheme = url.scheme //[URL_scheme]
let host = url.host //red
}

共享扩展名— iOS 8.0+

共享扩展为用户提供了一种与其他实体(如社交共享网站或上传服务)共享内容的便捷方式。 例如,在包含“共享”按钮的应用程序中,用户可以选择代表社交共享网站的“共享”扩展程序,然后使用它发布评论或其他内容。

共享扩展名是一种类型的扩展名,例如“今日”,“操作”,“自定义键盘”等。当用户选择您的共享扩展名时,您将显示一个视图,供其撰写内容并将其发布。 您可以基于系统提供的撰写视图控制器创建视图,也可以创建完全自定义的撰写视图。 您可以使用添加目标来添加共享扩展名,然后在“应用程序扩展”部分中选择“共享扩展名”。

共享扩展UI继承自SLComposeServiceViewController.
SLComposeServiceViewController.
共享扩展使用其主视图控制器的extensionContext属性来获取NSExtensionContext对象,该对象包含用户的初始文本以及帖子的任何附件,例如链接,图像或视频。

应用组

使用共享的应用程序组在两个/多个应用程序之间或包含应用程序的共享数据/文件。 应用程序组创建一个安全的容器,多个进程可以访问该容器。 通常,每个进程都在自己的沙盒环境中运行,但是应用程序组允许两个进程共享一个公共目录。

允许您将数据存储到共享组,一组应用程序中的其他应用程序可以访问该共享组。 共享钥匙串访问的所有应用程序必须使用相同的应用程序ID前缀。 意味着所有要共享数据的应用程序必须具有相同的开发人员团队才能发布这些应用程序。

共享钥匙串访问-iOS 3.0+

启用钥匙串共享可使您的应用程序与团队开发的其他应用程序共享钥匙串中的数据。

从iPhone OS 3.0开始,可以在一系列应用程序或包含应用程序(如扩展名)之间共享数据。 如果您遵循免费/高级应用程序的通用路径,或者如果您有一组需要共享某些通用帐户设置的相关应用程序,则可以提供更好的用户体验。

如果钥匙串是由同一位开发人员在特定条件下发布的,则它们可以在多个iOS应用程序之间共享。 在两个应用程序之间共享钥匙串数据的最重要要求是两个应用程序必须具有相同的应用程序ID前缀。

自定义粘贴板-iOS 3.0+

一个对象,可帮助用户在应用程序中从一个地方共享数据到另一个地方,以及从您的应用程序共享到其他应用程序。
要与其他任何应用共享数据,请使用系统范围内的通用粘贴板; 要与团队中的另一个应用共享数据(该团队具有与要共享的应用相同的团队ID),请使用命名粘贴板。

通常,应用程序中的对象会在用户请求对用户界面中的选定内容进行复制,剪切或重复操作时将数据写入粘贴板。 然后,相同或不同应用程序中的另一个对象会从剪贴板中读取该数据,并在新位置将其呈现给用户; 这通常在用户请求粘贴操作时发生。


如果您喜欢阅读这篇文章,请分享并给予鼓掌,以便其他人可以找到它!

您可以在Medium上关注我以获取新文章。 另外,请通过LinkedIn Twitter与我联系。

如果您有任何评论,问题或建议,请随时在下面的评论部分中发布它们!