2

我怎样才能UIWebView加载非移动网站?

目前我正在使用这个:

 NSMutableURLRequest *request = [NSURL URLWithString:websiteLink];
 [request setValue:
      [NSString stringWithFormat:@"%@ Safari/528.16", [request valueForHTTPHeaderField:@"User-Agent"]]  
      forHTTPHeaderField:@"User_Agent"];
 [webView loadRequest:request];

但加载 Web 视图时应用程序崩溃。

任何帮助将不胜感激。

4

3 回答 3

0

您必须在请求中指定用户代理:

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setValue:@"<Your-User-Agent>" forHTTPHeaderField:@"User-Agent"];

哪里可能是这样的:

[NSString stringWithFormat:@"%@ Safari/<version number>", [request valueForHTTPHeaderField:@"User-Agent"]

编辑:

我的用户代理字符串是这样的:

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/536.26.17 (KHTML, like Gecko) 版本/6.0.2 Safari/536.26.17

请注意,网络服务器通常会缓存您的浏览器信息等信息,因此如果您已经访问过该网站,上述代码可能无法正常工作。

于 2013-01-14T15:25:33.743 回答
0

乔纳森,

已经有几天了,但如果你还在寻找这个问题的答案 - 问题就在这里:

NSMutableURLRequest *request = [NSURL URLWithString:websiteLink]; // <-- BUG

您正在将 NSURL 填充到 MutableURLRequst 中。哎呀!

这是你打算做的:

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:websiteLink]];

祝你好运。

于 2013-01-19T16:58:40.677 回答
0

根据错误(在您添加的图片中),您正在调用一个不存在的选择器。具体来说,调用valueForHTTPHeaderField:request这是一个 NSURL)是无效的,因为 NSURL 不响应该方法。

于 2013-01-15T16:17:53.983 回答