2015-10-16 52 views
2
func pickerView(sender : UIButton) { 
    let message="text" 
    let objectsToShare = [message] 
    let wsActivity = WhatsAppActivity() 


    let activityVC = UIActivityViewController(activityItems: objectsToShare, applicationActivities: [wsActivity]) 
    activityVC.excludedActivityTypes = [UIActivityTypeAirDrop, UIActivityTypeAddToReadingList,UIActivityTypeCopyToPasteboard,UIActivityTypeSaveToCameraRoll,UIActivityTypePrint] 

    self.presentViewController(activityVC, animated: true, completion: nil) 
} 

我如何使用Facebook Messenger做同样的事情?如何在活动控制器视图中呈现Facebook信使应用程序以发送消息?

回答

0

如果您想要展示facebook应用UIActivityViewController 而不是指定任何excludedActivityTypes属性。

因为excludedActivityTypes: [String]? //default is nil .`

所以只用作为

let activityVC = UIActivityViewController(activityItems: objectsToShare, applicationActivities: [wsActivity]) 

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

它会告诉你,包括Facebook,微博分机的所有选项。

+0

目前还没有Facebook的使者 – Malicia

+0

FB使者需要为其“objectsToShare”做出特殊安排。它根本无法分享你想分享的内容。检查他们的政策。 – himura

2

据我的研究,你不能在FB信使共享“字符串”。这与FB信使政策(失去的链接参考)有关。为了在Facebook Messenger上分享,你的“activityItems:objectsToShare”应该包含一个NSURL。我曾尝试共享多个NSRUL,但没有成功。

可以传递[字符串,NSURL]的数组,例如:

func pickerView(sender : UIButton) { 
    let message="text" 
    let url = NSURL(String: "https://www.google.com")! 
    let objectsToShare = [message, url] //this is now an [AnyObject] 
    //assuming you are don't have applications to exclude 

    let activityVC = UIActivityViewController(activityItems: objectsToShare, applicationActivities: [wsActivity]) 
    self.presentViewController(activityVC, animated: true, completion: nil) 
} 

你会发现二者WhatsApp的并示出在共享片向上FB信使。但是,FB messenger只会使用NSURL,而忽略AnyObject数组中的String项。 WhatsApp将显示文本,然后显示链接。

可能能够使用FB SDK做你想做的事情。虽然我没有亲自尝试过。

相关问题