我試圖做到的,是在一個意義上的「真正的」應用程序類似的行爲,當我結束在MacOS(按X的應用程序,因此應用程序仍然在碼頭),然後再次從碼頭打開應用程序,網頁內容應該立即在那裏。正如我試圖建立一個容器的web應用程序,我得到的行爲是我每次打開應用程序時,網頁加載再次引起了摩擦UX。飼養頁面內容加載中時電子關閉窗口
我已經卸載窗口之前嘗試了一些骯髒的解決方法,就像從演示過程中主窗口調用.hide():
const {remote} = require('electron');
const main = remote.require('./main.js');
window.onbeforeunload = e => {
main.hideWindow();
e.returnValue = false;
};
和主要工藝
exports.hideWindow =() => {
mainWindow.hide();
};
但是,我無法退出我的應用程序。
我考慮的另一個選擇是加載整個mainWindow DOM在內存中,然後打開應用程序時,在<webview>
preload script加載緩存內容到webview中,一旦加載頁面,覆蓋webview內容,但它也似乎非常黑客。
我知道Slack的行爲完全如何,我希望我的應用程序的行爲,但我很努力地找到他們如何實現即時加載(或者可能永遠不會關閉,除非從Dock或Cmd + Q中選擇退出被擊中)。
是的,你已經概述了快速啓動應用程序的行爲,導致在應用程序激活時重新加載頁面,這是我試圖避免的現象 – Lightheaded
對不起,也許我誤解了,如果這是代碼導致你試圖避免的現象,那麼肯定你正在做類似的事情......並且需要刪除它。沒有? – Fraser
問題是,窗口關閉(與關閉瀏覽器相同)。打開它後,調用'createWindow()',webview再次加載頁面,導致應用程序短暫延遲。我想通過緩存應用程序內容或以某種方式解決關閉窗口而不是隱藏它來擺脫這種延遲。 – Lightheaded