iPhone开发技巧之私有API(6)--- 设置UIWebView中的User-Agent
<br />现在许多网站专门针对iPhone做了专用的页面,比如用Safari访问雅虎看到的是iPhone的页面,可是在自己的程序中用UIWebView,却是一般在PC上表示的页面。<br />像这样的网站,都是通过浏览器的 User-Agent 来切换页面的。但是 UIWebView 中不能设置 User-Agent,所以只可能看到普通的PC页面。<br />不同通过下面的私有API方法可以设置
·
现在许多网站专门针对iPhone做了专用的页面,比如用Safari访问雅虎看到的是iPhone的页面,可是在自己的程序中用UIWebView,却是一般在PC上表示的页面。
像这样的网站,都是通过浏览器的 User-Agent 来切换页面的。但是 UIWebView 中不能设置 User-Agent,所以只可能看到普通的PC页面。
不同通过下面的私有API方法可以设置 User-Agent。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #import <objc/runtime.h> @interface MyWebViewController : UIViewController { IBOutlet UIWebView *myWebView; } - (void)viewDidLoad { NSString *userAgent = @"Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_1 like Mac OS X; ja-jp) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5F136 Safari/525.20"; id webDocumentView; id webView; webDocumentView = objc_msgSend(myWebView, @selector(_documentView)); object_getInstanceVariable(webDocumentView, "_webView", (void**)&webView); objc_msgSend(webView, @selector(setCustomUserAgent:), userAgent); } |
首先, 调用 UIWebView 的 _documentView 方法,得到 UIWebDocumentView 对象。接着从 UIWebDocumentView 中取出 _webView 成员。WebView类中有 setCustomUserAgent: 方法,用它来这时任意的 User-Agent。
更多推荐
所有评论(0)