iOS开发:webview动态添加配置返回、关闭按钮(简单又完美)

iOS开发:webview动态添加配置返回、关闭按钮(简单又完美),第1张

之前的想法是通过webview的navigationDelegate的各个生命周期中,判断webview的canGoBack属性,但是有不少缺陷:

比如单页应用的跳转不会触发生命周期,如果在didFinishNavigation中判断canGoBack,这要等页面加载完成才会执行,有很大的延迟.

下面是解决方案,其实很简单,就是通过kvo来监听canGoBack的变化:

根据微信的体验,微信的底部前进后退的状态判断也是根据监听canGoBack canGoForward来动态配置的

为navigation增加返回按钮, 为返回按钮增加返回事件, 判断当前webview是否可返回, 可以直接webview goback 不行直接navigation pop 方法就是 你只需要完成 webView的JS脚本和原生代码的通信。 在坛子里搜 webview + JS 有现成的例子

首先,我们在ViewController中先遵守协议:

我们可以先创建一个WKWebView的配置项WKWebViewConfiguration,这可以设置偏好设置,与网页交互的配置,注入对象,注入js等

创建对象并遵守代理

加载我们的本地HTML页面

我们再添加前进、后退按钮和添加一个加载进度的控制显示在Webview上

对于前进后退的事件处理就很简单的,要注意判断一下是否可以后退、前进才调用


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11556591.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存