我想使用UIActivityViewController分享简单的文字内容。我的开发环境是Swift和Xcode 6.3。这段代码非常简单,对于照片可以很好地工作,但对于纯文本就不行了。我不想在objectsToShare中包含任何网址,只需要纯文本即可。以下是代码:
var objectsToShare: ["some text to share"]!
let activityVC = UIActivityViewController(activityItems: objectsToShare, applicationActivities: nil)
//handler for completed task
activityVC.completionHandler = {(activityType, completed:Bool) in
if !completed {
println("cancelled")
return
}
reportCompleted() //report to server it's done.
}
//Excluded Activities Code
activityVC.excludedActivityTypes = [UIActivityTypeAirDrop, UIActivityTypeAddToReadingList, UIActivityTypeCopyToPasteboard ]
//activate the share view
self.presentViewController(activityVC, animated: true, completion: {
(complete) in
println(complete)
})
现在我知道这完全取决于用户是否拥有Facebook - 不仅是在手机上,而且还要看他的设置。(我尝试直接从我的手机6上操作,其中已经有了Facebook的设置,而不是从模拟器中进行操作) 这段代码曾经运作良好,对于图片也很好用,但由于某些原因,它停止了文本共享。也许是文本本身有关,也许是我的代码不好,或者可能是Facebook更改了什么。
非常感谢您对这个问题的任何想法。
让事情变得更奇怪的是,我发现另外两件奇怪的事情:
- 发布文本的代码在模拟器上可以工作(只要您在设置中添加facebook)
- 如果我将网页链接添加到其中,在设备上它也能够工作,如果我删除该网页链接,则无法工作。
//工作的代码:
var myWebsite = NSURL(string: "http://www.someurl.com/")
let textToShare = "Swift is awesome! Check out this website about it!"
objectsToShare = [textToShare , myWebsite!]
//continue regular.
//代码无法工作:
let textToShare = "Swift is awesome! Check out this website about it!"
objectsToShare = [textToShare ]