【Swift】アプリからLINEにUIImageを送る実装方法

アプリからLINEにUIImageを送る実装方法

アプリからLINEにUIImageを送る実装方法です。探せばネットに情報がいろいろあるのですが、すんなりいかなかったのでメモしておきます

iOS9の場合、使いたいURLスキームをinfo.plistで指定する必要があります。
Arrayタイプの「LSApplicationQueriesSchemes」を作成してitem「line」を追加します

var sendImage: UIImage = UIImage(named: "hoge")! // <-- 送りたいUIImage
let pasteBoard = UIPasteboard.generalPasteboard()
pasteBoard.setData(UIImagePNGRepresentation(sendImage)!, forPasteboardType: "public.png")
let urlString = NSString(format: "line://msg/image/%@", pasteBoard.name)
if UIApplication.sharedApplication().canOpenURL(NSURL(string: urlString as String)!) {
    UIApplication.sharedApplication().openURL(NSURL(string: urlString as String)!)
} else {
    // - LINEがインストールされていない場合の処理
}

forPasteboardTypeは何でもいいのかと思っていたら"public.png"にしないとダメみたいです。

"public.png"以外を指定すると、LINEは起動しますが「ご利用のバージョンでは対応していないか不正なURLです」というエラーが出て送信できませんでした。ここで随分悩みました。

ちなみに

pasteBoard.setData(UIImagePNGRepresentation(sendImage)!, forPasteboardType: "public.png")

pasteBoard.image = sendImage

と書いても送信できましたよ。

タイトルとURLをコピーしました