亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Electron如何截獲頁面下載事件?

Electron如何截獲頁面下載事件?

呼啦一陣風 2019-05-13 13:06:49
Electron默認的下載事件不支持斷點下載,我想截獲后調用自己的下載函數,下載函數已經寫好,現在問題主要是要截獲頁面的下載事件(html頁面不是自己寫的),有沒有懂的大神賜教下
查看完整描述

2 回答

?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

問題解決了,當頁面執行下載操作的時候Electron的webContents.downloadURL(url)會被自動調用,session的will-download事件會觸發,只要監聽session的will-download事件,然后調用event.preventDefault()阻止調用系統的默認下載,之后調用自己的下載函數就可以了,謝謝大家了mainWindow.webContents.session.on('will-download',(event,item,webContents)=>{
event.preventDefault();
//console.log('will-download'+item.getURL());
//執行自己的下載操作
MyDownLoad(item.getURL());
});
                            
查看完整回答
反對 回復 2019-05-13
?
繁華開滿天機

TA貢獻1816條經驗 獲得超4個贊

我前段時間正好寫過electron的下載,正常的electron實現下載是怎樣的呢?先要說下electron的ipc通信,ipcMain,ipcRendererelectron內主進程和渲染進程是通過ipc通信的主進程(main.js)定義監控函數
ipcMain.on('download',(evt,args)=>{
leturl=JSON.parse(args);
downloadUrl=url.downloadUrl;
saveUrl=url.saveUrl;
mainWindow.webContents.downloadURL(downloadUrl);
});
渲染進程(頁面)調用ipcRenderer來觸發
ipcRenderer.send('download',JSON.stringify({
downloadUrl:`${ipURL()}${url}`,
saveUrl:result[0]
}));
這樣就可以觸發主進程的下載動作,至于下載動作是怎樣的我就不寫了,官方上都有,如果向阻止electron只要把main.js里的
ipcMain.on('download',(evt,args)=>{
leturl=JSON.parse(args);
downloadUrl=url.downloadUrl;
saveUrl=url.saveUrl;
//mainWindow.webContents.downloadURL(downloadUrl);
});
注釋掉就行了
當然每個人的寫法可能不一樣,但是都是通過ipc從渲染進程發送給主進程的,找到主進程里開始下載的動作,關掉就可以了
                            
查看完整回答
反對 回復 2019-05-13
  • 2 回答
  • 0 關注
  • 543 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號