YIFEIYANG 易飞扬的博客

14六/100

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

  • 博主:易飞扬
  • 原文链接 : http://www.yifeiyang.net/iphone-development-skills-of-the-private-api-6-set-uiwebview-in-the-user-agent/
  • 转载请保留上面文字。




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

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

    还没有评论.


    发表评论


    还没有引用.