文档章节

如何使用WKWebView

阿呆码
 阿呆码
发布于 2016/04/05 17:39
字数 505
阅读 112
收藏 0

一:IOS8 引入了新的WebView控件 -- WKWebView控件。 
http://blog.csdn.net/richard_rufeng/article/details/36876817    //控件介绍可以见这篇博客:


二:以下一段是节选了上面博客中关于使用WKWebView的好处:

在WWDC 2014发布会上发布iOS 8中,apple公布了WebKit框架,这意味着OSX和IOS开发者将共用同样的开发库,新改变可以提高开发者编写的代码的重复使用性。

webkit使用WKWebView来代替IOS的UIWebView和OSX的WebView,并且使用Nitro JavaScript引擎,这意味着所有第三方浏览器运行JavaScript将会跟safari一样快。

以上两点是原大神叙述,我主要用它的是为了解决应用运行时WebView占用大量内存的问题。

三:以下是WKWebView使用教程:

源代码见:

https://github.com/kilik52/WKWebviewTest

我的项目采用xcod7, ios9环境下开发。

1. 在你的项目**ViewController.m中,引入WebKit库:

@import  WebKit;

3. WKWebView暂时没有办法在Storyboard中构建,所以必须用代码生成。使用以下最少的代码可以load一个网页:


声明:

@property (nonatomic,strong)WKWebView *webView;


viewDidLoad中:

self.webView = [[WKWebViewalloc]initWithFrame:self.view.bounds];

[self.viewaddSubview:self.webView];

[self.webViewloadRequest:[NSURLRequestrequestWithURL:[NSURLURLWithString:@"http://shaozi.info"]]];


4. 打开左划回退功能:

self.webView.allowsBackForwardNavigationGestures =YES;


5. 委托事件(Delegate)

WKWebView有两个委托,WKNavigationDelegate以及WKUIDelegate

WKNavigationDelegate负责一些导航的事件。主要用到的有以下几个:

- webView:didStartProvisionalNavigation:

- webView:didCommitNavigation:      
- webView:didFailProvisionalNavigation:withError:
- webView:didFinishNavigation:

这些函数的作用简单易懂。 可以参考源代码。

WKUIDelegate比较好玩,可以把javascript的一些alert捕捉到,然后显示自定义的UI。


6. 加载进度

WKWebView里有一个属性estimatedProgress,可以拿到进度。 但是并没有delegate来好让你更新进度控件。 所以一定要用进度的话,需要一个NSRunLoop,然后使用一些HUD第三方库来显示进度,比如MBProgressHUD,SVProgressHUD。


© 著作权归作者所有

阿呆码
粉丝 0
博文 1
码字总数 505
作品 0
南京
私信 提问
iOS下JS与OC互相调用(六)--WKWebView + WebViewJavascriptBridge

iOS下JS与OC互相调用(六)--WKWebView + WebViewJavascriptBridge 转载:原地址 https://www.jianshu.com/p/e951af9e5e74 上一篇文章介绍了UIWebView 如何通过WebViewJavascriptBridge 来实现......

法斗斗
2018/05/11
130
0
ios的wkwebviwe进程崩溃,如何避免

1.我的混合app用了cordova,主界面是wkwebview,它加载本地html和js,css.初始化后wkwebview本地js将发送ajax请求,如何执行自签名证书认证。因为ajax请求没有处理wkwebviewdelegate任何方法...

kjhkj
2017/09/27
23
0
浅谈WKWebView使用、JS的交互

前言 WKWebView是iOS8 出来的浏览器控件,用来取代UIWebView.对于WKWebView与UIWebView的对比特点,这里就不过多的叙述,都算是老生常谈的问题了,网上的说明也很多.近来在做Web端,需要植入移动端...

神经骚栋
2018/07/03
0
0
WKWebView替换UIWebView

1.引入头文件 2.先使用WKWebView基本方法写个例子,加载baidu页面,写法跟UIWebView类似 用同样的方法,用UIWebView也写了一个页面做对比,发现差距好大,WKWebView内存是25M,而UIWebView是...

人仙儿a
2017/08/16
0
0
WK 与 JS 的那些事 WKWebView使用

苹果在iOS 8中推出了 ,这是一个高性能的 web 框架,相较于 来说,有巨大提升。本文将针对 WKWebView 进行简单介绍,然后介绍下如何和 JS 进行愉快的交互。还望各位大佬不吝赐教。 本文分为两...

秦无炎
2017/10/26
84
0

没有更多内容

加载失败,请刷新页面

加载更多

PostgreSQL 11.3 locking

rudi
41分钟前
5
0
Mybatis Plus sql注入器

一、继承AbstractMethod /** * @author beth * @data 2019-10-23 20:39 */public class DeleteAllMethod extends AbstractMethod { @Override public MappedStatement injectMap......

一个yuanbeth
今天
8
1
一次写shell脚本的经历记录——特殊字符惹的祸

本文首发于微信公众号“我的小碗汤”,扫码文末二维码即可关注,欢迎一起交流! redis在容器化的过程中,涉及到纵向扩pod实例cpu、内存以及redis实例的maxmemory值,statefulset管理的pod需要...

码农实战
今天
4
0
为什么阿里巴巴Java开发手册中不建议在循环体中使用+进行字符串拼接?

之前在阅读《阿里巴巴Java开发手册》时,发现有一条是关于循环体中字符串拼接的建议,具体内容如下: 那么我们首先来用例子来看看在循环体中用 + 或者用 StringBuilder 进行字符串拼接的效率...

武培轩
今天
8
0
队列-链式(c/c++实现)

队列是在线性表功能稍作修改形成的,在生活中排队是不能插队的吧,先排队先得到对待,慢来得排在最后面,这样来就形成了”先进先出“的队列。作用就是通过伟大的程序员来实现算法解决现实生活...

白客C
今天
78
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部