2016-10-24 14 views
0

私のアプリケーションが作成し、他のユーザーに送るために挿入するメッセージとともに画像を送信しようとしています。イメージは、メッセージのレイアウトプロパティで使用されているのと同じイメージになりますが、受信側のユーザーのメッセージのレイアウト上でイメージプロパティにアクセスする方法はありません。iMessageアプリエクステンションのMSMessageと共に送信されるURLにUIImageをエンコードすることはできますか?

メッセージに添付されたURLに画像を送信し、それをアプリの2番目のユーザーのインスタンスにアクセスすることはできますか?私はどうすればこれについて行くことができますか?

+0

どうしよう?単にNSDataまたはData(swift 3)として画像を渡して何が起こるかを見てください;)UIImageはデータを取るinit funを持っています – RomOne

+0

MSMessageのペイロードはURLです。私はメッセージで何でもしたいだけ送ることはできません、そうでなければイメージを送ることができます。 –

+0

イメージをbase64文字列に変換し、URLQueryItem経由で送信することができます。私はこれが役に立つと思う。 –

答えて

0

IMessageがURLスキームは、アップルのマニュアルに書かれた5000個の文字をサポートしている:https://developer.apple.com/reference/messages/msmessage/1649739-url

あなたのUIImageがNSDataのに変換に使用し、文字列へのNSDataを変換し、URLスキームに文字列を送信することができます。取得するには、文字列をUIImageにデコードします。

例:

let image = UIImage.init(named: "myImage.png") 
let data = UIImagePNGRepresentation(image!) 
let strImageData = data?.base64EncodedString(options: .lineLength64Characters) 

希望これは

+0

お薦めいただきありがとうございますが、私はすでにこれを試しており、画像は29k文字列になりますので、失敗します。 –

2

カップルのアイデアを支援します。

  1. は、画像(または別の 'クラウド' ソリューション)を要求/保存することCloudKitを実装し、メッセージを使用しています。イメージのURLを共有するURL
  2. イメージが作成され、アセットではない場合は、可能であれば、再構築のための "指示"を伝えるのにmessage.urlを使用しますか?