Webview loadRequest无法正常工作

时间:2013-01-23 23:04:53

标签: macos cocoa

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

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

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

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

1 个答案:

答案 0 :(得分:3)

您必须先转义aStr中的无效网址字符,然后才能使用[aStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]创建NSURL。

//Encode invalid URL characters
aStr = [aStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
[[aWebView mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:aStr]]];
如果字符串无效,

URLWithString:将返回nil值。这就是为什么您的UIWebView没有错误并且不加载任何内容的原因。

相关问题