LoginSignup
14
14

More than 3 years have passed since last update.

【Swift】Twitterでシェアする機能を追加する

Last updated at Posted at 2020-11-27

アプリから下記のようなTwitterのツイート画面に遷移させる方法です。
example

動作環境

動作環境 バージョン
Xcode 12.1
iOS 14.1
Swift 5

コピペで使えるTwitterシェア関数

func shareOnTwitter() {

        //シェアするテキストを作成
        let text = "AppからTwitterでシェアする"
        let hashTag = "#ハッシュタグ"
        let completedText = text + "\n" + hashTag

        //作成したテキストをエンコード
        let encodedText = completedText.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)

        //エンコードしたテキストをURLに繋げ、URLを開いてツイート画面を表示させる
        if let encodedText = encodedText,
            let url = URL(string: "https://twitter.com/intent/tweet?text=\(encodedText)") {
            UIApplication.shared.open(url)
        }
    }

実装サンプル

Twitterでシェアボタンを押すと、上記のshareOnTwitter関数が実施されるサンプルです。

イメージ.GIF

解説

1.作成したテキストをURLに繋げれるように、addingPercentEncodingを行う

let encodedText = completedText.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)

作成したテキストにパーセントエンコードを行い、URLで使用できるようにします。

2.TwitterのURLにエンコードしたテキストを繋げて、そのURLを開いてツイート画面を表示する

if let encodedText = encodedText,
            let url = URL(string: "https://twitter.com/intent/tweet?text=\(encodedText)") {
            UIApplication.shared.open(url)
        }

・オプショナル型のencodeTextをオプショナルバインディング
・アンラップしたencodedTextURL(string:twitter.com/intent/tweet?text=(encodedText))に繋げる
・作成したURL(string:twitter.com/~)をオプショナルバインディング
UIApplication.shared.open(_ url: URL)にアンラップしたURLを入れる

UIApplication.shared.openとは?

Apple公式ドキュメントより

Attempts to open the resource at the specified URL asynchronously.

特定したURLを非同期で開くのを試みます。的な感じでしょうか。

まぁ、開いて欲しいURLを入れたら、そのページを開いてくれるようです!

まとめ

アプリが広まる仕掛けが必要と言うことで、今回個人開発アプリに実装しました。
特にフレームワークを使う必要も無いですし、簡単に実装できるので是非導入してみてください☺︎

何か誤りがありましたら、優しく教えていただけると幸いです🙇‍♂️

参考

iOS の Twitter シェア簡易実装 2019

14
14
2

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
14
14