uniapp 嵌入外部h5 报错/收不到消息h5 不是uniapp 框架h5 是uniapp 框架使用的版本h5 不是uniapp 框架报错会报window.__f__is not function…在引入uni.webview.1.5.8.js 最前面加入window.f function() {};h5 是uniapp 框架报错会报window.__f__is not function…此时加入 window.f function() {}; 还是不能收到消息需要在引入uni.webview.1.5.8.js 后打补丁script typetext/javascriptwindow.__f__function(){};/scriptscript typetext/javascriptsrc/js/uni.webview.1.5.8.js/scriptscript// 等待 uni.webview.js 加载完成document.addEventListener(DOMContentLoaded,function(){setTimeout(function(){console.log(检查 uni.postMessage 是否可用...);// 如果 uni.postMessage 不存在手动创建if(window.uni!window.uni.postMessage){console.log(uni.postMessage 不存在手动创建);// 创建 uni.postMessage 方法window.uni.postMessagefunction(message){console.log(uni.postMessage 被调用:,message);// 方式1使用 __dcloud_weex_postMessageweex 环境if(window.__dcloud_weex_postMessage){console.log(使用 __dcloud_weex_postMessage);window.__dcloud_weex_postMessage({data:message.data||[]});return;}// 方式2使用 __uniapp_x_postMessageuni-app x 环境if(window.__uniapp_x_postMessage){console.log(使用 __uniapp_x_postMessage);window.__uniapp_x_postMessage({options:{timestamp:newDate},name:postMessage,arg:message.data||{}});return;}// 方式3使用 plus.webview.postMessageToUniNViewplus 环境if(window.pluswindow.plus.webview){console.log(使用 plus.webview.postMessageToUniNView);try{varwebviewIds[];varcurrentWebviewplus.webview.currentWebview();if(currentWebview){varparentWebviewcurrentWebview.parent();if(parentWebview){webviewIds.push(parentWebview.id);}// 发送消息到 uni-app 服务层plus.webview.postMessageToUniNView({type:WEB_INVOKE_APPSERVICE,args:{data:{options:{timestamp:newDate},name:postMessage,arg:message.data||{}},webviewIds:webviewIds}},__uniapp__service);console.log(✓ 消息已发送到 uni-app 服务层);}}catch(e){console.error(plus.webview.postMessageToUniNView 失败:,e);}return;}console.warn(没有可用的 postMessage 方式);};console.log(✓ uni.postMessage 方法已创建);}else{console.log(uni.postMessage 已存在:,typeofwindow.uni?.postMessage);}},100);});/script