当前位置: 首页 > news >正文

永康市住房建设局网站推广商

永康市住房建设局网站,推广商,青岛做网站公司,武汉吧哒科技股份有限公司官网场景需求: 嵌入页面操作时,通知父级页面 涉及知识点: contextBridge 嵌入页面可使用暴露的对象ipc-message 监听嵌入页面发送的消息webview preload 嵌入页面运行加载的脚本 问题(两种方式) 使用监听ipc-message需…

场景需求:

  • 嵌入页面操作时,通知父级页面

涉及知识点:

  • contextBridge 嵌入页面可使用暴露的对象
  • ipc-message 监听嵌入页面发送的消息
  • webview preload 嵌入页面运行加载的脚本

问题(两种方式)

  1. 使用监听ipc-message需要在嵌入页面安装electron,需求不允许
  2. 使用contextBridge创建全局对象,无法接收消息

解决思路

contextBridge暴露ipcRenderer给嵌入页面使用,再用ipc-message监听收到的消息

父级页面

<webview v-if="webviewerUrl" ref="webviewRef" class="webview" src="D://child.html" allowp:preload="webViewerPreload()" nodeintegration plugins disablewebsecurity>
</webview>
<script lang="ts" setup>
const webviewRef = ref()
// 控制第三方页面操作栏
const initWebviewEvent= () => {webviewRef.value.addEventListener('dom-ready', () => {// webviewRef.value.openDevTools() //打开嵌入页面的控制台})// 在此监听事件中接收嵌入页面的消息webviewRef.value.addEventListener('ipc-message', function (event: any) {if (event.channel === 'closeWindow') {// 需要执行的代码}});
}
onMounted(() => {nextTick(() => {initWebviewEvent()})
})
onBeforeUnmount(() => {webviewRef.value.removeEventListener('dom-ready')webviewRef.value.removeEventListener('ipc-message')
})
</script>

preload引入本地文件(file:// 格式)

import path from 'path'
export const webViewerPreload = () => {if (process.env.NODE_ENV === 'production') {return path.join(__dirname, '/preload.js')} else {return path.resolve('./src/entries/webViewer/preload.js')}
}

preload.js 暴露ipcRenderer 到全局

const { contextBridge, ipcRenderer } = require('electron')
// 存储全局方法
contextBridge.exposeInMainWorld('electron', {ipcRenderer: ipcRenderer
})

嵌入页面 child.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>child</title>
</head>
<body><button onclick="closeWindow()">关闭窗口</button><script type="text/javascript">function closeWindow(){const ipcRenderer = window.electron.ipcRendereripcRenderer.sendToHost('closeWindow')}</script>
</body>
</html>

总结:两种方法看了很久都没法实现,后面突然想到可以结合起来,可以将嵌入页面的消息发送给父级,但是嵌入页面不能收消息,不知道怎么解决。

http://www.mmbaike.com/news/35851.html

相关文章:

  • 好大夫网站开发单位安徽网络seo
  • 网站建设方案书原件培训机构营业执照如何办理
  • 教育培训机构招生网站建设百度推广账户优化
  • 做牙的网站叫什么百度指数数据分析
  • aspnet网站开发教程管理培训机构
  • 阿里云做淘宝客网站吗福州关键词排名软件
  • 自己做网站需要多少钱seo咨询解决方案
  • php招投标网站源码优化设计五年级下册数学答案
  • 网站建设结课手机优化软件下载
  • 广州网络推广建站百度竞价点击神器下载安装
  • html5网站建设公司西安百度推广开户多少钱
  • 用vultr做网站在线注册免费域名
  • 威海哪里做网站营销网站建设方案
  • 怎么搭建网站友情链接市场营销比较好写的论文题目
  • 做防水的网站有哪些公司建网站多少钱
  • wordpress链接加html代码搜索引擎seo是什么
  • 高端html5网站建设北京seo软件
  • wordpress用腾讯云cdn廊坊seo整站优化软件
  • 网站怎么发邮件网店运营教学
  • 动态网站设计心得体会百度怎么发布自己的信息
  • 网页设计与制作课程思政目标宁波seo排名优化培训
  • 兖州网站建设哪家便宜2021最近最火的关键词
  • 电商网站的建设步骤宁波seo教程推广平台
  • 北京h5网站建设小程序制作一个需要多少钱
  • 17zwd一起做网站广州新塘免费发广告帖子的网站
  • 帮忙建设公司网站手机导航下载2022新版
  • h5免费模板下载优化网站页面
  • 怎么把百度到自己的网站济南百度推广优化
  • 做神马网站优化排名软关键词推广效果分析
  • 帮别人做网站用织梦模板行吗广西网站建设