网页端调用百度jsskd传值并返回,小程序无法接收到传值
- 发布:2026-04-07 16:29
- 更新:9 分钟前
- 阅读:20
产品分类: uniapp/小程序/百度
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 21H2
HBuilderX类型: 正式
HBuilderX版本号: 5.06
第三方开发者工具版本号: 4.36.1
基础库版本号: 4.220.1
项目创建方式: HBuilderX
操作步骤:
预期结果:
小程序返回后接收到传值
小程序返回后接收到传值
实际结果:
小程序报错
小程序报错
bug描述:
确定不是代码语法问题,用官方的hello uni-app里面的web-view示例也会报错
引入的是百度官方的jssdk
<script type="text/javascript" src="https://b.bdstatic.com/searchbox/icms/searchbox/js/swan-2.0.31.js"></script>
调用代码时机如图
你们官方自己的hello uni-app demo项目就百分百能复现
微信小程序和抖音小程序都能正常运行,官方demo在vue2版本下也能正常运行
官方hello uni-app百度小程序demo已上传
Ask小助手 - Ask社区AI助手
作为DCloud官方人员,我对该bug反馈进行如下评审:
反馈内容完整性评估
该反馈存在以下信息缺失,导致无法有效定位和复现问题:
1. 关键信息缺失
- 缺少错误日志/截图:仅描述"小程序报错"过于笼统,无法判断是JavaScript运行时错误、通信协议错误还是框架内部错误
- 缺少代码示例:虽然提及使用"hello uni-app"示例,但未提供具体的网页端JSSDK调用代码和小程序端接收代码
- 缺少版本信息:未提供百度小程序基础库版本、Vue版本(3.0/3.2/3.4等)
- 缺少项目配置:未说明是否使用了分包、是否配置了worker等可能影响web-view通信的选项
2. 复现步骤描述不清晰
- "调用百度jssdk传值并返回"过于笼统,未说明是调用
swan.webView.postMessage还是其他API - 未描述小程序端是通过
@message事件还是@onPostMessage接收消息(百度小程序不同版本事件名有差异)
3. 预期结果不够具体
- 未明确说明期望通过
uni.webView.postMessage还是百度原生的swan.webView.postMessage进行通信
Bug成立性分析
根据知识库检索:
-
web-view通信机制差异:web-view文档显示,百度小程序支持网络网页加载,但小程序仅支持加载网络网页,不支持本地html。对于Vue3项目,知识库中提及过
百度小程序平台 修复 vue3 项目 对象类型数据差量更新时报错的Bug(3.3.9版本),但未找到web-view通信相关的已知bug记录。 -
Vue3编译差异:知识库显示历史版本中存在多个Vue3项目在小程序平台的修复记录,但针对百度小程序web-view的message通信暂无明确修复记录。
结论:无法从知识库中确认这是已知的框架级bug,需要进一步验证是uni-app Vue3编译问题还是百度小程序JSSDK使用方式问题。
建议补充的信息
为了进行有效的问题定位,请补充以下内容:
- 具体的错误信息:控制台完整的报错堆栈截图或文本
- 最小复现代码:
- 网页端调用代码(是否引入了
swan-webview.js,调用的是哪个API) - 小程序端web-view组件的使用代码(事件绑定方式)
- 网页端调用代码(是否引入了
- 环境版本:
- 百度开发者工具版本
- 百度小程序基础库版本
- 具体的Vue3版本号(package.json中vue的版本)
- 对比测试结果:
- 同样的代码在Vue2模式下是否正常工作?
- 同样的代码在微信小程序平台是否正常工作?
初步建议:请先确认是否按照web-view文档中说明的方式,在网页中引入了百度小程序提供的JSSDK,并使用了正确的消息发送/接收机制。Vue3项目在处理web-view的message事件时,可能需要特别注意事件名的绑定方式(部分平台需要使用@message而非@onMessage)。
如果确认是框架编译问题,建议提供可复现的demo项目压缩包。