追記
Twitter 8.67.1 だと無事シェアできるようになってそうでした
はじめに
Twitter 8.65.2 だと下記のように UIActivityViewController
でシェアできないようです。
シェア候補として Twitter が表示されますがタップしても共有できないようです
確認した端末は iOS 13.7 と iOS 14.4 です。
対策
対策と言っても UIActivityViewController
は下記のように渡すだけなので Twitter アプリの更新を待つしかないでしょう
let activity = UIActivityViewController(activityItems: ["text"],
applicationActivities: nil)
present(activity, animated: true)
ただどうしてもアプリから Twitter にシェアしたいんだ!と言う場合は下記のように OpenURL を使うのも1つの手かもしれません。
let text = "text"
UIApplication.shared.open(URL(string: "https://twitter.com/intent/tweet?text=\(text.urlEncoded)")!)
extension String {
// 色々例外があった気がするのでもうちょっと工夫が必要かも??
var urlEncoded: String {
let charset = CharacterSet.alphanumerics.union(.init(charactersIn: "/?-._~"))
let removed = removingPercentEncoding ?? self
return removed.addingPercentEncoding(withAllowedCharacters: charset) ?? removed
}
}
おわりに
とりあえず別案を書いてみましたがアプリの対応している間に Twitter のアップデートがある気もするのでのんびり Twitter のリリースを待てばいいんじゃないかなと思います