iOS调用WebView私有API的方法

原创 2013年06月14日 17:04:22

WebView的私有API请查看《UIWebView体系结构(七)WebView》。

先上代码吧

- (void)modifyUA
{
    id webView = [aUIWebViewInstance valueForKeyPath:@"_internal.browserView._webView"];
    [webView performSelector:@selector(setCustomUserAgent:) withObject:@"Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13 "];
}

这是示例修改User Agent。获取WebView使用的是Key-Value Coding的方法,关于Path里的路径,可参考《UIWebView体系结构(一)概貌》。

为了更安全地通过apple的审查,可以这样:

- (void)modifyUA
{
    NSString *path = [@"_internal.browser" stringByAppendingString:@"View._webView"];
    id webView = [aUIWebViewInstance valueForKeyPath:path];
    NSString *selString = [@"setCustom" stringByAppendingString:@"UserAgent:"];
    SEL sel = NSSelectorFromString(selString);
    [webView performSelector:sel withObject:@"Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13 "];
}
把字符串分割再合成就ok了。


转载请注明出处:http://blog.csdn.net/hursing

版权声明:转载请注明出处:http://blog.csdn.net/hursing https://blog.csdn.net/hursing/article/details/9096321

iOS7,iOS8,iOS9 UIWebView获取内容高度终极解决方案

场景 在 App 中加载网页时,通常情况我们只需要直接初始化一个 WebView,然后去加载对应的 URL 即可,但若是有时候有些个设计是需要将 web 与原生的 UI 搭载在一起,一般情况下,we...
  • libragirlwdy
  • libragirlwdy
  • 2016年07月15日 11:19
  • 2490

iOS与Javascript交互实战

iOS如何与JS交互。基于JavaScriptCore,简单方便且易于维护。这里提供了Swift版与OC版的,根据需求而学习对应的文章内容。...
  • woaifen3344
  • woaifen3344
  • 2015年01月15日 16:23
  • 38562

【腾讯Bugly干货分享】WKWebView 那些坑

本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/rhYKLIbXOsUJC_n6dt9UfA导语WKWe...
  • Tencent_Bugly
  • Tencent_Bugly
  • 2017年01月22日 15:15
  • 9353

iOS开发获取SDK下私有API

Objecitve-C的重要特性是Runtime(运行时),在Interacting with the Runtime(交互运行)中,运行时函数部分,苹果给出了/usr/lib/libobjc.A.d...
  • xunyn
  • xunyn
  • 2012年12月26日 23:49
  • 19230

IOS 之为webView设置UserAgent

今天做webView网页的时候遇到一个问题就是设置http的头请求  在网上搜了一段代码  在你主要视图控制器或者程序主类(app delegate)里面添加以下函数: + (...
  • antjumper
  • antjumper
  • 2015年04月01日 17:12
  • 3857

获取 webView 的 userAgent 并修改

获取 userAgent  NSLog(@"UserAgent = %@", [self.webView stringByEvaluatingJavaScriptFromString:@"...
  • cafei111
  • cafei111
  • 2016年03月11日 11:10
  • 2109

iOS私有API的了解

iOS的API分为四种: PublishedAPI(公开的API)(或者Documented API) 还有两类:私有API:PrivateAPI和未公开API:UnPublished ...
  • u013705509
  • u013705509
  • 2016年05月06日 10:32
  • 1787

UIwebView 解决返回自动刷新问题

[[NSUserDefaults standardUserDefaults] setInteger:2 forKey: @"WebKitCacheModelPreferenceKey"]; ...
  • qls321
  • qls321
  • 2017年07月10日 09:48
  • 140

让 WKWebView 支持 NSURLProtocol

最近把公司的项目从 UIWebView 迁移到了 WKWebView,因为之前大体上还是遵从了 Apple 的 API 没有过度地去 hack,而且 WebViewJavascriptBridge 也...
  • u011661836
  • u011661836
  • 2017年04月19日 15:12
  • 2409

JavaScriptCore和Objective-C

在iOS开发中,因为H5页面的一些先天优势,原生界面里面掺杂着H5页面是一种很常见的方案。公司应用最近因为业务需要一下子接入了大量H5界面,另外还要求:原生界面使用的是友盟统计分析,为了统计数据能在平...
  • qq_30513483
  • qq_30513483
  • 2016年05月11日 16:57
  • 7269
收藏助手
不良信息举报
您举报文章:iOS调用WebView私有API的方法
举报原因:
原因补充:

(最多只允许输入30个字)