アプリから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
と書いても送信できましたよ。