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 添加帐户屏幕

根据选定的活动共享不同的内容 - UIActivityController

从 iOS 中的 UIActivityController 选项中删除注释