一、关闭自动更新目前有两种方案:
1.Hosts文件配置以下地址屏蔽连接:
以下配置粘贴到文件中,文件位置:C:\Windows\System32\drivers\etc
0.0.0.0 dl.pstmn.io
0.0.0.0 sync-v3.getpostman.com
0.0.0.0 getpostman.com
0.0.0.0 go.pstmn.io
保存后重新打开如下就代表已经成功。
2.目录写入权限控制,打开Postman目录右键文件夹属性,点击编辑,勾选写入拒绝,确定后更新文件就不能下载了。
不过以上方案有个缺点就是齿轮设置上有个小红点
本人有强烈的强迫症,看着红点就想点,所以就想方设法去掉,通过研究发现可以修改文件实现。下面说下修改方法,打开 Postman目录找到app-版本号\resources\app.asar文件
然后就是解压缩出来文件。
1.如果电脑上装有nodejs ,可以通过asar解压,未安装asar可以执行命令安装 npm install -g asar
安装完成后打开命令提示符,
执行解压命令,asar extract app.asar ./app
打包命令:asar pack ./app app.asar
2.通过asar文件查看、打包、解包工具来提取出来。https://pan.baidu.com/s/1vLxmTTZYUYnfWiz4XiXs9A(提取码:9l3e)
然后就开始修改之旅了,本人js小白,改的不好地方麻烦大佬们给指正以下。
修改文件在解压好的目录下\js\requester.js
本文以Postman 7.36.7为例,其他版本可能略有区别。
打开文件,找到以下位置
这段代码的大概是做了这样的一件事情,通过接口发送软件的版本请求postman地址,如果官网最新版本大于本地版本,则会返回最新的版本号和下载地址,状态码是200 。 如果软件版本号大于或者等于官网版本则会返回状态码204。
修改思路就是不用返回的状态,写死状态和版本号。
以下是我的修改:
updateHandler() {
// populate release notes for current version
this.noUpdateFound(); //添加此行
},
noUpdateFound: function () {this.downloadVersion = '7.36.1' // 添加此行
this.set({
status: 'updateNotAvailable',
data: null });
},
initialize: function () { this.set('isUpdateEnabled', pm.app.get('isUpdateEnabled')); // Disable if the flag is set but only if it is not a public facing channel // Used while running integration tests if (pm.env.DISABLE_UPDATES && !_.includes(PUBLIC_CHANNELS, window.RELEASE_CHANNEL)) { return; } if (!this.get('isUpdateEnabled')) { pm.logger.info('Updater bailed! Running on Snap!'); return; } // initialization should be idempotent if (this.get('initialized')) { return; } this.set('initialized', true); // migrate existing data if (pm.settings.getSetting('autoDownloadUpdateStatus') === 0) { pm.settings.setSetting('autoDownloadUpdateStatus', _constants_AppSettingsDefaults__WEBPACK_IMPORTED_MODULE_0__["default"].autoDownload.MINOR); } this.updaterEventBus = pm.eventBus.channel(APP_UPDATE_EVENTS); //this.attachUpdaterEventsListeners();//删掉此行 //this.checkForVersionUpdate();//删掉此行 this.version = pm.app.get('version'); this.appId = pm.app.get('installationId'); this.userAgent = navigator.userAgent; this.platform = this.getPlatform(); this.arch = this.getArch(); this.updateServerDomain = postman_update_server_url; this.noUpdateFound();//添加此行并删除之后的 //setTimeout(() => { // navigator.onLine && this.updateHandler(); //}, 10000); // After 10 sec //setInterval(() => { // // If an update is already downloaded don't check for new updates // if (this.get('status') === 'downloaded') { // // Show the banner if user has not restarted app for a week // const hasCrossedNoUpdateTimeout = Date.now() - this.get('downloadedTimestamp') > NO_UPDATE_BANNER_TIMEOUT, // isBannerAlreadyOpen = _.find(_controllers_Infobar__WEBPACK_IMPORTED_MODULE_11__["default"].infoList, { _id: NOT_UPDATED_BANNER_ID }); // same banner is already shown, don't show another // // if (hasCrossedNoUpdateTimeout && !isBannerAlreadyOpen) { // _controllers_Infobar__WEBPACK_IMPORTED_MODULE_11__["default"].add(NOT_UPDATED_MESG); // _controllers_Infobar__WEBPACK_IMPORTED_MODULE_11__["default"].show(); // _modules_services_AnalyticsService__WEBPACK_IMPORTED_MODULE_6__["default"].addEvent('app', 'show_update_restart_banner'); // } // // return; // } // // navigator.onLine && this.updateHandler(); //}, AUTO_UPDATE_TIMER); },
最后保存,需要删掉原先app.asar文件,重新把文件打包成app.asar或者直接修改目录名称为app也是可以的。
或者用工具重新打包
现在已经大功告成了,重新打开Postman 检查更新试试吧
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/haocm08/article/details/125821740