【问题标题】:How to share a String with sharing apps like Facebook, Twitter, etc.?如何与 Facebook、Twitter 等共享应用程序共享字符串?
【发布时间】:2015-03-25 14:15:28
【问题描述】:

我正在开发一个应用程序,我希望有一个分享按钮,允许用户从列表中选择一个他们可以分享的应用程序,然后打开该应用程序或某种对话框,让他们发推文、发帖、短信等

我在我的 Android 应用上实现了这一点,因为在那里创建 ACTION_SEND 意图非常简单,并根据某些 mimetype 进行过滤,以便与哪些应用共享。

我想要与 iOS8 和 Swift 类似的东西,但我无法在任何地方找到如何实现这一点。

我不想在我的应用程序中设置用于与 Twitter 共享或与 Facebook 共享的按钮,或者...用户选择一个,然后使用我的字符串进入应用程序。

更新

所以,我想出了一个办法:

var sharingItems = [AnyObject]()

sharingItems.append(NSString(string: "Whatever you want to share!"))

let activityViewController = UIActivityViewController(activityItems: sharingItems, applicationActivities: nil)

self.presentViewController(activityViewController, animated: true, completion: nil)

然后手机会计算出您可以 ping 的内容,例如 Twitter、Tumblr、Messenger 等。

当然,我有点惊讶地发现 Facebook 不在名单上。我也没有尝试这条路线,因为我认为 iOS 8 已弃用 Share Sheets 以支持应用程序扩展。

如果有更好的方法或其他方法应该在 iOS 8 中完成,请告诉我 :)

【问题讨论】:

  • 那么您想找出哪些共享是可能的而不是硬编码列表?
  • 在 Android 上共享时,会弹出一个列表,其中包含用户选择的候选应用程序,然后打开应用程序并填写您传递的数据(其他应用程序会处理此问题)。我想知道在 iOS 8 中是否有类似的实用程序。共享扩展似乎是一种选择,但我找不到任何显示如何挂钩的地方。
  • 它可以在 Obj C 中完成我不确定如何在 Swift 中完成(不是这有帮助)。社交媒体包已经内置了大部分内容,您只需对按钮进行编码以定义它们将信息发送到的位置,即 Twitter 或 Facebook。
  • @SASmith 是的,我不想在单独的按钮中编写代码,只需一个让手机为您处理的按钮。见家长更新。
  • 自动发帖还是只显示发帖位置的可能选项?

标签: ios swift ios8 share ios-app-extension


【解决方案1】:

只是为了给你一个更全面的解决方案(Facebook 实际上是一个选项),你可以使用UIActivityViewController排除不相关的项目以便分享到社交媒体,分享到 Facebook 和 Twitter 的示例,您可以像这样排除其他所有内容:

let activityViewController = UIActivityViewController(activityItems:
  ["Whatever you want to share!"], applicationActivities: nil)
let excludeActivities = [
    UIActivityTypeMessage,
    UIActivityTypeMail,
    UIActivityTypePrint,
    UIActivityTypeCopyToPasteboard,
    UIActivityTypeAssignToContact,
    UIActivityTypeSaveToCameraRoll,
    UIActivityTypeAddToReadingList,
    UIActivityTypePostToFlickr,
    UIActivityTypePostToTencentWeibo,
    UIActivityTypeAirDrop]
activityViewController.excludedActivityTypes = excludeActivities;

presentViewController(activityViewController, animated: true,
  completion: nil)

Here's a full list of the built-in activity types.

【讨论】:

  • 酷,绝对过滤。由于某种原因,FB 仍然没有出现。可能只是 FB 应用中的设置
  • @David 刚刚检查...Facebook 应用程序在您的设备上,对吧?
  • 是的。我唯一传递的是 NSString,文档指出 Facebook 应该对 NSStrings 做出反应。
  • 想通了。我没有通过设置登录 FB(很奇怪,因为我是通过应用程序登录的)。
  • 是否可以给我自己喜欢的应用顺序?假设我希望 FB 和 Twitter 成为 Share Sheet 中的第一个,然后是其余的?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-26
  • 2015-07-20
  • 2012-06-07
  • 1970-01-01
相关资源
最近更新 更多