Bladeren bron

无缓存模式

PUGE 4 jaren geleden
bovenliggende
commit
630fb34d52
4 gewijzigde bestanden met toevoegingen van 154 en 69 verwijderingen
  1. 15 1
      config.json
  2. 57 24
      main.js
  3. 3 3
      package.json
  4. 79 41
      yarn.lock

+ 15 - 1
config.json

@@ -1 +1,15 @@
-{"enterURL": "https://bfe-epc-web-v.huolala.cn/","width": 376,"height": 667,"webPreferences": {"webSecurity": false,"nodeIntegration": true,"nativeWindowOpen": false},"autoHideMenuBar": true}
+{
+    "enterURL": "https://www.baidu.com/",
+    "width": 1200,
+    "height": 800,
+    "webPreferences": {
+        "webSecurity": false,
+        "nodeIntegration": true,
+        "nativeWindowOpen": false
+    },
+    "autoHideMenuBar": true,
+    "redirect":["https://van-static.huolala.cn/bfe-epc-web/106738/umi.js"],
+    "redirectURL":"https://cunchu.site/data/assist/%E8%B4%A7%E6%8B%89%E6%8B%89%E4%B8%8B%E5%8D%95umi.js",
+    "proxy":"",
+    "noCache": true
+}

+ 57 - 24
main.js

@@ -1,37 +1,42 @@
 // Modules to control application life and create native browser window
-const {app, BrowserWindow} = require('electron')
+const {app, BrowserWindow, session} = require('electron')
 const path = require('path')
 const fs = require('fs')
 // 读取配置文件
