分享

iPhone开发技巧之私有API(6)— 设置UIWebView中的User

 wintelsui 2013-12-03

现在许多网站专门针对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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多