UIKit-WKNavigationDelegate

WKNavigationDelegate
是webKit框架中的一个代理协议,用于处理webVIew导航和与导航相关的事件

WKWebView

是IOS 8+引入的一个高性能web视图控件,

相关API

webView:didCommitNavigation

导航已经成功完成且页面内容已经加载时调用此方法,这标志着导航的一些部分已经开始,但是页面的所有资源可能尚未加载完成。

webView:didFinishNavigation

导航完成时调用这个方法,相较于上面就是已经全部加载完成,此时页面已经可以交互

ebView:decidePolicyForNavigationAction:decisionHandler

在发起一个导航操作时调用此方法(就是当应用程序接收到来自 WKWebView 的导航请求时,这个方法将会被触发),用于决定是否应该允许导航继续进行。
也就是WKWebView 开始加载一个请求并准备导航到一个新的页面时调用,例如用户点击了一个链接,然后决定是否允许或取消导航。
你可以检查导航操作的类型和属性,然后决定是否要中断导航或允许它继续。
通过调用 decisionHandler 回调来通知 WKWebView 您的决策是允许还是取消导航。

webView:decidePolicyForNavigationResponse:decisionHandler

与上一个方法类似,但是在接收到导航响应后调用。你可以根据导航的响应信息来决定是否中断导航。

webViewWebContentProcessDidTerminate

当与 Web 内容的进程终止时调用此方法。这可能会发生在资源使用过多时或由于其他原因导致内部的 Web 内容进程重启。

(void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message

WKScriptMessageHandler协议的一个方法
用WKWebView加载网页时处理从网页中发送的javaScript
主要作用是从网页向本地应用程序发送数据或执行某些本地操作,例如脚本和原声代码进行交互
参数:
userContentController:用于管理用户脚本的 WKUserContentController 对象。通过它,可以向 WKWebView 添加或删除用户脚本以处理 JavaScript 消息。
message:这是一个包含接收到的 JavaScript 消息的 WKScriptMessage 对象。该对象包括以下信息:
name:JavaScript 消息的名称,是一个字符串,可以用于标识不同类型的消息。
body:JavaScript 消息的主体,通常是一个对象或字符串,包含从网页发送给本地应用程序的数据。
核心作用是实现webVIew和原生程序之间的双向通信
这个方法需要先让要显示webView的superView添加JS消息处理器

//super是需要显示webView的view
superView.configuration.userContentController addScriptMessageHandler:self name:messageHandleName

window.webkit.messageHandlers.YourHandlerName.postMessage(messageBody)
发送消息来的时候这个消息处理器会被触发,就会调用(void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message
后面的name参数是制定的消息处理器的名字
当使用JS代码发送消息时就需要使用相同的名字 比如
window.webkit.messageHandlers.YourHandlerName.postMessage(messageBody)来发送

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值