加载网站的桌面版本(Load Desktop version of web sites)

2019-08-01 04:46发布

我怎样才能加载网站(如谷歌,Facebook),而不是移动版本的桌面版本?

Answer 1:

编辑:无视这一切。 的Yaniv的权利。 只需加载NSMutableURLRequestUIWebView使用实例- loadRequest:消息并设置"User-Agent" ,以任何你想要的标题。

NSMutableURLRequest *rq = [NSMutableURLRequest requestWithURL:someUrl];
[rq setValue:@"Some desktop user-agent" forHTTPHeaderField:@"User-Agent"];
[webView loadRequest:rq];

为了您的信息,为桌面用户代理字符串一个不错的选择是,Chrome浏览器 - 它也是基于WebKit的,如Safari,那么具体WebKit的扩展将工作。 因此,尝试将用户代理字符串设置

的Mozilla / 5.0(Macintosh上;英特尔的Mac OS X 10_8_2)为AppleWebKit / 537.11(KHTML,例如Gecko)铬/ 23.0.1271.6 Safari浏览器/ 537.11


原帖:

您可以尝试欺骗的UIWebView的用户代理,但我不能保证这样的脂肪技巧将让你通过AppStore上的薄门...

void *object_getIvarPtr(id obj, const char *name)
{
    Ivar iv = object_getInstanceVariable(obj, name, NULL);
    off_t offset = ivar_getOffset(iv);
    return (char *)obj + offset;
}

// In some initialization routine, after having created the web view
id webViewInternal = *(id *)object_getIvarPtr(someWebView, "_internal");
id webBrowserView = *(id *)object_getIvarPtr(webViewInternal, "browserView");
id webKitWebView = [webBrowserView webView];

NSString *desktopUAStr = @"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.6 Safari/537.11"
[webKitWebView setCustomUserAgent:desktopUAStr];


Answer 2:

为什么你正在经历这一切麻烦? 这是错误/ LONG方法。

只需创建一个NSMutableRequest并设置useragent里面,而不是在UIWebView 。 然后,只需加载与所述请求UIWebView正常/非私有loadRequest: -function。



文章来源: Load Desktop version of web sites