Ios 将文本作为字符串共享到其他应用程序
我有一个字符串,基本上如下所示: 分数: 玩家一:得分Ios 将文本作为字符串共享到其他应用程序,ios,objective-c,sharing,Ios,Objective C,Sharing,我有一个字符串,基本上如下所示: 分数: 玩家一:得分 球员两分 第三名:得分 我想将此作为文本分享到诸如WhatsApp、Facebook、iMessage等应用程序。实现这一点的最佳方式是什么?我尝试过以.txt文件的形式共享,但它以文件的形式共享,而不是以WhatsApp中的常规消息的形式共享。您可以使用自定义URL方案。Facebook和WhatsApp等应用程序通常都有自己的方案,您可以使用它们将数据发送到这些应用程序中。请参见WhatsApp的信息: 或者,您可以使用UIActivi
球员两分
第三名:得分
我想将此作为文本分享到诸如WhatsApp、Facebook、iMessage等应用程序。实现这一点的最佳方式是什么?我尝试过以.txt文件的形式共享,但它以文件的形式共享,而不是以WhatsApp中的常规消息的形式共享。您可以使用自定义URL方案。Facebook和WhatsApp等应用程序通常都有自己的方案,您可以使用它们将数据发送到这些应用程序中。请参见WhatsApp的信息: 或者,您可以使用
UIActivityViewController
。这还支持其他数据类型,而不仅仅是字符串(请参阅)
这里有一篇关于这个方法的不错的博文:在swift中,你可以这样做来共享一个字符串
var shareString = "Hello i am share string please share me!";
var activityViewController: UIActivityViewController = UIActivityViewController(activityItems: [shareString], applicationActivities: nil);
var currentViewController:UIViewController = UIApplication.sharedApplication().keyWindow!.rootViewController!
currentViewController.presentViewController(activityViewController, animated: true, completion: nil);
UIActivityViewController接受参数 第一个activityItems是一个类型为Any的数组,您可以传递任何想要共享的数据,如果您想要共享不同的数据类型,您可以使用NSArray并将其强制转换为任何类似的数组
let activityItems:NSArray=[object1,object2]as![任何]
第二个应用程序活动,即您的应用程序可能提供的服务,通常为零
对于Swift 3->4.2,使用以下语法:
let yourMessage = "this is your\n message that you want to share !!"
let activityItems = [yourMessage]
let activityController = UIActivityViewController(activityItems: activityItems , applicationActivities: nil)
self.present(activityController, animated: true, completion: nil)
自iOS 6以来,苹果提供了方便但却被忽视的UIActivityViewController类 首先,创建
UIActivityViewController
的实例,对于activityItems
,将消息或URL或两者传递到应用程序的数据文件。根据用户从“活动”菜单中选择的活动,iOS使用您传入的消息预填充其内容
例如,如果用户选择通过电子邮件共享书籍,则您传入的消息将预先填充电子邮件正文。由于并非所有活动都具有这种能力,例如空投,iOS可能会丢弃该消息
最后,将UIActivityViewController
呈现给用户
let shareString = "Hello This is a sharingText!"
let shareUrl = URL(string: "https://www.google.com")
let activityViewController: UIActivityViewController = UIActivityViewController(activityItems: [shareString, shareUrl], applicationActivities: nil)
self.present(activityViewController, animated: true, completion: nil)
有没有一种方法可以与任何可以接收文本的应用程序共享,而不是显式地包含某些应用程序?我知道你可以对图像、.txt等文件这样做。我已经试过了,我不认为它会带来任何第三方应用程序。也许我最好的选择就是使用自定义URL方案,并包括最流行的消息传递应用程序。我以前没有实际使用过
UIActivityViewController
,我过去使用过URL方案。他们在我需要他们的情况下为我工作。谢谢你的帮助。我将使用自定义URL方案,对于用户想要共享的应用程序不包括在内的情况,我可以选择另存为图像或.txt文件。好主意。很高兴这有帮助。
let shareString = "Hello This is a sharingText!"
let shareUrl = URL(string: "https://www.google.com")
let activityViewController: UIActivityViewController = UIActivityViewController(activityItems: [shareString, shareUrl], applicationActivities: nil)
self.present(activityViewController, animated: true, completion: nil)