3

私のアプリケーションでは、Webview を使用して、ユーザーの優先言語に基づいてさまざまなバージョンの Web サイトをロードしています。これには WebFrame の loadRequest メソッドを使用します -

[[aWebView mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:aStr]]];

aStr に英語のアルファベットのみが含まれている場合、つまり aStr = http : // ....../language/English の場合、正常に機能し、Web ページが読み込まれます。ただし、aStr が http://....../language/ununun(Japanese) のようなものである場合、何も起こらず、WebView が読み込まれず、エラーもスローされません。同じリンクを Safari に貼り付けると、そこに Web ページが読み込まれます。この問題を解決する方法について何か提案はありますか?

I've also tried [aWebView setMainFrameURL:aStr] method. Same issue there too.

4

1 に答える 1

3

aStrを使用して NSURL を作成するために使用する前に、無効な URL 文字をエスケープする必要があります[aStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]

//Encode invalid URL characters
aStr = [aStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
[[aWebView mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:aStr]]];

URLWithString:文字列が無効な場合は nil 値を返します。これが、UIWebView にエラーがなく、何も読み込まれない理由です。

于 2013-01-23T23:50:35.397 に答える