加载桌面版网站
如何加载桌面版本的网站(例如google,facebook)而不是移动版本?
编辑:忽略这一切。 Yaniv是对的。 只需使用- loadRequest:
消息将NSMutableURLRequest
加载到UIWebView
实例,并将"User-Agent"
标头设置为您想要的任何内容。
NSMutableURLRequest *rq = [NSMutableURLRequest requestWithURL:someUrl]; [rq setValue:@"Some desktop user-agent" forHTTPHeaderField:@"User-Agent"]; [webView loadRequest:rq];
对于您的信息,桌面用户代理字符串的一个很好的选择是Chrome – 它也是基于WebKit的,作为Safari,因此特定于WebKit的扩展将起作用。 因此,请尝试将user-agent字符串设置为
Mozilla / 5.0(Macintosh; Intel Mac OS X 10_8_2)AppleWebKit / 537.11(KHTML,与Gecko一样)Chrome / 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];
你为什么要经历这一切麻烦? 这是错误/长期的方法。
只需创建一个NSMutableRequest
并在其中设置useragent
而不是在UIWebView
。 然后使用UIWebView
普通/非私有loadRequest:
-function加载请求。