<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
webview 想必都有所瞭解,比如:微信小程式巢狀H5
那麼我們在electron中怎麼使用webview呢?
我們先跟著官方檔案展示一下,看是否能有效果;
若要在應用程式中嵌入網頁, 請將 webview 標籤新增到應用程式的被嵌入頁面中 (這是將顯示外來內容的應用程式頁)。 在最簡單的例子中, webview 標籤包括網頁的 src 和控制 webview 容器外觀的 css 樣式:
這是官網示列
<webview id="foo" src="https://www.electronjs.org/zh/docs/latest/api/webview-tag" style="display:inline-flex; width:750px; height:calc(100vh - 5px)"> </webview>
展示效果:
既然我們現在能展示了,說明沒得問題正常使用的沒得問題的,那麼我們就需要了解一些我們在工作中可能會遇到的場景
先建立一個視窗,子視窗;可以看這篇文章會講述怎麼建立新視窗
electron建立新視窗(模態框)並相互傳值,主程序傳值給子程序
<webview id="foo" autosize="on" allowpopups :src="url" :data-home="url" scrollbars="none" partition="modal-webview" :preload="preloadPath" style="display:inline-flex; width:750px; height:calc(100vh - 5px)"> </webview>
在webview標籤中設定:preload="preloadPath";然後返回相關dom字串,並且在addEventListener中去監聽引數是否返回;
這兒的時候大家可以靈活運用,比較是依靠原生去獲取dom上的值,如果你直接獲取某個標籤的值的話,你直接獲取標籤的text的值即可;根據自己的需求去做相關的操作即可
const preloadPath = computed(()=>{ return path.join(__static, "/preload.js"); }) onMounted(() => { nextTick(()=>{ // 獲取webview的dom data.webview = document.querySelector("#foo"); // 監聽頁面是否渲染完成 data.webview.addEventListener("did-finish-load", (e) => { data.webview.addEventListener("ipc-message", async (event) => { console.log(event); // 獲取引數 if (event.channel == 'foo-html-content') { const html = event.args[0]; // 獲取的dom console.log(html); } }) // 通知獲取webview並返回引數,這個主要是preload.js裡面的東西 data.webview.send("foo"); }) }) })
主要是獲取頁面的一些標籤,也可以根據相關類名獲取
// public/preload.js const { ipcRenderer } = require("electron"); ipcRenderer.on('foo',() => { const htmlContent = document.querySelector("html").innerHTML; ipcRenderer.sendToHost("foo-html-content", htmlContent); })
這樣就可以獲取到webview展示內容的dom標籤了
以下是addEventListener的一些方法:
1.did-start-loading 頁面開始載入
2.load-commit 主頁面檔案載入
3.page-title-updated title
4.dom-ready 主頁面 dom 載入完成
5.load-commit frame檔案載入
6.did-frame-finish-load frame 載入完成
7.did-frame-finish-load 最後一個是主框架frame 載入完成
8.did-finish-load 頁面載入完成
9.page-favicon-updated 網頁 icon
10.did-stop-loading 頁面停止載入
我們在使用掘金的過程中,點選文章時他會開啟一個新的視窗; 原因是設定的allowpopups屬性;但是將allowpopups改為false時,點選文章會沒效果;所以需要將allowpopups屬性刪除,然後根據下面的程式碼;就會在同視窗下實現跳轉效果;
data.webview.addEventListener('new-window',(e)=>{ const urlClass = new URL(e.url); const { protocol } = urlClass; if (protocol === "http:" || protocol === "https:") { ata.url = e.url; } })
可以重新整理當前頁面
// 重新整理頁面 const refresh = () => { data.webview.reload(); }
當我們點選了文章以後,想返回上一頁的時候可以使用
// 上一頁 const back = () => { data.webview.goBack(); }
// 下一頁 const forward = () => { data.webview.goForward(); }
以上就是今天的全部內容了;
以上就是electron 中 webview的使用範例詳解的詳細內容,更多關於electron webview使用的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45