electron 拦截下载,启动浏览器下载

一,说明

electron 不像浏览器会带下载管理,electron 页面调用下载的话,无法感知下载进度,我这里偷懒,直接丢给默认浏览器下载。

二,代码

    one_plugin_ui.webContents.session.on("will-download", (event, item, webContents)=>{
      let url = item.getURL()
      item.cancel()
      shell.openExternal(url);
      webContents.loadFile("download.html")
    })
  • one_plugin:electron的 windows
  • win-download:触发下载事件
  • item.cancel():取消electron默认下载逻辑
  • shell.openExternal:调用默认程序(浏览器)打开url
  • webContents.loadFile:加载自己定义下载界面【因为点击文件下载,会弹出新的窗口,默认是空白的,为了体验好一点,我增加一个提示下载的页面】
  • item: 对应的electron的对象 downloaditem

三,文档

downloaditem的介绍

fishtools 插件工具1.0.0.2

背景

这个工具我很早之前就想开发了,陆陆续续开发一段事件时间,基本功能开发完全了

目的

软件快速通过关键词或者关键词的缩写打开对应的网址,因为自己常常会开一些web,进行访问。 这个软件有点借鉴utools,这个工具可以对接任何web网页,加入js注入。
本软件只是练手electron 技术而已,后续慢慢补充各种插件和web,实现自己软件自给自足。提高自己快速编码能力和产品的驾驭能力。

用途

  • 快速访问网址,不用自己记录各种网址
  • 可以常驻后台,避免浏览器关闭,导致网页关闭
  • 自带js注入框架,方便自己扩展各种网页功能,满足更多功能【具有无限可能】
  • 后续可能的功能是窗口大小记忆

使用教程

添加自己的网址,这里主要设置关键词,这里设置js,那么当自己ctrl + alt + k 调出输入框 ,然后输入js,就会列出访问的网址。

下载云端js 插件,你也可以右键自己添加js插件,这样子就可以控制任何网页界面代码。

这里我设置正则,匹配语雀文档时候,弹出密码验证框,这样子相当于给自己的网页语雀增加了密码验证。这里密码我写死为helloworld123

下载

链接:https://pan.baidu.com/s/172DBUEKF_Y911hNik7Gtsw
提取码:1234
复制这段内容后打开百度网盘手机App,操作更方便哦–来自百度网盘超级会员V5的分享

代码

因为electron练手项目,所以暂时不开源,但electron asar只要解压就可以看到代码,所以你也可以获取到代码

TODO

  • 增加窗口大小记录
  • 增加导航栏,方便使用

electron 加载第三方页面,无法jquery问题

如题,这个官方问题里面已经写了解决方案,我只是记录一下方便整理

我在 Electron 中无法使用 jQuery、RequireJS、Meteor、AngularJS。

因为 Electron 在运行环境中引入了 Node.js,所以在 DOM 中有一些额外的变量,比如 moduleexports 和 require。 这导致 了许多库不能正常运行,因为它们也需要将同名的变量加入运行环境中。

我们可以通过禁用 Node.js 来解决这个问题,在Electron里用如下的方式:

// 在主进程中.
const { BrowserWindow } = require('electron')
const win = new BrowserWindow(format@@
  webPreferences: {
    nodeIntegration: false
  }
})
win.show()

假如你依然需要使用 Node.js 和 Electron 提供的 API,你需要在引入那些库之前将这些变量重命名,比如:

<head>
<script>
window.nodeRequire = require;
delete window.require;
delete window.exports;
delete window.module;
</script>
<script type="text/javascript" src="jquery.js"></script>
</head>