MoreBetter
MoreBetter
  • 发布:2025-10-17 11:51
  • 更新:2025-10-17 14:56
  • 阅读:65

【报Bug】web-view组件使用通信时, uni.postMessage不能给小程序主体发送消息

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: Windows11 家庭版26100.6584

HBuilderX类型: 正式

HBuilderX版本号: 4.76

第三方开发者工具版本号: 1.06.2504040

基础库版本号: 3.10.0

项目创建方式: HBuilderX

操作步骤:

没有

预期结果:

没有

实际结果:

无法监听

bug描述:

小程序端页面代码如下:

    <view>  
        <web-view src="http://localhost:5173" @message="handleMessage"></web-view>  
    </view>  
</template>  

<script>  
    export default {  
        name: 'Ai-Chat',  
        data() {  
            return {  

            }  
        },  
        methods: {  
            handleLoad() {  
                console.log('webview加载完毕')  
            },  
            handleMessage(event) {  
                    console.log('事件', event.detail.data) //从webview页面返回小程序主体,此处无法被触发。  
            }  
        }  
    }  
</script>  

<style lang="scss" scoped></style>

web-view中的src指向页面的代码引入了, 其中1.js就是uni.webview.1.5.6.js(我把它复制保存在本地了)

//官方的   <!-- 需要把 uni.webview.1.5.6.js 下载到自己的服务器 -->  
    <script type="text/javascript" src="https://gitcode.com/dcloud/uni-app/tree/dev/dist/uni.webview.1.5.6.js"></script>
//我的  <script type="text/javascript" src="/1.js"></script>

我在web-view指向的页面中写了一个测试按钮, 执行如下函数, uni已经能获取得到了. (这里没有按照官方的监听UniAppJSBridgeReady)

function handleTest() {  
    console.log('点击了测试按钮uniapp', uni)  
    uni.postMessage({  
        data: {  
            action: 'message'  
        }  
    });  
}

然后我在社区搜了一下, 有同样的问题,链接: https://ask.dcloud.net.cn/article/40745

2025-10-17 11:51 负责人:无 分享
已邀请:
MoreBetter

MoreBetter (作者)

社区发帖的https://ask.dcloud.net.cn/article/40745 说的好像是冲突问题, 具体的我没核实

爱豆豆

爱豆豆 - 办法总比困难多

看下是不是这个原因呢?

  • MoreBetter (作者)

    不是的, 用uniapp官方的就不行, wx的就可以

    2025-10-17 13:40

DCloud_UNI_yuhe

DCloud_UNI_yuhe

提供一下一个完整的可以运行的项目

  • MoreBetter (作者)

    已经解决, 谢谢大家

    2025-10-17 14:59

MoreBetter

MoreBetter (作者)

已经解决, 谢谢大家

要回复问题请先登录注册