当前播放: 08 | 第一个Electron应用:开发一个简单版的番茄钟(下)
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
课程目录
第一章:Electron基础篇 (12讲)
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讲)
13 | 实战项目综述:整体需求分析
14 | 设计思路:做远程控制有几步?
15 | 项目架构与基础业务:Electron 与 React 框架结合
16 | 主页面基础业务:Real World IPC
17 | 傀儡端实现(一):基于Electron能力捕获桌面视频流
18 | 傀儡端实现(二):如何接收&响应指令?
19 | 傀儡端实现(三):基于WebRTC传输视频流(上)
20 | 傀儡端实现(四):基于WebRTC传输视频流(下)
21 | 信令服务:如何连接两端(上)
22 | 信令服务:如何连接两端(下)
23 | 指令传输实现:如何建立数据传输?
24 | 项目完善与总结(上):App特性
25 | 项目完善与总结(下):原生GUI
第三章:Electron 工程篇 (7讲)
26 | Electron 应用打包:从HTML到安装包
27 | Electron 应用更新(一):软件更新的痛点
28 | Electron 应用更新(二):线上项目如何更新?
29 | Electron 质量监控:桌面端的质量抓手是什么?
30 | 使用原生能力:如何集成C++能力?
31 | Electron 自动化测试:如何编写端到端测试?
32 | Electron体验优化:如何优化白屏问题?
08 | 第一个Electron应用:开发一个简单版的番茄钟(下)

08 | 第一个Electron应用:开发一个简单版的番茄钟(下)

邓耀龙
美团高级前端工程师
33讲 约300分钟1767
单独订阅¥99
2人成团¥79
2
本节摘要
登录 后留言

