开发者社区> 刘恒兴> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

iOS调用WebView私有API的方法

简介: WebView的私有API请查看《UIWebView体系结构(七)WebView》。 先上代码吧 - (void)modifyUA { id webView = [aUIWebViewInstance valueForKeyPath:@"_internal.
+关注继续查看

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
4 年 iOS 开发,自述这几年的工作感悟,希望对你有帮助!
前言: 从做 iOS 开发一开始到现在,我也已经工作了那么多年了,说一下现在我工作了这么长时间的感悟。 1,接触 作为一个 iOS 开发工程师,我之前做过 iOS 但是还做过一段安卓,都说安卓是 iOS 的基础,这个应该算是正常的。
1213 0
【iOS 开发】Controller 之间使用代理传值
Controller 传值 控制器之间经常需要互相传递值,第一个控制器(简称 MasterVC)在通过 NavigationController Push 第二个控制器(简称 DetailVC)的时候,可以捕获到 DetailVC,所以可以设定后者的变量。
729 0
IOS开发准备工作
1. Register as a developer athttps://developer.apple.com/devcenter/ios/index.action   2. Install XCode      Launch Xcode from the Developer/Applications folder.
653 0
+关注
刘恒兴
一个喜欢在各个技术领域到处浪的人
119
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载