| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> electron框架的webview标签使用以及preload设置 -> 正文阅读 |
|
[移动开发]electron框架的webview标签使用以及preload设置 |
使用webview标签是为了在主页面中嵌入其他web页面内容,类似小窗口 ? 使用webview 1.主窗口对应的页面index.html 其中使用<webview>标签,src引入需要内嵌的web页面路径,可以是本地文件,也可以是远程请求,例如src=“https://www.douyin.com/”,引入抖音官网主页 然后通过<script>引入渲染脚本 2.主窗口主进程入口文件main.js 该文件中,创建主窗口,并在创建过程中 通过设置webPreferences的preload属性来引入预先加载的js脚本,通过设置webviewTag属性为true,才能在使用webview标签 该文件中,通过ipcMain.handle(eventName,function(){})来设置具体的事件处理过程,并返回一个结果,这个结果会在渲染进程中拿到 3.预加载脚本preload.js文件 该文件中,预先设置了一些自定义事件函数,这些函数被桥接在window上,当在renderer.js中调用window.pageClick.mainPageClick()时,会触发对主进程的通信,即ipcRenderer.invoke(eventName),该eventName与主进程中ipcMain.handle(eventName,())中的一致 4.主窗口渲染脚本renderer.js? 该文件中,获取dom节点,设置监听事件,然后通过调用window.pageClick.mainPageClick()这个预先定义在preload.js中的方法,来触发向主进程的通信,主进程对相应自定义事件进行处理,并返回处理结果,拿到结果后,可以对页面进行一些操作,例如文本展示或切换webview引入的页面内容 整个过程:页面定义dom结构,然后操作页面点击,触发在renderer.js里面的点击事件,从而调用window相应方法,触发在preload.js中预先设置的方法调用,从而渲染进程向主进程通信触发主进程事件,在main.js中收到来自渲染进程通信触发,进行具体事件处理,可能会有返回值,返回至renderer.js中,然后渲染进程可根据返回值做进一步的页面处理操作 5.给webview也设置预加载脚本 给webview标签设置preload属性,并引入对应脚本路径,可以是相对路径 6.webview中引入的web页面test.html 需要引入对应的webRenderer.js文件 7.webview中预先加载的脚本文件webviewPreload.js 同样可以设置一些自定义事件,桥接在window上 8.webview中引入的渲染脚本webRenderer.js 该文件中,获取dom节点,监听事件,触发事件处理函数 9.界面运行后效果 通过点击test1模块,触发事件,会在红色区域显示文字 通过点击主窗口左侧栏首页,可切换webview显示的web页面内容 几个注意点: 1.所有的具体事件处理,即ipcMain.handle()都定义在主窗口主进程main.js文件中 2.在主窗口的渲染进程renderer.js中,无法触发在webview引入的页面对应的预加载文件webviewPreload.js中定义的事件 3.在webview引入的页面对应的渲染进程webRenderer.js中,也无法触发在主窗口的预加载文件preload.js中定义的事件? |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 20:12:12- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |