http://blog.csdn.net/y550918116j/article/details/50113107
WebKit(WKScriptMessageHandler)
在WWDC2014中,苹果推出了最新的iOS8系统,其中也伴随着很多控件的更新与升级。其中全新的WebKit库让人很是兴奋。本人将用一系列的博文来为大家讲解WebKit的相关应用。在本篇博文将为大家讲解使用WKWebView怎么加载本地和网络Web页面。
WebKit的核心就是WKWebView控件。
1 项目
1.1 搭建项目
这次启用了和讲解UIWebView相类似的项目。完整项目各位可自行搭建,
在这里使用了类YJBaseVC,后续会使用YJSeniorVC。
#import"YJBaseVC.h"
@interfaceYJBaseVC()
@property(nonatomic,strong) WKWebView *webView;///< WKWebView
@end
@implementationYJBaseVC
- (void)viewDidLoad {
[superviewDidLoad];
}
@end
这里只有一个全局属性webView,它指向一个强引用的WKWebView类。
1.2 初始化WKWebView
1.2.1 增加WebKit库
WKWebView的运行都要基于WKWebView库,故我们添加WKWebView库。
#import
1.2.2 懒加载WKWebView
在这里我们使用懒加载的方式加载WKWebView,即使用的时候才添加到View中。
WKWebView有一个核心配置器WKWebViewConfiguration,你可以理解它是WKWebView的中央管理器。这里设置一个空的WKWebViewConfiguration,后续会做补充。
在YJBaseVC.m添加方法。
2 显示本地Html页面
2.1 搭建本地Html页面
下面就是我为大家搭建的网页源码。
你可以在项目中新建一个文件,将代码复制进去,并设文件名为index.html。在浏览器运行会看见如下效果图。
2.2 加载Html页面
在WKWebView加载页面时常用方法- (nullable WKNavigation *)loadRequest:(NSURLRequest *)request;。还有其他几种加载方法,可自行研究,这里不在描述。
添加如下方法。
运行即可看到效果。
2 网络页面展示
2.1 加载百度首页
在这里我们使用百度首页作为我们要显示的页面。
改写loadWebView方法。
运行项目发现百度首页无法显示。
2.2 解决网络页面无法显示问题
由于IOS9的安全机制更高,苹果不再允许http连接和没有ssl验证的https运行。
但我们可以人为的解决这种问题,只需在Info.plist文件添加如下代码。
NSAppTransportSecurityNSAllowsArbitraryLoads
运行项目可看见百度首页。