diff --git a/game/entry.js b/game/entry.js index c4cae30cc..0ec019a12 100644 --- a/game/entry.js +++ b/game/entry.js @@ -22,6 +22,23 @@ if (core === "chrome" && !isNaN(version) && version < 77) { boot().then(() => { // 判断是否从file协议切换到http/s协议 if (canUseHttpProtocol()) { + // 保存协议的切换状态 + const saveProtocol = () => { + const url = sendUpdate(); + if (typeof url == "string") { + if ( + typeof window.require == "function" && + typeof window.process == "object" + ) { + // @ts-ignore + const remote = require("@electron/remote"); + const thisWindow = remote.getCurrentWindow(); + thisWindow.loadURL(url); + } else { + location.href = url; + } + } + }; /* 升级方法: 1. 游戏启动后导出数据,然后以http/s协议重启 @@ -61,23 +78,6 @@ boot().then(() => { }); }); } - // 保存协议的切换状态 - function saveProtocol() { - const url = sendUpdate(); - if (typeof url == "string") { - if ( - typeof window.require == "function" && - typeof window.process == "object" - ) { - // @ts-ignore - const remote = require("@electron/remote"); - const thisWindow = remote.getCurrentWindow(); - thisWindow.loadURL(url); - } else { - location.href = url; - } - } - } } else { // 成功导入后删除noname.config.txt let searchParams = new URLSearchParams(location.search); diff --git a/noname/init/index.js b/noname/init/index.js index 0ce2386db..ae4f58fc8 100644 --- a/noname/init/index.js +++ b/noname/init/index.js @@ -21,11 +21,18 @@ export function canUseHttpProtocol() { // 手机端 if (window.cordova) { // 直接确定包名 - if (nonameInitialized.endsWith("com.noname.shijian/")) { + // 因为懒人包作者不一定会改成什么版本 + // @ts-ignore + if (nonameInitialized.endsWith("com.noname.shijian/") && window.noname_shijianInterfaces && typeof window.noname_shijianInterfaces.sendUpdate === 'function') { // 每个app自定义能升级的渠道,比如判断版本 // @ts-ignore return window.noname_shijianInterfaces.getApkVersion() >= 16000; } + // 由理版判断,后续所有app都通过此接口来升级协议 + // @ts-ignore + if (window.NonameAndroidBridge && typeof window.NonameAndroidBridge.sendUpdate === 'function') { + return true; + } } // 电脑端 else if (typeof window.require == "function" && typeof window.process == "object") { @@ -55,11 +62,19 @@ export function sendUpdate() { // 手机端 if (window.cordova) { // 直接确定包名 - if (nonameInitialized && nonameInitialized.includes("com.noname.shijian")) { + // @ts-ignore + if (nonameInitialized && nonameInitialized.includes("com.noname.shijian") && window.noname_shijianInterfaces && typeof window.noname_shijianInterfaces.sendUpdate === 'function') { // 给诗笺版apk的java层传递升级完成的信息 // @ts-ignore return window.noname_shijianInterfaces.sendUpdate() + "?sendUpdate=true"; } + // 由理版判断 + // @ts-ignore + if (window.NonameAndroidBridge && typeof window.NonameAndroidBridge.sendUpdate === 'function') { + // 给由理版apk的java层传递升级完成的信息 + // @ts-ignore + return window.NonameAndroidBridge.sendUpdate() + "?sendUpdate=true"; + } } // 电脑端 else if (typeof window.require == "function" && typeof window.process == "object") {