Electron 开发实战
邓耀龙
美团高级前端工程师
21224 人已学习
新⼈⾸单¥59
课程目录
已完结/共 35 讲
Electron 开发实战
登录|注册
留言
21
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 18 | 傀儡端实现(二):如何接收&响应指令?
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
01 | 课程介绍
02 | 内容综述:学完这门课程你能得到什么?
03 | Electron介绍:为什么Electron这么火?
04 | 揭秘Electron架构原理:Chromium + Node.js是如何一起工作?
05 | 桌面端技术选型:如何选择合适的桌面端技术?
06 | Electron开发准备:环境搭建及前期准备
07 | 第一个Electron应用:开发一个简单版的番茄钟(上)
08 | 第一个Electron应用:开发一个简单版的番茄钟(下)
09 | 与Web开发不同(一):主进程与渲染进程
10 | 与Web开发不同(二):进程间通信
11 | 与Web开发不同(三):Native能力及原生GUI
12 | 与Web开发不同(四): 释放前端想象力,基于Electron能做什么?
13 | 实战项目综述:整体需求分析
14 | 设计思路:做远程控制有几步?
15 | 项目架构与基础业务:Electron 与 React 框架结合
16 | 主页面基础业务:Real World IPC
17 | 傀儡端实现(一):基于Electron能力捕获桌面视频流
18 | 傀儡端实现(二):如何接收&响应指令?
19 | 傀儡端实现(三):基于WebRTC传输视频流(上)
20 | 傀儡端实现(四):基于WebRTC传输视频流(下)
21 | 信令服务:如何连接两端(上)
23 | 指令传输实现:如何建立数据传输?
22 | 信令服务:如何连接两端(下)
24 | 项目完善与总结(上):App特性
25 | 项目完善与总结(下):原生GUI
26 | Electron 应用打包:从HTML到安装包
27 | Electron 应用更新(一):软件更新的痛点
28 | Electron 应用更新(二):线上项目如何更新?
29 | Electron 质量监控:桌面端的质量抓手是什么?
30 | 使用原生能力:如何集成C++能力?
31 | Electron 自动化测试:如何编写端到端测试?
32 | Electron体验优化:如何优化白屏问题?
33 | Electron客户端的安全:从XSS到RCE
34 | Electron bad parts:辩证看待Electron技术
35 | 结课测试&结束语
本节摘要
登录 后留言

全部留言(21)

  • 最新
  • 精选
charles龙仔饭
老师electron如何实现缓存文件啊,比如我想在客户端缓存pdf文件 ppt文件 视频文件 图片等等,这个用electron如何实现呢?最近工作上有这部分的需求,谢谢老师。

作者回复: 缓存机制的话,Electron只有跟Chrome一样的。但具体你这个缓存的产品形态要做些什么呢?最简单的一个方法就是直接把文件通过node下载下来,客户端加载时候先判断本地有没有,有的就加载本地文件。

2020-02-05
4
梁亮
对于使用最新的electron版本,因为API变化,默认不允许: "As of Electron 9 we do not allow loading of non-context-aware native modules in the renderer process." 所以为了让课程里面的代码正常工作,需要在main/index.js代码中设置: app.allowRendererProcessReuse = false; 这样才可以在Renderer进程中引入robotjs。

作者回复: 是的,Electron在高版本会权限逐步收紧,教材中使用的是7

2020-05-29
2
瑞泉
老师,nodejs有没有远程文件目录同步镜像的类库或组件呀,需要开发一个把本地服务器中更新的目录实时同步到远程的另一台服务器上,计划在本地服务器上用Electron编写配置界面,用nodejs实现目录监控和与远程服务器进行传输,我对nodejs不熟望老师给些指导,十分感谢

作者回复: 如果你是希望做一个文件存储的服务,可以看一下https://github.com/expressjs/multer 如果是做同步,比如类似rsync,可以考虑用https://github.com/mattijs/node-rsync

2020-02-01
2
2
a Zhu
这个时候,还是在家学习好!

作者回复: 待在家里学习,是对疫情最好的帮助~

2020-01-26
2
zc
老师,在通过window.screen.width,获取屏幕的宽高时候,有些电脑分辨率设置是1920*1080,但是电脑有个默认设置缩放布局125%,这样就会导致获取的数据不正确,鼠标的点击位置会有偏差。 问: 能否获取到缩放的这个值呢? 图片链接:https://i.postimg.cc/J0MnGJDk/123.png

作者回复: 通过electron的screen模块的getPrimaryDisplay()你可以拿到display对象,里面有个scaleFactor,可以试试。

2020-02-08
1
鹦鹉
踩坑: 在 macos 下遇到确认代码无误但 robotjs 无法控制的情况, 需要在 Preferences>Security & Privacy>Accessibility 中将终端程序加入列表才可以使控制生效.

作者回复: 👍对的,需要授权。

2020-01-26
1
Eagle Clark
老师 npm i robotjs 都过不去,怎么办啊

作者回复: 具体是报什么错呢?建议可以在robotjs的issue找一下错误。

2020-07-12
2
Richan
加了if ( key[0] !== '<' ) 还是会有报错 Uncaught Exception: Error: Invalid key flag specified.

作者回复: 这个简单debug应该能找出吧,你看看你的key是啥? https://github.com/dengyaolong/geektime-electron/blob/master/Chapter%202/12-remote-control/app/main/robot.js

2020-06-08
wiseLee
我的是win10 64位的,安装robotjs,这个版本不一致的问题怎么解决,我找了好多答案,还是解决不了,我使用electron-rebuild 成功了,但依然报这样的错误 was compiled against a different Node.js version using NODE_MODULE_VERSION 72. This version of Node.js requires NODE_MODULE_VERSION 75. Please try re-compiling or re-installing the module (for instance, using `npm rebuild` or `npm install`). at process.func (electron/js2c/asar.js:140:31) at process.func [as dlopen] (electron/js2c/asar.js:140:31) at Object.Module._extensions..node (internal/modules/cjs/loader.js:922:18) at Object.func (electron/js2c/asar.js:140:31) at Object.func [as .node] (electron/js2c/asar.js:140:31) at Module.load (internal/modules/cjs/loader.js:735:32) at Module._load (internal/modules/cjs/loader.js:648:12) at Module._load (electron/js2c/asar.js:717:26) at Function.Module._load (electron/js2c/asar.js:717:26) at Module.require (internal/modules/cjs/loader.js:775:19)

作者回复: 编译不对吧,可以试试自己编译,找一下abi?

2020-06-05
刘凯
require('robotjs') 会出现错误提示 electron/js2c/asar.js:140 Uncaught Error: Loading non-context-aware native module in renderer: '\\?\E:\Electron\tomato\node_modules\robotjs\build\Release\robotjs.node', but app.allowRendererProcessReuse is true. See https://github.com/electron/electron/issues/18397. 我感觉这个跟老师说的重新编译没什么关系,我试着把app.allowRendererProcessReuse=false 加到了main.js里,不报错了,但不知道 robotjs还能正常工作不?

作者回复: 新版本需要加参数的,我用的是7

2020-05-24
2
收起评论