(function (window) { 'use strict'; console.log('%c [MockFlutter] 已加载,当前处于开发调试模式 ', 'background: #42b983; color: white; font-size: 14px; padding: 4px;'); // 1. 模拟 uni.postMessage if (!window.uni) { window.uni = {}; } window.uni.postMessage = function (message) { const payload = message.data || {}; const action = payload.action; const data = payload.data; console.group('%c [MockFlutter] 收到 App 指令 ', 'color: #1aad19; font-weight: bold;'); console.log('Action:', action); console.log('Data:', data); console.groupEnd(); // 模拟具体行为反馈 switch (action) { case 'openMap': alert(`[模拟App] 正在打开地图\n纬度: ${data.latitude}\n经度: ${data.longitude}\n名称: ${data.name}`); break; case 'openMatch': alert(`[模拟App] 正在打开赛事详情\nID: ${data.id}\n类型: ${data.type}`); break; case 'openActivityList': alert(`[模拟App] 正在打开活动列表\nID: ${data.id}\n名称: ${data.mapName}`); break; case 'back': console.log('[模拟App] 执行返回操作'); // alert('[模拟App] 执行返回操作'); // 弹窗太多会烦,这里只打印 break; case 'toHome': alert('[模拟App] 执行返回 App 首页'); break; case 'toLogin': alert('[模拟App] 执行跳转登录页'); break; case 'setTitle': alert(`[模拟App] 设置标题为: ${data.title}`); break; case 'shareWx': alert(`[模拟App] 正在调起微信分享\n标题: ${data.title}\n链接: ${data.url}`); break; case 'launchWxMini': alert(`[模拟App] 正在打开微信小程序\n原始ID: ${data.username}\n路径: ${data.path}`); break; case 'saveImage': alert(`[模拟App] 正在保存图片 (Base64长度: ${data.base64 ? data.base64.length : '0'})`); break; case 'getToken': console.log('[模拟App] 收到获取Token请求,1秒后模拟回调...'); setTimeout(function() { if (window.Bridge && window.Bridge.receiveToken) { window.Bridge.receiveToken('MOCK_TOKEN_FOR_BRIDGE_12345'); console.log('[模拟App] 已通过 Bridge.receiveToken 回调 Token'); } else { console.warn('[模拟App] 无法回调 Token,Bridge.receiveToken 未定义'); } }, 1000); break; default: console.log(`[模拟App] 收到未知指令: ${action}, 数据: `, data); // alert(`[模拟App] 收到未知指令: ${action}`); } }; // 2. 模拟旧版注入对象 (防止报错,并使用可读中文) if (!window.share_wx) { window.share_wx = { postMessage: function(jsonStr) { console.log('[MockFlutter] share_wx.postMessage 收到:', jsonStr); alert('[模拟App/旧通道] 微信分享:\n' + jsonStr); } }; } if (!window.wx_launch_mini) { window.wx_launch_mini = { postMessage: function(jsonStr) { console.log('[MockFlutter] wx_launch_mini.postMessage 收到:', jsonStr); alert('[模拟App/旧通道] 打开小程序:\n' + jsonStr); } }; } if (!window.save_base64) { window.save_base64 = { postMessage: function(base64Str) { console.log('[MockFlutter] save_base64.postMessage 收到 (Base64长度):', base64Str ? base64Str.length : '0'); alert(`[模拟App/旧通道] 保存图片 (Base64长度: ${base64Str ? base64Str.length : '0'})`); } }; } // 3. 模拟 UserAgent (可选) // 某些逻辑可能会检查 navigator.userAgent,这里可以根据需要注入,但目前 SDK 不依赖这个判断 })(window);