-// const config = JSON.parse(fs.readFileSync('./resources/config.json', 'utf-8'))
+let enterURL = 'http://cunchu.site/work/debug/index.html'
+let webConfig = {
+  width: 376,
+  height: 667,
+  webPreferences: {
+    webSecurity: false,
+    nodeIntegration: true,
+    nativeWindowOpen: false
+  },
+  autoHideMenuBar: true
+  // 无边框
+  // frame: false,
+  // 全屏
+  // fullscreen: true
+}
+// 判断是否有特殊配置文件
+console.log(__dirname + "\\config.json")
+if (fs.existsSync("./config.json")) {
+  webConfig = JSON.parse(fs.readFileSync('./config.json', 'utf-8'))
+  enterURL = webConfig.enterURL
+}
+
+const xxx_filter = {
+  urls: webConfig.redirect || []
+}
 
 function createWindow () {
   // Create the browser window.
-  let enterURL = 'http://cunchu.site/work/debug/index.html'
-  let webConfig = {
-    width: 376,
-    height: 667,
-    webPreferences: {
-      webSecurity: false,
-      nodeIntegration: true,
-      nativeWindowOpen: false
-    },
-    autoHideMenuBar: true
-    // 无边框
-    // frame: false,
-    // 全屏
-    // fullscreen: true
-  }
-  // 判断是否有特殊配置文件
-  console.log(__dirname + "\\config.json")
-  if (fs.existsSync(__dirname + "\\config.json")) {
-    webConfig = JSON.parse(fs.readFileSync(__dirname + '/config.json', 'utf-8'))
-    enterURL = webConfig.enterURL
-  }
+  
   // if (config.preload) {
   //   console.log(config.preload)
   //   webConfig.webPreferences.preload = config.preload
   // }
+  console.log(webConfig)
   const mainWindow = new BrowserWindow(webConfig)
 
   // and load the index.html of the app.
@@ -40,7 +45,16 @@ function createWindow () {
   // mainWindow.webContents.openDevTools()
   mainWindow.loadURL(enterURL)
   mainWindow.webContents.on("dom-ready", function() {
-    mainWindow.webContents.executeJavaScript(`
+  // 代理
+  if (webConfig.proxy) {
+    mainWindow.webContents.session.setProxy({
+      proxyRules: webConfig.proxy,
+      proxyBypassRules: 'localhost',
+    }, function () {
+      console.log('代理设置完毕')
+    });
+  }
+  mainWindow.webContents.executeJavaScript(`
   var owoApp = 3
   window.owoPC = true
   function loadScript(url, callback) {
@@ -62,6 +76,15 @@ function createWindow () {
     var head = document.head || document.getElementsByTagName('head')[0];
     head.appendChild(script);
   }
+  function loadJsCode(code){
+    var script = document.createElement('script');
+    script.type = 'text/javascript';
+    //for Chrome Firefox Opera Safari
+    script.appendChild(document.createTextNode(code));
+    //for IE
+    //script.text = code;
+    document.body.appendChild(script);
+  }
   function loadCSS (url) {
     var link = document.createElement("link");
     link.rel = "stylesheet";
@@ -89,6 +112,7 @@ function createWindow () {
         element.style.forEach(styleItem => {
           loadCSS(styleItem)
         });
+        if (element.data) loadJsCode(element.data)
       }
     });
   }
@@ -125,6 +149,15 @@ function createWindow () {
 // initialization and is ready to create browser windows.
 // Some APIs can only be used after this event occurs.
 app.whenReady().then(() => {
+  session.defaultSession.webRequest.onBeforeRequest(xxx_filter, (details, callback) => {
+    callback({ redirectURL: webConfig.redirectURL});
+  })
+  // 判断是否无缓存
+  if (webConfig.noCache) {
+    console.log('无缓存模式!')
+    if (!webConfig.webPreferences) webConfig.webPreferences = {}
+    webConfig.webPreferences.partition = 'persist:Session' + Math.round(Math.random()*100000)
+  }
   createWindow()
   
   app.on('activate', function () {

+ 3 - 3
package.json

@@ -1,6 +1,6 @@
 {
   "name": "owo_app",
-  "version": "1.0.0",
+  "version": "1.0.5",
   "description": "A minimal Electron application",
   "main": "main.js",
   "scripts": {
@@ -33,7 +33,7 @@
   "author": "GitHub",
   "license": "CC0-1.0",
   "devDependencies": {
-    "electron": "16.0.3",
-    "electron-builder": "22.14.5"
+    "electron": "17.0.1",
+    "electron-builder": "22.14.13"
   }
 }

+ 79 - 41
yarn.lock

@@ -71,6 +71,11 @@
   dependencies:
     defer-to-connect "^1.0.1"
 
+"@tootallnate/once@2":
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf"
+  integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==
+
 "@types/debug@^4.1.6":
   version "4.1.7"
   resolved "https://registry.nlark.com/@types/debug/download/@types/debug-4.1.7.tgz?cache=0&sync_timestamp=1629707621172&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fdebug%2Fdownload%2F%40types%2Fdebug-4.1.7.tgz#7cc0ea761509124709b8b2d1090d8f6c17aadb82"
@@ -138,6 +143,13 @@
   dependencies:
     "@types/yargs-parser" "*"
 
+agent-base@6:
+  version "6.0.2"
+  resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
+  integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==
+  dependencies:
+    debug "4"
+
 ajv-keywords@^3.4.1:
   version "3.5.2"
   resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
@@ -194,10 +206,10 @@ app-builder-bin@3.7.1:
   resolved "https://registry.nlark.com/app-builder-bin/download/app-builder-bin-3.7.1.tgz#cb0825c5e12efc85b196ac3ed9c89f076c61040e"
   integrity sha1-ywglxeEu/IWxlqw+2cifB2xhBA4=
 
-app-builder-lib@22.14.5:
-  version "22.14.5"
-  resolved "https://registry.npmmirror.com/app-builder-lib/download/app-builder-lib-22.14.5.tgz#a61a50b132b858e98fdc70b6b88994ae99b4f96d"
-  integrity sha1-phpQsTK4WOmP3HC2uImUrpm0+W0=
+app-builder-lib@22.14.13:
+  version "22.14.13"
+  resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.14.13.tgz#c1f5b6afc86596357598bb90b69eef06c7c2eeb3"
+  integrity sha512-SufmrtxU+D0Tn948fjEwAOlCN9757UXLkzzTWXMwZKR/5hisvgqeeBepWfphMIE6OkDGz0fbzEhL1P2Pty4XMg==
   dependencies:
     "7zip-bin" "~5.1.1"
     "@develar/schema-utils" "~2.6.5"
@@ -205,13 +217,13 @@ app-builder-lib@22.14.5:
     "@malept/flatpak-bundler" "^0.4.0"
     async-exit-hook "^2.0.1"
     bluebird-lst "^1.0.9"
-    builder-util "22.14.5"
-    builder-util-runtime "8.9.1"
+    builder-util "22.14.13"
+    builder-util-runtime "8.9.2"
     chromium-pickle-js "^0.2.0"
     debug "^4.3.2"
     ejs "^3.1.6"
     electron-osx-sign "^0.5.0"
-    electron-publish "22.14.5"
+    electron-publish "22.14.13"
     form-data "^4.0.0"
     fs-extra "^10.0.0"
     hosted-git-info "^4.0.2"
@@ -357,29 +369,31 @@ buffer@^5.1.0:
     base64-js "^1.3.1"
     ieee754 "^1.1.13"
 
-builder-util-runtime@8.9.1:
-  version "8.9.1"
-  resolved "https://registry.npmmirror.com/builder-util-runtime/download/builder-util-runtime-8.9.1.tgz#25f066b3fbc20b3e6236a9b956b1ebb0e33ff66a"
-  integrity sha1-JfBms/vCCz5iNqm5VrHrsOM/9mo=
+builder-util-runtime@8.9.2:
+  version "8.9.2"
+  resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.9.2.tgz#a9669ae5b5dcabfe411ded26678e7ae997246c28"
+  integrity sha512-rhuKm5vh7E0aAmT6i8aoSfEjxzdYEFX7zDApK+eNgOhjofnWb74d9SRJv0H/8nsgOkos0TZ4zxW0P8J4N7xQ2A==
   dependencies:
     debug "^4.3.2"
     sax "^1.2.4"
 
-builder-util@22.14.5:
-  version "22.14.5"
-  resolved "https://registry.npmmirror.com/builder-util/download/builder-util-22.14.5.tgz#42a18608d2a566c0846e91266464776c8bfb0cc9"
-  integrity sha1-QqGGCNKlZsCEbpEmZGR3bIv7DMk=
+builder-util@22.14.13:
+  version "22.14.13"
+  resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.14.13.tgz#41b5b7b4ee53aff4e09cc007fb144522598f3ce6"
+  integrity sha512-oePC/qrrUuerhmH5iaCJzPRAKlSBylrhzuAJmRQClTyWnZUv6jbaHh+VoHMbEiE661wrj2S2aV7/bQh12cj1OA==
   dependencies:
     "7zip-bin" "~5.1.1"
     "@types/debug" "^4.1.6"
     "@types/fs-extra" "^9.0.11"
     app-builder-bin "3.7.1"
     bluebird-lst "^1.0.9"
-    builder-util-runtime "8.9.1"
+    builder-util-runtime "8.9.2"
     chalk "^4.1.1"
     cross-spawn "^7.0.3"
     debug "^4.3.2"
     fs-extra "^10.0.0"
+    http-proxy-agent "^5.0.0"
+    https-proxy-agent "^5.0.0"
     is-ci "^3.0.0"
     js-yaml "^4.1.0"
     source-map-support "^0.5.19"
@@ -579,6 +593,13 @@ crypto-random-string@^2.0.0:
   resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5"
   integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==
 
+debug@4:
+  version "4.3.3"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664"
+  integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==
+  dependencies:
+    ms "2.1.2"
+
 debug@^2.6.8, debug@^2.6.9:
   version "2.6.9"
   resolved "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
@@ -644,14 +665,14 @@ dir-compare@^2.4.0:
     commander "2.9.0"
     minimatch "3.0.4"
 
-dmg-builder@22.14.5:
-  version "22.14.5"
-  resolved "https://registry.npmmirror.com/dmg-builder/download/dmg-builder-22.14.5.tgz#137c0b55e639badcc0b119eb060e6fa4ed61d948"
-  integrity sha1-E3wLVeY5utzAsRnrBg5vpO1h2Ug=
+dmg-builder@22.14.13:
+  version "22.14.13"
+  resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.14.13.tgz#cc613f3c18e889b8777d525991fd52f50a564f8c"
+  integrity sha512-xNOugB6AbIRETeU2uID15sUfjdZZcKdxK8xkFnwIggsM00PJ12JxpLNPTjcRoUnfwj3WrPjilrO64vRMwNItQg==
   dependencies:
-    app-builder-lib "22.14.5"
-    builder-util "22.14.5"
-    builder-util-runtime "8.9.1"
+    app-builder-lib "22.14.13"
+    builder-util "22.14.13"
+    builder-util-runtime "8.9.2"
     fs-extra "^10.0.0"
     iconv-lite "^0.6.2"
     js-yaml "^4.1.0"
@@ -702,17 +723,17 @@ ejs@^3.1.6:
   dependencies:
     jake "^10.6.1"
 
-electron-builder@22.14.5:
-  version "22.14.5"
-  resolved "https://registry.npmmirror.com/electron-builder/download/electron-builder-22.14.5.tgz#3a25547bd4fe3728d4704da80956a794c5c31496"
-  integrity sha1-OiVUe9T+NyjUcE2oCVanlMXDFJY=
+electron-builder@22.14.13:
+  version "22.14.13"
+  resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.14.13.tgz#fd40564685cf5422a8f8d667940af3d3776f4fb8"
+  integrity sha512-3fgLxqF2TXVKiUPeg74O4V3l0l3j7ERLazo8sUbRkApw0+4iVAf2BJkHsHMaXiigsgCoEzK/F4/rB5rne/VAnw==
   dependencies:
     "@types/yargs" "^17.0.1"
-    app-builder-lib "22.14.5"
-    builder-util "22.14.5"
-    builder-util-runtime "8.9.1"
+    app-builder-lib "22.14.13"
+    builder-util "22.14.13"
+    builder-util-runtime "8.9.2"
     chalk "^4.1.1"
-    dmg-builder "22.14.5"
+    dmg-builder "22.14.13"
     fs-extra "^10.0.0"
     is-ci "^3.0.0"
     lazy-val "^1.0.5"
@@ -732,23 +753,23 @@ electron-osx-sign@^0.5.0:
     minimist "^1.2.0"
     plist "^3.0.1"
 
-electron-publish@22.14.5:
-  version "22.14.5"
-  resolved "https://registry.npmmirror.com/electron-publish/download/electron-publish-22.14.5.tgz?cache=0&sync_timestamp=1636687894352&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Felectron-publish%2Fdownload%2Felectron-publish-22.14.5.tgz#34bcdce671f0e651330db20040d6919c77c94bd6"
-  integrity sha1-NLzc5nHw5lEzDbIAQNaRnHfJS9Y=
+electron-publish@22.14.13:
+  version "22.14.13"
+  resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.14.13.tgz#8b71e6975af8cc6ac5b21f293ade23f8704047c7"
+  integrity sha512-0oP3QiNj3e8ewOaEpEJV/o6Zrmy2VarVvZ/bH7kyO/S/aJf9x8vQsKVWpsdmSiZ5DJEHgarFIXrnO0ZQf0P9iQ==
   dependencies:
     "@types/fs-extra" "^9.0.11"
-    builder-util "22.14.5"
-    builder-util-runtime "8.9.1"
+    builder-util "22.14.13"
+    builder-util-runtime "8.9.2"
     chalk "^4.1.1"
     fs-extra "^10.0.0"
     lazy-val "^1.0.5"
     mime "^2.5.2"
 
-electron@16.0.3:
-  version "16.0.3"
-  resolved "https://registry.npmmirror.com/electron/download/electron-16.0.3.tgz#458208572ca5226a833bcf4f7738d59447fc7606"
-  integrity sha512-MzCYuEqrvyEtPSUWQwr88xWBrsbhmyOKp4wqP9WfAJTEDeUfBcrQYswHuYe17Gi00gRirQb9htoC/anYfaw20w==
+electron@17.0.1:
+  version "17.0.1"
+  resolved "https://registry.yarnpkg.com/electron/-/electron-17.0.1.tgz#e6c7ad2be26e7be8a5a9bac16b21920ad2671224"
+  integrity sha512-CBReR/QEOpgwMdt59lWCtj9wC8oHB6aAjMF1lhXcGew132xtp+C5N6EaXb/fmDceVYLouziYjbNcpeXsWrqdpA==
   dependencies:
     "@electron/get" "^1.13.0"
     "@types/node" "^14.6.2"
@@ -1008,6 +1029,23 @@ http-cache-semantics@^4.0.0:
   resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390"
   integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==
 
+http-proxy-agent@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43"
+  integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==
+  dependencies:
+    "@tootallnate/once" "2"
+    agent-base "6"
+    debug "4"
+
+https-proxy-agent@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2"
+  integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==
+  dependencies:
+    agent-base "6"
+    debug "4"
+
 iconv-corefoundation@^1.1.6:
   version "1.1.6"
   resolved "https://registry.yarnpkg.com/iconv-corefoundation/-/iconv-corefoundation-1.1.6.tgz#27c135470237f6f8d13462fa1f5eaf250523c29a"