UIActivityController 分享 URL 文件
Posted
技术标签:
【中文标题】UIActivityController 分享 URL 文件【英文标题】:UIActivityController to share URL file 【发布时间】:2016-10-22 11:04:26 【问题描述】:我想分享一个在应用程序中创建的 URL 文件和一个文本。但它似乎只能共享文本,不能共享 URL 或UIImage
等任何数据。
我正在使用的代码:
let sharedVideo = Video(Title: _data[1], VideoID: _data[0], Duration: _data[3], ViewCount: _data[2])
let sharedURL = VideoManager.exportData(video: sharedVideo)
let shareItems:Array = [sharedURL,"check this out baby!"] as [Any]
let activityViewController = UIActivityViewController(activityItems: shareItems, applicationActivities: nil)
self.present(activityViewController, animated: true, completion: nil)
我还使用UIImage
对象而不是 sharedURL 来查看 URL 是否有问题。
即使是图像文件也无法使用。当我单击UIActivityViewController
内的共享按钮时,它仅适用于文本,没有 URL 或图像。
我在 Xcode 8 中使用 Swift 3。
谢谢。
PS:我确信 sharedURL 对象既不是 nil 也不是未定义的。
【问题讨论】:
您想将 url 或文本分享到社交网站和您的应用程序中吗? @seggy 我想将带有 URL 的文本分享给社交应用程序,并将其空投给其他 ios 设备用户。谢谢 哦,比你可以关注@Sanjeet verma answer 【参考方案1】:试试这个:
@IBAction func btnExport(sender: AnyObject)
let someText:String = "Hello want to share text also"
let objectsToShare:URL = URL(string: "http://www.google.com")!
let sharedObjects:[AnyObject] = [objectsToShare as AnyObject,someText as AnyObject]
let activityViewController = UIActivityViewController(activityItems : sharedObjects, applicationActivities: nil)
activityViewController.popoverPresentationController?.sourceView = self.view
activityViewController.excludedActivityTypes = [ UIActivityType.airDrop, UIActivityType.postToFacebook,UIActivityType.postToTwitter,UIActivityType.mail]
self.present(activityViewController, animated: true, completion: nil)
【讨论】:
一开始我尝试了您使用图像共享的代码,并且效果很好。现在我将尝试您编辑的代码,看看它是否适用于 URL。非常感谢。 @BehdadAhmadi 如果我的回答可以接受,我很乐意为您提供帮助,然后点赞我。 谢谢你的朋友,你的回答有效,但我自己的自定义 URL 再次失败。我的 url 由一个 NSDictionary 组成,它包含 4 个字符串、1 个 base64 编码的字符串和一个 Data 对象。我认为我的自定义 URL 有问题。不过,感谢您与我分享您的时间。 @BehdadAhmadi 编码快乐:) 非常感谢!【参考方案2】:使用 Swift 5+ 的简化解决方案
let url = URL(string: shareUrlString)!
let text = "Some text that you want shared"
let activity = UIActivityViewController(activityItems: [url, text], applicationActivities: nil)
present(activity, animated: true)
【讨论】:
以上是关于UIActivityController 分享 URL 文件的主要内容,如果未能解决你的问题,请参考以下文章
UIActivityController 在 Facebook 上分享时不报告文字和图片
UIActivityController + UIDocumentInteraction
更改 UIActivityController 的标题文本颜色
邮件 - 从 UIActivityController 添加帐户屏幕