diff --git a/app/src/main/assets/extensions/bridge/bridge.js b/app/src/main/assets/extensions/bridge/bridge.js index bb9c36b..84f2d2f 100644 --- a/app/src/main/assets/extensions/bridge/bridge.js +++ b/app/src/main/assets/extensions/bridge/bridge.js @@ -1,5 +1,4 @@ (function() { - // 在页面上下文中注入桥接脚本,避免 cross-compartment 访问被拒 var code = [ '(function() {', ' var _realAndroid = window.android;', diff --git a/app/src/main/assets/extensions/bridge/manifest.json b/app/src/main/assets/extensions/bridge/manifest.json index 26bf027..e0c75f6 100644 --- a/app/src/main/assets/extensions/bridge/manifest.json +++ b/app/src/main/assets/extensions/bridge/manifest.json @@ -1,10 +1,16 @@ { "manifest_version": 2, + "browser_specific_settings": { + "gecko": { + "id": "standapp-bridge@standapp.local" + } + }, "name": "standapp-bridge", "version": "1.0", + "type": "extension", "description": "JS-Native bridge for StandAPP", "content_scripts": [{ - "matches": ["*://*/*"], + "matches": [""], "js": ["bridge.js"], "run_at": "document_start", "all_frames": true diff --git a/app/src/main/assets/print_demo.html b/app/src/main/assets/print_demo.html index 249d073..e6a7e72 100644 --- a/app/src/main/assets/print_demo.html +++ b/app/src/main/assets/print_demo.html @@ -263,6 +263,15 @@ updatePrinterStatus(); // 每 3 秒同步一次打印机状态 setInterval(updatePrinterStatus, 3000); + // 确认接口可用后再加载历史 + loadHistory(); + // 通知 Android 页面加载完成 + if (window.android.onPageFinished) { + window.android.onPageFinished(); + } + } else { + // bridge 尚未注入,200ms 后重试 + setTimeout(checkApp, 200); } } @@ -568,12 +577,8 @@ } }, 500); - // 告知 Android 页面加载完成 - window.onload = function() { - if (window.android && window.android.onPageFinished) { - window.android.onPageFinished(); - } - }; + // 告知 Android 页面加载完成(已移至 checkApp 中,等 bridge 注入后再调用) + window.onload = function() {}; // === WebSocket 逻辑 === var ws = null; @@ -724,11 +729,10 @@ addLog("系统: 终端暂无保存的记录", false); } } else { - alert("未检测到安卓接口,无法同步"); + // 不再弹窗,checkApp 会在 bridge 就绪后调用 loadHistory } } - setTimeout(loadHistory, 500); // === PTT 业务测试逻辑 === var pttBtn = document.getElementById('ptt-speak-btn');