UIActivityViewController を使用して単純なテキストだけを共有したい 私は xcode 6.3 で迅速に使用しています コードは非常に単純で、写真には最適ですが、テキストだけでなく、objectsToShare に Web URL を含めたくありません。コードは次のとおりです。
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 を使用しているかどうかにすべて依存していることがわかりました。電話だけでなく、設定にも依存します。(私はシミュレーターからではなく、Facebook の設定を持つ自分の携帯電話 6 から直接それを試しました) このコードは一度は正常に機能し、テキストではなく画像に対してはまだ正常に機能していましたが、何らかの理由でテキスト共有に対して機能しなくなりました。テキスト自体に何か関係があるのかもしれませんし、私のコードが良くないのかもしれませんし、Facebook が何かを変更したのかもしれません。
主題について考えてくれてありがとう。
さらに奇妙にするために、さらに2つの奇妙なものを見つけました。
- パブリッシュ テキストのコードは、シミュレーターで動作しています (Facebook の設定に追加する限り)。
- Web URL に追加すると (デバイス内で) 動作しますが、Web URL を削除すると動作しません。
//動作するコード:
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 ]