精选留言(29)

  • 恩佐
    目前用老师的代买macos x上的notification已经显示不出来buttons了,怎么才能显示button

    作者回复: 你可以在系统偏好设置>通知>找到electron,提示样式改成「横幅」或者「提示」。

    2020-01-09
    4
  • 行问
    实战部分,打包时是基于 Webpack 么?如何从 Electron 本身的打包修改为基于 Webpack 多窗口打包,这对工程化是否有帮助?

    作者回复: Webpack打包只是产出浏览器可识别的html、js、css等资源,Electron打包需要将我们的代码和内核一起产包。两者在大型项目是要同时用的,一般都是先webpack build、之后才是electron pack。课程后面会提到Webpack。

    2020-01-08
    1
    2
  • 拿什么梨
    Error occurred in handler for 'work-notification': No handler registered for 'work-notification' 老师 通知没有注册 弹窗换不起来怎么回事啊 我 win10

    作者回复: 主进程没有写handle吧,看看是不是处理ipcMain.handle有问题。

    2020-01-18
    1
    1
  • 孙国佳
    老师,我现在做的项目是通过这个框架加载服务器上的地址,我在里面写了一个html读取配置的xml的ip地址进行跳转,在跳转的时候会出现白屏,在白屏期间会有俩个页面,一个是跳转之前的,一个是跳转之后的,俩个我都加了同样的loading,这种解决方案行么,还是说有更好处理白屏的解决方案。

    作者回复: 加loading占位是合理的操作。后面第三章课程我们也会讲到白屏

    2020-01-14
    1
  • 我不是戴艺
    actions: NotificationAction[];
        body: string;
        closeButtonText: string;
        hasReply: boolean;
        replyPlaceholder: string;
        silent: boolean;
        sound: string;
        subtitle: string;
        title: string;
    以上是notification的初始化内容,虽然按照标准来了,但是还是在macOS的环境下还是没有按钮

    作者回复: 你可以在系统偏好设置>通知>找到electron,提示样式改成「横幅」或者「提示」。

    2020-01-09
    1
  • 一步
    ipcRenderer.send 和 ipcRenderer.invoke 这两个方法有什么区别的?我看文档参数就是一个有返回值 一个没有

    作者回复:
    后面课程会有讲到通信,invoke专门用来处理响应请求模式,而且是promise写法。你的理解其实是对的。

    2020-01-08
    1
  • 小雨点儿上的小雨点儿
    老师,这番茄时钟renderer.js 中,将timerContainer 中的文本替换成修改后的时间,为什么和你的写的一样,却是错误的呢,我用的是window10,就是下面这句话,输出的是字符,没有被转义
    timerContainer.innerText = '${mm.toString().padStart(2.0)} : ${ss.toString().padStart(2,0)}'

    作者回复: 用`,不是'

    2020-02-20
  • 雷敏
    老师,我用的你的代码运行, 时间到了 notification通知不弹出来? 是不是设置的问题?

    作者回复: 如果是mac系统,应该是能弹的。可以在系统偏好设置-通知中找到electron,将弹出设置为横幅。

    2020-02-18
  • Rynn艾虹
    番茄钟实在是太实用了 之前都用别人家的番茄钟 以后我就用我自己做的了

    作者回复: 👍👍👍

    2020-02-10
  • 完全不会C++
    老师 ubuntu 16.04 是不是也不支持Notification的button?有什么解决的办法吗?

    作者回复: 的确是不支持的。

    2020-02-03
  • 瑞泉
    老师,我的nodejs安装在D:\Program\nodejs,npm安装在上目录下node_modules,我的从github上下载下来的8-pomodoro-demo在E盘,依赖的timer.js已经采用npm install timer.js -g安装为全局程序包,但是在E盘的项目还是没法引用到,在package. json的dependences定义的程序包还能指定目录,否则只能在E盘的目录下再次npm install安装对应的依赖程序包,老师都是怎么解决的?相同的js只安装一个目录,不同的程序共用

    作者回复: 不太建议直接全局共享,npm本身有安装缓存机制,所以一边每个项目都自己管理自己的由来。
    另外如果对npm找包的逻辑不太熟悉,可以看看阮老师的http://www.ruanyifeng.com/blog/2015/05/require.html

    2020-01-28
  • 瑞泉
    老师,无法出现倒计时,我在Toggle Developer Tools发现提示如下:
    Uncaught Error: Cannot find module 'timer.js'
    我用npm install timer.js,还是提示找不到,啥原因?搞了好久了望老师给予指导

    作者回复: 这个错误栈我很难直接定位出来,建议可以试试重装依赖npm remove timer.js
    npm install timer.js --save
    之后你可以对比这个demo试试。
    https://github.com/dengyaolong/geektime-electron/blob/master/Chapter%201/8-pomodoro-homework/renderer.js

    2020-01-26
    2
  • qf年间
    谁能救救我,为什么Mac安装5.0的npm start不能用,报错如下
    sh: electron: command not found
    npm ERR! code ELIFECYCLE
    npm ERR! syscall spawn
    npm ERR! file sh
    npm ERR! errno ENOENT
    npm ERR! quick-start-demo@1.0.0 start: `electron .`
    npm ERR! spawn ENOENT
    npm ERR!
    npm ERR! Failed at the quick-start-demo@1.0.0 start script.
    npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

    作者回复: 看起来是electron没安装上,可以根据ppt提到的安装方法装好

    2020-01-18
  • 刘小宅
    老师代码我是跟你写的一致无二, 但是我打开的窗口却没有倒计时,index.html文件<!DOCTYPE html>
    <html lang="en">
    <body>
      <div id="timer-container">
      </div>
      <script src="./renderer.js"></script>
    </body>
    </html>
    package.json:
    {
      "dependencies": {
        "electron": "^7.1.9",
        "timer.js": "^1.0.4"
      },
      "name": "Electron",
      "version": "1.0.0",
      "main": "index.js",
      "devDependencies": {},
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "start": "electron ./index.html"
      },
      "keywords": [],
      "author": "",
      "license": "ISC",
      "description": ""
    }
    其他的renderer.js和main.js文件和老师的一样

    作者回复: 我猜测可能是你renderer.js没有startWork()。你可以对比一下https://github.com/dengyaolong/geektime-electron/tree/master/Chapter%201/8-pomodoro-demo

    这个是完整版
    https://github.com/dengyaolong/geektime-electron/tree/master/Chapter%201/8-pomodoro-homework 你可以直接对比一下。

    2020-01-17
    1
  • 白泗小林
    toFixed(0)不是会四舍五入么?

    作者回复: 是的,演示代码处理分钟有点问题,你可以在github上看看修改后的代码,稍微处理一下就好。

    2020-01-15
  • 在下
    windows 提示框没有button

    作者回复: 可以在评论里找找。如果你是Windows系统,Win 8以上可以使用https://github.com/mikaelbr/node-notifier,win7的话系统不支持这种交互。

    2020-01-15
  • 小糖逗
    老师,我的通知没有确认和关闭按钮是怎么回事?我的系统是MacOS

    作者回复: 你可以在系统偏好设置>通知>找到electron,提示样式改成「横幅」或者「提示」。

    2020-01-14
  • 张一鸣
    renderer.js 一直报renderer.js:1 Uncaught ReferenceError: require is not defined at renderer.js:1
    根据网上所查
            webPreference: {
                nodeIntegration: true
            }
    已经设置为true

    作者回复: 少打了个s,webPreferences

    2020-01-14
  • ʎpoqou
    希望老师尽快更新课程,最近在用electron-vue项目在windows电脑调用robot.js和dm.dll(c++)模块,编译失败,用了node-gyp和npm rebuilder也不可以😭

    作者回复: 为啥不试试electron rebuild呢

    2020-01-13
    1
  • Geek_cc6b96
    老师讲的太细致了。 之前用electron api demos 的第一个demo “Create a new window”,不管怎么点击都无效果,比较了好几个版本代码都一样,困扰了几天,最后调试+看文档,才知道原来需要在main.js中增加 nodeIntegration: true ...... 几天折腾,激情就没了。这个入门坎也太高了。

    作者回复: 多谢。在桌面端领域来说,其实Electron的门槛不高,可能在刚开始会有一些问题,但入门后就好很多~

    2020-01-13
收起评论
看过的人还看
TypeScript开发实战

梁宵  搜狗营销事业部高级架构师

47讲 | 3343 人已学习

拼团 ¥99 原价 ¥129
Node.js开发实战

杨浩  腾讯高级工程师

57讲 | 4371 人已学习

拼团 ¥99 原价 ¥129
JavaScript核心原理解析

周爱民  《JavaScript语言精髓与编程实践》作者,南潮科技(Ruff)首席架构师

28讲 | 4031 人已学习

拼团 ¥55 原价 ¥68
前端全链路性能优化实战

刘威  前端架构师

60讲 | 1984 人已学习

拼团 ¥99 原价 ¥129