- 博客(25)
- 资源 (9)
- 收藏
- 关注
原创 【electron】接入c++插件
环境:visual Studio python npm install node-gyp -gdemo:https://github.com/nodejs/node-addon-examplesnode官方提供的多个插件例子选择一个顺眼的例子,进入子目录中,cd node-addon-api && npm install && node-gyp build && npm testbuild之后会在项目目录中生成build目录,..
2022-04-22 11:17:55 3504 1
原创 【electron】nsis重编译,自定义nsis校验弹窗警告的文案
nsis默认的弹窗警告:可以修改NSIS目录下stubs/zlib_solid文件修改文案,该文件为c++项目编译产出后的文件,故需要修改文件需要重新编译nsis1.下载nsis源码:从 NSIS 官方网站NSIS: Nullsoft Scriptable Install System - Browse Files at SourceForge.net 下载 源代码 zip 包,切记是-src的包,这里下载的是最新的Download NSIS: Nullsoft Scriptable .
2022-04-21 10:34:58 2181
原创 【electron】静默升级与主动安装
结合electron-updater包与downloadItem类实现主要流程:1.通过electron-updater检查更新,返回升级2.判断是否执行静默升级(检查本地安装包的完整性)3.通过downloadItem执行下载,它可以实行暂停与恢复4.下载完成后通过execSync执行安装包,关闭应用electron-updater中逻辑不变,可参考:【electron】应用在线升级_渐墨深的博客-CSDN博客_electron 在线更新主流程新增download代码
2022-04-12 11:33:30 3931 3
原创 【electron】electron开发中的一些问题
electron中遇到问题gpu process launch failed: error_code=xxcontextIsolation:false
2022-04-12 10:38:56 2010
原创 【electron】应用在线升级
流程1.设置feedUrl每次登录应用后更新feedUrl,如果需要灰度测试。可以添加uuid的参数,由服务端判断是否命中注意:feedUrl需要在checkUpdate之前调用// 主进程// 初始化 private cancellationToken?: CancellationToken private isForceUpdate = false private updating = false autoUpdater.logger = log a
2021-12-14 11:08:36 3070
原创 【electron】打包过程中的一些坑
1.应用白屏本地运行正常,打包后白屏,大概率是loadFile路径不对其中index.html的路径要根据打包后的main.js的相对路径,打包后main.js的层级变了,需要对应修改,renderer和main的目录是并列的win.loadFile(path.join(__dirname, '../../renderer/index.html'));2. 整个应用打包后找不到main.js文件⨯ Application entry file "main/main.js" in th
2021-11-09 11:50:19 3982
原创 【electron】打开离线包-双击文件打开关联应用
1.写入注册表,在安装后执行,卸载后删除注册表 // electron-builder.json 中增加配置, "nsis": { "guid": "com.xxx", "deleteAppDataOnUninstall": true, // 卸载后删除用户数据 "include": "script/installer.nsh", // 配置安装后的脚本 "oneClick": false, // 取消一键安装 "perMachine": true,
2021-11-09 11:12:36 2051 2
原创 【electron】打开离线包-解压文件
1. 使用unzipper解压文件,可以解压带密码的文件,需要安装unzipper和iconv-lite参考 :node-unzipper 加密压缩包的解压 - 星耀夕空缺点:对于大文件解压速度太慢,尤其是带密码的大文件,基本不用考虑// 渲染进程中const { createReadStream, createWriteStream } = window.require('fs');const { unzipper } = window.require('unzipper')con.
2021-11-09 11:01:01 1909
原创 【electron】打开离线包-读本地文件
1.渲染进程直接调用remote中的dialog方法// 渲染进程const { dialog } = window.require('electron').remote;dialog .showOpenDialog({ title: '请选择你的离线包', // 过滤选择文件类型 filters: [ { name: 'file', extensions: ['ep.
2021-11-09 10:23:00 918
原创 慎用 空值合并运算符 ?? 于 || 完全不能替代
当代码是available || ok时候,webstrom可能就会弹出这个提示,是不是毫不犹豫点了 exlint fix...然后就突然发现结果不对了??看下官方定义:当左侧的操作数为null或者undefined时,返回其右侧操作数,否则返回左侧操作数。只能做判空使用,千万不要当||操作符使用。这个时候,可以把左侧判断写全,譬如,!!available || ok, 或者available===true|| ok就不会提示eslint的错误了。...
2021-04-09 16:30:12 245 1
原创 【RxJs】每天学习一点操作符 combineAll、combineLatest
combineLatest:官方解释:combineLatest(observable1:ObservableInput, observable2:ObservableInput, project:function, scheduler:Scheduler):Observable组合多个 Observables 来创建一个 Observable ,该 Observable 的...
2021-02-07 14:55:37 1183
原创 前端常用功能的实现方法 - 持续更新
// 年龄计算 private getAge(birthday: number) { const time = new Date(); const bir = new Date(birthday); return ( time.getFullYear() - bir.getFullYear() - (time.getMonth()...
2021-02-01 19:04:12 608 1
原创 【vue】ios11.4及以下版本后退页面不刷新,onpageshow方法无效
在做H5页面的时候,遇到一个很奇怪的问题,测试告诉在他的ipad上购买成功后返回页面不刷新。我:???测试了多个设备,发现在ios版本的11.4及ios8的ipad上,怀疑是系统版本问题。项目是基于vue的, 但是不是单页面应用,页面之前之间都是使用location.href跳转的。charles抓包显示在页面打开的时候根本没有调用接口?多方百度,都说使用onpageshow方法。...
2020-01-06 16:06:48 2603
原创 【JS】使用setMonth()时遇到的坑
在业务需求中,需要时间一个连续翻页控件,获取每个月的开始时间和结束时间。最开始的时候,使用 new Date()获取当前的月份为month,然后使用setMonth(month + 1),为下一个月的当前时间,setMonth(month -1),然后基本使用是没有问题的,但是在今天10月31的时候惊奇的发现,11月居然没有了?原来setMonth(month + 1)并不是单纯的取到下...
2019-10-31 18:11:13 2168
原创 【RxJs】每天学习一点操作符 concat、concatAll、concatMap、concatMapTo
concat:官方解释:concat(other:ObservableInput, scheduler:Scheduler):Observable创建一个输出 Observable,它在当前 Observable 之后顺序地发出每个给定的输入 Observable 中的所有值。测试代码:const timer$ = interval(1000).pipe(take(4)...
2019-10-14 11:03:05 838
原创 【VUE】实现自适应页面、内容不等、高度保持一致的跑马灯
遇到一个问题,在一个自适应页面中做跑马灯,因为内容高度有差异,如果采用常规的v-if显示对应的卡片,那么跑马灯的高度会在切换过程中发生变化,所以将内容横排,使用scroll的方式,滚动卡片,这样整个卡片的高度就以内容最多的卡片为准了。具体实现:跑马灯组件的template如下所示,上半部分为内容展示,下半部分为切换按钮,当鼠标进入的时候卡片悬停,鼠标离开时卡片继续切换。展示内容由父组件传...
2019-10-11 11:11:39 1675
原创 【RxJs】每天学习一点操作符 merge、mergeAll、mergeMap、mergeMapTo、mergeScan
merge官方解释:merge(observables: ...ObservableInput, concurrent:number, scheduler:Scheduler):Observable创建一个输出 Observable ,它可以同时发出每个给定的输入 Observable 中值。、测试代码:const sourceOne$ = of(1, 2, 3); ...
2019-08-26 15:09:23 6007
原创 【Vue】 vue项目重构为typescript遇到的一些坑
当按照各种教程操作的时候,会遇到很多小问题。如在改写App.vue的时候,错误:client?7d67:159 ./src/App.vueModule Error (from ./node_modules/[email protected]@eslint-loader/index.js):]50;CurrentDir=/Users/chenjing/Desktop/pro/...
2019-08-24 22:27:29 1407
原创 【RxJs】每天学习一点操作符之 map、 mapTo、switchAll、switchMap、switchMapTo
map官方解释:map(project:function(value:T, index:number):R, thisArg:any):Observable<R>将给定的project函数应用于源 Observable 发出的每个值,并将结果值作为 Observable 发出。官方的解释比较清楚。测试实例: const sourceOne =...
2019-08-23 15:33:26 2810
原创 【Vue】 使用vuex 封装一个toast 组件
使用vuex进行状态管理,使用css控制toast的显示。type表示toast中的图标,可以自定义添加多种图标,例子中只设置了normal与success,通过showToast控制toast的css的fadin和fadeout类,通过css的动画效果实现toast逐渐消失的效果//toast.components<template> <div class...
2019-07-25 23:27:40 594
原创 【Vue】自定义loadmore指令实现下拉加载更多
使用自定义指令loadmore,实现下拉加载更多。首先是loadmore.js, el 为绑定的元素,通过el.scrollHeight - el.offsetHeight === el.scrollTop判断滚动条到达底部,这里引入了loadsash实现节流,以免每一次滚动到底部都加载数据(手抖或故意滚动),加入flag字段,控制首次触底后直接执行,后续的触底至少间隔一秒,不介意第一次会慢一...
2019-07-25 23:09:52 6304
原创 【JS】js中同步异步,Promise,Async/await, Observable
同步与异步由于js是用来控制DOM的,所以js必须是单线程的,因为如果多个线程同时控制DOM操作,那么页面必然就乱套了。为了避免复杂性,所以它是单线程的。为了利用多核CPU的计算能力,HTML5提出Web Worker标准,允许JavaScript脚本创建多个线程,但是子线程完全受主线程控制,且不得操作DOM。虽然js单线程的,但是浏览器内部不是单线程的,以此js才实现了异步。一些I/...
2019-07-16 22:42:08 2906
原创 【Angular】根据文本宽度动态设置文本的样式
UI提了一个需求,大概内容是,在默认情况下,字体大小22px,宽度最大为104px;但是如果内容太多的话,max-width为114px;字体改成18px。。。(内心:为什么就不能多少就变小?为什么不给个大点的位置放?为什么不能一开始都显示为小号???)emmmm。尽管十分不情愿(这种基于自己菜的不情愿实在是难受),但是由于UI和产品是上帝,只能开始了各种探索之路了。由于自己的渣渣C...
2019-07-12 16:02:10 1430
原创 【NG-ZERRO】select 可增加选项,nzDropdownRender对选项扩展
功能描述:在下拉框中待选项可能并没有用户需要,这个时候希望实现用户能够自定义选项。查看官方文档发现一个扩展菜单功能,代码如图所示: <nz-select style="width: 120px;" nzShowSearch nzAllowClear [ngModel]="'lucy'" [nzDropdownRender]="render"> <nz-...
2019-05-31 15:20:37 2462
原创 【electron】- 无边框窗口应用中的一些坑
1. 无边框窗口实现通过设置frame的值为false可以隐藏窗口的边框。win = new BrowserWindow({ frame: false, });mac上的红绿灯实现了无边框后,通过设置titleBarStyle属性,可以在mac上保留红绿灯,titleBarStyle的值可选: default:默认,标准灰色不透明的mac标题栏; hidde...
2019-05-24 16:55:15 11318 2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人