如何使用 UIActivityViewController 创建用户交互式推文或 Facebook 帖子

Posted

技术标签:

【中文标题】如何使用 UIActivityViewController 创建用户交互式推文或 Facebook 帖子【英文标题】:how to create user interactive tweet or Facebook post with UIActivityViewController 【发布时间】:2016-08-08 02:17:20 【问题描述】:

我正在尝试弄清楚如何创建类似于 SoundCloud 的用户交互式帖子或推文:

以黄色突出显示的部分是我感兴趣的部分,因为据我所知,当涉及到 UIActivityViewController(这是 Sound Cloud 用于此目的)时,唯一可用于共享的对象是图像和字符串。

此外,如果您要点击以黄色突出显示的部分,则会在 twitter 上弹出此屏幕:

他们是怎么做到的!?他们有一个暂停按钮和一切!

这是我的尝试……

func displayShareSheet(shareContent:String) 

        let someView:CustomView = CustomView() // CustomView is a subclass of UIView

        let activityViewController = UIActivityViewController(activityItems: [someView], applicationActivities: nil)
        presentViewController(activityViewController, animated: true, completion: )
    

...这是行不通的。弹出 UIActivityViewController 工作表,但未显示任何共享选项。

我知道有些人可能会认为这是一个宽泛的问题,但如果您至少可以为我指明正确的方向,我将不胜感激。谢谢。

【问题讨论】:

你的巨幅图片让你的问题难以阅读,我建议你缩小图片大小,这样问题会很吸引人,你会得到更多的关注 【参考方案1】:

这行得通。对于共享目的地的完整列表,请在您的设备上运行它,而不是在模拟器上运行。模拟器会为您提供一个较小的列表。

func createActivityController() -> UIActivityViewController 
    let someText:String = textView.text

    let google = NSURL(string:"http://google.com/")!

    // let's add a String and an NSURL
    var activityViewController = UIActivityViewController(
        activityItems: [someText, google],
        applicationActivities: nil)

    activityViewController.completionHandler = (activityType, completed:Bool) in
        if !completed 
            print("cancelled")
            return
        

        if activityType == UIActivityTypePostToTwitter 
            print("twitter")
        

        if activityType == UIActivityTypeMail 
            print("mail")
        
    

    // you can specify these if you'd like.
    //        activityViewController.excludedActivityTypes =  [
    //            UIActivityTypePostToTwitter,
    //            UIActivityTypePostToFacebook,
    //            UIActivityTypePostToWeibo,
    //            UIActivityTypeMessage,
    //            UIActivityTypeMail,
    //            UIActivityTypePrint,
    //            UIActivityTypeCopyToPasteboard,
    //            UIActivityTypeAssignToContact,
    //            UIActivityTypeSaveToCameraRoll,
    //            UIActivityTypeAddToReadingList,
    //            UIActivityTypePostToFlickr,
    //            UIActivityTypePostToVimeo,
    //            UIActivityTypePostToTencentWeibo
    //        ]

    return activityViewController

【讨论】:

ps 您需要登录 Facebook 和 Twitter 才能显示分享给他们的选项。【参考方案2】:

对于第一部分,它只是一个播放按钮,点击你会弹出播放器视图。

第二:你可以通过弹出一个新的 viewController 来做到这一点,使用任何弹出窗口:CWPOP 例如。或者任何适合你或 Twitter 的东西,我不确定,但可能他们正在做自己的事情,你只需建立一个包含游戏和所有内容的正常视图。

他们以前做得更好,让你在浏览推文时播放音乐,至少对我来说更好。

【讨论】:

感谢您的回复,但您知道我实际上是如何通过 UIActivityViewController 传递视图控制器的吗?

以上是关于如何使用 UIActivityViewController 创建用户交互式推文或 Facebook 帖子的主要内容,如果未能解决你的问题,请参考以下文章

我在作为 UIDocumentInteractionController 和 UIActivityViewController 的一部分的 UIActivityGroupViewController

创建类似于新的 iOS 6 按钮共享的自定义共享视图

[精选] Mysql分表与分库如何拆分,如何设计,如何使用

如果加入条件,我该如何解决。如果使用字符串连接,我如何使用

如何使用本机反应创建登录以及如何验证会话

如何在自动布局中使用约束标识符以及如何使用标识符更改约束? [迅速]