Data: URL (参照: http://en.wikipedia.org/wiki/Data_URI_scheme ) (NSString として) があり、それを Safari で開きたいです。これをどのように達成しますか (私は openURL を試しました:.)
例:
data:text/html;base64,(Some Base64 Encoded Data Here)
Data: URL (参照: http://en.wikipedia.org/wiki/Data_URI_scheme ) (NSString として) があり、それを Safari で開きたいです。これをどのように達成しますか (私は openURL を試しました:.)
例:
data:text/html;base64,(Some Base64 Encoded Data Here)
iPhone OS 2.2.1 および 5.0.1 では、シミュレーターとデバイスの両方で、 data: urlを開くと a で完全に機能しますUIWebView
が、 usingopenURL
はまったく何もしません。
また、Safari は、ナビゲーション バーに入力する意思がある場合、喜んで適切にそのような URL をレンダリングします。したがって、これはsharedApplication openURL
Safari ではなく 明らかに問題です。
base64 文字列が十分に短い場合 (おそらく 2K 未満)、データ URL へのリダイレクトを単純に返す http URL へのクエリ パラメータとしてラップできます。次に、openURL を使用して http URL を開くことができます。はい、これはサーバーを介してバウンスすることを意味しますが、機能します。
別の方法として、Safari は明らかにそれを行っていないため、アプリがdata:スキームのハンドラーであり、UIWebView でコンテンツをレンダリングする責任があることを iPhone に伝えることができます。ただし、これは将来失敗する可能性が高いようです。:-)
そもそもデータの URL はどこから来ているのでしょうか。おそらく<iframe src="<the data url>"/>
、その URL で openURL を使用するだけの内容の Web ページを作成することができます。
これはそれを行う必要があります:
NSURL *yourURL = [[NSURL alloc] initWithString:yourStr];
[[UIApplication sharedApplication] openURL:yourURL];
[yourURL release];
「yourStr」がデータが配置されているURLのNStringであると想定します。