共有アクションシートのボタンを全部表示する方法
共有アクションシートに全てのボタンを表示するには、先ほどのプログラムで「excludedActivityTypes」を指定する行をコメントアウトすればOKです。
「LINEで送るボタン」を追加する方法
Swiftには「LINEで送るボタン」が実装されていません。独自で作成する必要がありますが、よく使う部品はライブラリーとして公開されている場合があります。今回は「LINEActivity」ライブラリーを使って作ってみましょう。LINEActivityは共有のアクションシートにLINEで送るボタンを追加し、LINEへ投稿できるライブラリーです。
1)LINEActivityをダウンロードします。
LINEActivityはGitHubで公開されており、ページ右下の「Download ZIP」ボタンを押して、ライブラリーをダウンロードします。
2)LINEActivityのライブラリーを追加します。
ダウンロードしたLINEActivityをプロジェクトに追加します。
LINEActivity.zipを解凍してできるLINEActivityフォルダが、LINEへ送るボタン用のプログラムです。Objective-Cで書かれていますが、そのままSwiftでも使えます。
LINEActivityフォルダの中のファイルを全て選択して、ナビゲータエリアにドラッグして、「Finish」ボタンを押します。すると「これはObjective-Cのプログラムなので、Swiftに橋渡しするか?」というダイアログが出るので「Yes」を選択します。
これでLINEActivityライブラリーが追加されました。
3)Objective-CとSwiftの橋渡しをします。
橋渡し用のファイルとして生成された「プロジェクト名-Bridging-Header.h」(図ではsnstest2-Bridging-Header.h)に「#import “LINEActivity.h”」と記述します。これで、SwiftからObjective-Cのプログラムを呼び出せるようになります。
記述したプログラムは以下の通りです。
//(中略)
#import "LINEActivity.h"
//(中略)
4)ボタンを押したときに実行する関数を作ります。
UIActivityViewControllerに、以下のようにLINEActivityを追加すれば、LINEで送るボタンが表示されます。LINEは、1回の送信で文字か画像どちらか1種類送信できます。
記述したプログラムは以下の通りです。
//(中略)
@IBAction func tapShareBtn(sender: AnyObject) {
// 共有する項目
let shareImage = UIImage(named: "test.jpg")!
let shareItems = [shareImage]
// LINEで送るボタンを追加
let line = LINEActivity()
let avc = UIActivityViewController(activityItems: shareImage, applicationActivities: [line])
presentViewController(avc, animated: true, completion: nil)
}
//(中略)
LINEへ送るボタンが表示されます。
◆
iOSアプリとSNSを連携させる方法を2つ紹介しました。
ボタンを押したら、すぐダイアログが出て投稿できるようにしたい場合は、「SLComposeViewController」を、一般的な共有アクションシートでシェアさせたい場合は、「UIActivityViewController」を使うとよいでしょう。