UIKit-WKNavigationDelegate

news/2024/7/20 22:53:31 标签: ios

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

WKWebView

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

相关API

webView:didCommitNavigation

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

webView:didFinishNavigation

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

ebView:decidePolicyForNavigationAction:decisionHandler

在发起一个导航操作时调用此方法,用于决定是否应该允许导航继续进行。你可以检查导航操作的类型和属性,然后决定是否要中断导航或允许它继续。

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)来发送


http://www.niftyadmin.cn/n/5141757.html

相关文章

【前端】JQ插件实现打印功能

1、准备工作 下载三个js文件:jquery.jqprint-0.3.js、jquery-migrate-1.2.1.min.js、jquery-1.11.3.min.js, 下载地址:https://download.csdn.net/download/qq_25285531/88492425 2、实现效果 点击“打印指导单”,调起打印机&a…

transformers-Causal lanuage modeling

https://huggingface.co/docs/transformers/main/en/tasks/language_modelinghttps://huggingface.co/docs/transformers/main/en/tasks/language_modelingcausal lanuage model常用于文本生成。预测token系列中的下一个toekn,并且model只能关注左侧的token&#xf…

白银期货投资指南,轻松搞定白银投资

在今天的金融市场中,白银已成为备受瞩目的投资选择。不仅如此,白银还是避险资产的首选之一,兼具保值和增值的潜力。万洲金业将为您提供一份白银期货投资指南,让您轻松了解白银投资,助力在白银交易市场获得潜在收益。 …

3-性能分析-android-基于Choreographer渲染机制详解

3-性能分析-android-基于Choreographer渲染机制详解 一:主线程运行机制的本质1> 引入 Vsync 之前2> 引入 Choreographer二: Choreographer 简介1> 从 Systrace 的角度来看 Choreogrepher 的工作流程2> Choreographer 的工作流程三:Choreographer 处理一帧的逻辑…

【编程语言发展史】C语言的诞生及其影响

目录 一、C语言的历史背景 二、C语言的设计思想 三、C语言的语法特点 四、C语言的应用领域 五、C语言的影响 六、总结 C语言是一种高级计算机编程语言,它的诞生和发展对计算机科学和软件工程领域产生了深远的影响。本文将详细介绍C语言的诞生及其影响&#xf…

天软特色因子看板(2023.10 第14期)

该因子看板跟踪天软特色因子A05005(近一月单笔流通金额占比(%),该因子为近一个月单笔流通金额占比因子,用以刻画股票在收盘时,主力资金在总交易金额中所占的比重。 今日为该因子跟踪第14期,跟踪其在SW801160 (申万公用事业) 中的表…

结构体数据类型使用的一些注意点

1.结构体定义时的注意事项: 1.错误定义结构体: struct students {char name[9] "Mike";int height 185; }; 这是不对的,在 C 语言中,这是由语言的设计原则所决定的。结构体的定义(struct declaration&…

PHP 人才招聘管理系统mysql数据库web结构layUI布局apache计算机软件工程网页wamp

一、源码特点 PHP 人才招聘管理系统是一套完善的web设计系统 layUI技术布局 ,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 php人才招聘管理系统 代码 https://download.csdn.net/download/qq_4…