比如单页应用的跳转不会触发生命周期,如果在didFinishNavigation中判断canGoBack,这要等页面加载完成才会执行,有很大的延迟.
下面是解决方案,其实很简单,就是通过kvo来监听canGoBack的变化:
根据微信的体验,微信的底部前进后退的状态判断也是根据监听canGoBack canGoForward来动态配置的
为navigation增加返回按钮, 为返回按钮增加返回事件, 判断当前webview是否可返回, 可以直接webview goback 不行直接navigation pop 方法就是 你只需要完成 webView的JS脚本和原生代码的通信。 在坛子里搜 webview + JS 有现成的例子首先,我们在ViewController中先遵守协议:我们可以先创建一个WKWebView的配置项WKWebViewConfiguration,这可以设置偏好设置,与网页交互的配置,注入对象,注入js等
创建对象并遵守代理
加载我们的本地HTML页面
我们再添加前进、后退按钮和添加一个加载进度的控制显示在Webview上
对于前进后退的事件处理就很简单的,要注意判断一下是否可以后退、前进才调用
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)