3

在我的应用程序中,我使用 Webview 根据用户的首选语言加载不同版本的网站。为此使用 WebFrame 的 loadRequest 方法 -

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

如果 aStr 仅包含英文字母,即如果 aStr = http : // ....../language/English ,则其工作正常且网页加载。但是,如果 aStr 类似于 http://....../language/ウンウンウン(Japanese),则不会发生任何事情,WebView 既不会加载,也不会引发任何错误。如果我在 Safari 中粘贴相同的链接,网页会在那里加载。有关如何解决此问题的任何建议?

我也试过 [aWebView setMainFrameURL:aStr] 方法。那里也有同样的问题。

4

1 回答 1

3

您必须先转义无效的 URL 字符,aStr然后才能使用它来创建 NSURL [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 回答