IOS网络篇20之IO8新特性WKWebView

来源:互联网 发布:流星网络电视 卡 编辑:程序博客网 时间:2024/05/01 19:52

IOS8中采用了新的浏览器引擎WKWebView替代了之前的UIWebView。据说WKWebView采用新的Nitro JavaScript引擎引擎,可以让用户体验到使用safari一样的快速上网体验。

查看了下新的API手册,做了一个demo实验了下WKWebView的使用。

(1)不带javascript参数初始化

[[WKWebView allocinitWithFrame:CGRectMake(00320568];

(2)带javascript参数初始化

WKWebViewConfiguration *wkConfiguration = [[WKWebViewConfigurationalloc] init];

    NSString *wkjs = [NSStringstringWithContentsOfURL:[[NSBundlemainBundle] URLForResource:@"xxx"withExtension:@"js"]

                                                      encoding:NSUTF8StringEncoding

                                                         error:nil];

   WKUserScript *wkUserScript = [[WKUserScriptalloc] initWithSource:wkjs

                                                             injectionTime:WKUserScriptInjectionTimeAtDocumentStart

                                                          forMainFrameOnly:YES];

   

 [wkConfiguration.userContentControlleraddUserScript:wkUserScript];

完成配置之后,调用初始化方法即可:

[[WKWebViewalloc] initWithFrame:CGRectMake(0,0, 320, 568) configuration:wkConfiguration];


后面的使用和UIWebView类似,直接load request即可。

下面是网页请求效果:



但是,注意。问题来了。以前的UIWebView走的是NSURLConnection 因此所有的浏览器请求都可以被NSURLProtocol截获,所有我们可以做很多高级的功能,比如网络代理、页面缓存、网络加速等等。

但是新的WKWebView我们截获不了,目前网上很多大神也已经发现了这个问题,已经向苹果公司反馈,解决办法尚待研发当中。。。


0 0