修复游戏桥接bug

This commit is contained in:
zhx 2026-06-10 10:57:22 +08:00
parent 0b3589a701
commit e2d8d03260

View File

@ -53,6 +53,15 @@ const defaultBridgeScriptForm = {
bridgeScriptVersion: "",
};
const writableBridgeAdapterTypes = new Set([
"yomi_v4",
"leadercc_v1",
"zeeone_v1",
"baishun_v1",
"vivagames_v1",
"reyou_v1",
]);
const emptyCatalog = { items: [], pageSize: 50 };
const emptyPlatforms = { items: [] };
const defaultPageSize = 50;
@ -287,10 +296,16 @@ export function useGamesPage() {
showToast("请填写 bridge_script_url 和 bridge_script_version", "error");
return;
}
const writablePlatforms = platforms.filter(isWritableBridgePlatform);
const skippedPlatforms = platforms.filter((platform) => !isWritableBridgePlatform(platform));
if (writablePlatforms.length === 0) {
showToast("没有可写入的有效游戏平台", "error");
return;
}
setLoadingAction("bridge-script");
try {
await Promise.all(
platforms.map((platform) => {
writablePlatforms.map((platform) => {
const config = parseJsonObject(platform.adapterConfigJson);
config.bridge_script_url = bridgeScriptUrl;
config.bridge_script_version = bridgeScriptVersion;
@ -309,7 +324,14 @@ export function useGamesPage() {
);
await reloadPlatforms();
await reloadCatalog();
showToast(`JS 桥接配置已同步 ${platforms.length} 个平台`, "success");
const skippedMessage =
skippedPlatforms.length > 0
? `,跳过 ${skippedPlatforms.length} 个无效适配器平台:${skippedPlatforms
.map((platform) => platform.platformCode || platform.platformName || platform.adapterType)
.slice(0, 3)
.join(", ")}`
: "";
showToast(`JS 桥接配置已同步 ${writablePlatforms.length} 个平台${skippedMessage}`, "success");
closeAction();
} catch (err) {
showToast(err.message || "保存 JS 桥接配置失败", "error");
@ -532,6 +554,14 @@ function readConfigString(value) {
return String(value).trim();
}
function isWritableBridgePlatform(platform) {
return writableBridgeAdapterTypes.has(
String(platform?.adapterType || "")
.trim()
.toLowerCase(),
);
}
function platformUpsertPayload(platform, adapterConfigJson) {
return {
platformCode: platform.platformCode,