автообновление электронов добавляет строку запроса к seedURL - PullRequest
0 голосов
/ 04 марта 2020
  • Версия электрона: электрон: 8.0.1 электронный строитель: 22.3.2
  • Операционная система: Windows10

когда я регистрирую autoUpdater.getFeedURL(), он показывает правильный URL. Однако, когда я вижу журнал на сервере обновлений, размещенный с помощью nut, autoUpdater запрашивает с добавленными строками запроса

Пример: autoUpdater.getFeedURL ()> https://my-nuts-server-url.com/update/win32/0.0.2 фактический URL-адрес запроса, отправленный autoUpdater> https://my-nuts-server-url.com/update/win32/0.0.2/releases?id=tocol&localversion=0.0.2&arch=amd64

Я хочу, чтобы autoUpdater проверял наличие обновлений только с URL-адресом ленты без строк запроса. Спасибо

const electron = require("electron")
const { app, autoUpdater, dialog } = electron
const isDev = require('electron-is-dev')
const robot = require("robotjs")
const BrowserWindow = electron.BrowserWindow

var vkey = require("vkey")

const ipcMain = electron.ipcMain
let mainWindow

function createWindow() {
  const startUrl = "http://my-start-url"

  mainWindow = new BrowserWindow({ webPreferences: { nodeIntegration: true, plugins: true }, width: 1300, height: 740 })
  mainWindow.webContents.session.clearStorageData()
  mainWindow.loadURL(startUrl)
  mainWindow.on("closed", () => (mainWindow = null))

  //Update server
  if (!isDev) {
    initialize()
  }
}

//..... ipc code ....

const initialize = () => {
  const log = require('electron-log') // for debugging
  const server = 'https://my-update-server.com'
  const feed = `${server}/update/${process.platform}/${app.getVersion()}`

  autoUpdater.on('checking-for-update', (event) => {
          log.info("SEED: " + autoUpdater.getFeedURL())
  })

  autoUpdater.on('update-downloaded', (event, releaseNotes, releaseName) => {
      const dialogOpts = {
          type: 'info',
          buttons: ['restart', 'later'],
          title: 'Application Update',
          message: process.platform === 'win32' ? releaseNotes : releaseName,
          detail: '새로운 버전이 다운로드 되었습니다. 업데이트를 적용하기 위해 앱을 재시작하세요.'
      }

      dialog.showMessageBox(dialogOpts).then((returnValue) => {
          if (returnValue.response === 0) autoUpdater.quitAndInstall()
      })
  })

  autoUpdater.on('error', message => {
      console.error('error!.')
      console.error(message)
  })

  autoUpdater.setFeedURL(feed)
  autoUpdater.checkForUpdates()
}

. json:

    "main": "public/electron.js",
    "scripts": {
        "start": "webpack-dev-server --mode development",
        "build": "react-scripts build",
        "electron-dev": "set ELECTRON_START_URL=http://localhost:3000 && electron .",
        "electron-pack": "electron-builder -c.extraMetadata.main=build/electron.js --mac",
        "rebuild": "npm rebuild --runtime=electron --target=8.0.1 --disturl=https://atom.io/download/atom-shell",
        "build:win32": "electron-builder -c.extraMetadata.main=build/electron.js --win --ia32",
    },
    "build": {
        "productName": "TOCOL",
        "mac": {
            "icon": "./build/tocol_logo.ico"
        },
        "win": {
            "target": "squirrel",
            "icon": "./build/tocol_logo.ico"
        },
        "squirrelWindows": {
           "iconUrl": "https://raw.githubusercontent.com/matiastucci/electron-auto-updater-example/master/icons/icon.ico"
        },
        "appId": "com.app.tocol"
    },
    "eslintConfig": {
        "extends": "react-app"
    },
    "browserslist": {
        "production": [
            ">0.2%",
            "not dead",
            "not op_mini all"
        ],
        "development": [
            "last 1 chrome version",
            "last 1 firefox version",
            "last 1 safari version"
        ]
    },
    "devDependencies": {
        "@babel/cli": "7.4.4",
        "@babel/core": "7.4.5",
        "@babel/plugin-proposal-class-properties": "7.4.4",
        "@babel/polyfill": "^7.6.0",
        "@babel/preset-env": "7.4.5",
        "@babel/preset-react": "7.0.0",
        "babel-loader": "8.0.5",
        "css-loader": "2.1.1",
        "electron": "8.0.1",
        "electron-builder": "22.3.2",
        "electron-builder-squirrel-windows": "^22.3.6",
        "electron-installer-squirrel-windows": "^1.3.0",
        "file-loader": "^4.0.0",
        "html-loader": "0.5.5",
        "html-webpack-plugin": "3.2.0",
        "node-gyp": "6.0.1",
        "node-loader": "0.6.0",
        "react-hot-loader": "4.5.3",
        "redux-devtools-extension": "2.13.8",
        "style-loader": "0.23.1",
        "typescript": "3.5.2",
        "webpack": "4.33.0",
        "webpack-cli": "3.3.3",
        "webpack-dev-server": "3.7.0"
    }
...