9

Data: URL (参照: http://en.wikipedia.org/wiki/Data_URI_scheme ) (NSString として) があり、それを Safari で開きたいです。これをどのように達成しますか (私は openURL を試しました:.)
例:

data:text/html;base64,(Some Base64 Encoded Data Here)
4

2 に答える 2

9

iPhone OS 2.2.1 および 5.0.1 では、シミュレーターとデバイスの両方で、 data: urlを開くと a で完全に機能しますUIWebViewが、 usingopenURLはまったく何もしません。

また、Safari は、ナビゲーション バーに入力する意思がある場合、喜んで適切にそのような URL をレンダリングします。したがって、これはsharedApplication openURLSafari ではなく 明らかに問題です。

base64 文字列が十分に短い場合 (おそらく 2K 未満)、データ URL へのリダイレクトを単純に返す http URL へのクエリ パラメータとしてラップできます。次に、openURL を使用して http URL を開くことができます。はい、これはサーバーを介してバウンスすることを意味しますが、機能します。

別の方法として、Safari は明らかにそれを行っていないため、アプリがdata:スキームのハンドラーであり、UIWebView でコンテンツをレンダリングする責任があることを iPhone に伝えることができます。ただし、これは将来失敗する可能性が高いようです。:-)

そもそもデータの URL はどこから来ているのでしょうか。おそらく<iframe src="<the data url>"/>、その URL で openURL を使用するだけの内容の Web ページを作成することができます。

于 2009-03-22T03:29:42.187 に答える
-1

これはそれを行う必要があります:

NSURL *yourURL = [[NSURL alloc] initWithString:yourStr];    
[[UIApplication sharedApplication] openURL:yourURL];
[yourURL release];

「yourStr」がデータが配置されているURLのNStringであると想定します。

于 2009-03-18T21:55:44.833 に答える