| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- (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);
|