アプリから下記のようなTwitterのツイート画面に遷移させる方法です。
##動作環境
動作環境 | バージョン |
---|---|
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
関数が実施されるサンプルです。
##解説
####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
をオプショナルバインディング
・アンラップしたencodedText
をURL(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を入れたら、そのページを開いてくれるようです!
##まとめ
アプリが広まる仕掛けが必要と言うことで、今回個人開発アプリに実装しました。
特にフレームワークを使う必要も無いですし、簡単に実装できるので是非導入してみてください☺︎
何か誤りがありましたら、優しく教えていただけると幸いです🙇♂️