2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

UIActivityViewControllerでTwitterにシェアできない件

Last updated at Posted at 2021-05-25

Xcode-12.4 Swift-5.3

追記

Twitter 8.67.1 だと無事シェアできるようになってそうでした:tada:

はじめに

Twitter 8.65.2 だと下記のように UIActivityViewController でシェアできないようです。

share

シェア候補として Twitter が表示されますがタップしても共有できないようです:rolling_eyes:

確認した端末は iOS 13.7 と iOS 14.4 です。

対策

対策と言っても UIActivityViewController は下記のように渡すだけなので Twitter アプリの更新を待つしかないでしょう:innocent:

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 のリリースを待てばいいんじゃないかなと思います:sleeping:

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?