uni-app uni-app-runtime(V4.76.2025082101) 新版本在鸿蒙上面发送事件时参数为空就会出现异常导致事件无法发送报 Unexpected Text in JSON

uni-app uni-app-runtime(V4.76.2025082101) 新版本在鸿蒙上面发送事件时参数为空就会出现异常导致事件无法发送报 Unexpected Text in JSON

示例代码:

uni.sendNativeEvent('fcUniClose');

操作步骤:

{
  "dependencies": {
    "@dcloudio/uni-app-runtime": "4.76.2025082101"
  }
}

预期结果:

事件发送支持data为undefined

实际结果:

目前不支持

bug描述:

【报Bug】使用uni-app-runtime(V4.76.2025082101) 新版本在鸿蒙上面 使用 uni.sendNativeEvent(‘fcUniClose’); 发送事件时,参数为空就会出现异常导致事件无法发送。报错误 Unexpected Text in JSON

使用"@dcloudio/uni-app-runtime": “2.3.17”,这个版本就是正常的。
E [default] [CallForNapi:3533] occur exception need return
E [(native_api.cpp:1234)(napi_call_function)] pending exception when js function called, print exception info:
E SyntaxError: Unexpected Text in JSON
at sendNativeEvent (oh_modules/.ohpm/@dcloudio+uni-app-runtime@4.76.2025082101/oh_modules/@dcloudio/uni-app-runtime/src/main/ets/uni-mp-sdk/sdk.js:1264:1)
at _invokeStoreReference (oh_modules/.ohpm/@dcloudio+uni-app-runtime@4.76.2025082101/oh_modules/@dcloudio/uni-app-runtime/src/main/ets/uni-mp-sdk/sdk.js:877:1)
at invokeStoreReference (oh_modules/.ohpm/@dcloudio+uni-app-runtime@4.76.2025082101/oh_modules/@dcloudio/uni-app-runtime/src/main/ets/uni-mp-sdk/sdk.js:881:1)
at anonymous (oh_modules/.ohpm/@dcloudio+uni-app-runtime@4.76.2025082101/oh_modules/@dcloudio/uni-app-runtime/src/main/ets/uni-mp-sdk/sdk.js:1054:1)
at anonymous (oh_modules/.ohpm/@dcloudio+uni-app-runtime@4.76.2025082101/oh_modules/@dcloudio/uni-app-runtime/src/main/ets/uni-mp-sdk/sdk.js:958:1)
at anonymous (oh_modules/.ohpm/@dcloudio+uni-app-runtime@4.76.2025082101/oh_modules/@dcloudio/uni-app-runtime/src/main/ets/uni-mp-sdk/sdk.js:4355:1)
at anonymous (oh_modules/.ohpm/@dcloudio+uni-app-runtime@4.76.2025082101/oh_modules/@dcloudio/uni-app-runtime/src/main/ets/uni-mp-sdk/sdk.js:4450:1)
at invokeCallback (oh_modules/.ohpm/@dcloudio+uni-app-runtime@4.76.2025082101/oh_modules/@dcloudio/uni-app-runtime/src/main/ets/uni-mp-sdk/sdk.js:4378:1)
at invokeSuccess (oh_modules/.ohpm/@dcloudio+uni-app-runtime@4.76.2025082101/oh_modules/@dcloudio/uni-app-runtime/src/main/ets/uni-mp-sdk/sdk.js:4605:1)
at resolve (oh_modules/.ohpm/@dcloudio+uni-app-runtime@4.76.2025082101/oh_modules/@dcloudio/uni-app-runtime/src/main/ets/uni-mp-sdk/sdk.js:4693:1)
at anonymous (oh_modules/.ohpm/@dcloudio+uni-app-runtime@4.76.2025082101/oh_modules/@dcloudio/uni-app-runtime/src/main/ets/uni-app-harmony/uni.api.ets:9674:17)
E napi_call_function failed SyntaxError: Unexpected Text in JSON
E Error: napi_call_function failed SyntaxError: Unexpected Text in JSON
I BlockMonitor event name: uv_io_cb, Duration Time: 241426 ms


#### 附件
![Image 1](https://www.itying.com/uniimg.php?url=https://img-cdn-tc.dcloud.net.cn/uploads/questions/20250902/285c0fc7411a66a2b1ce850db1d9278d.png)
![Image 2](https://www.itying.com/uniimg.php?url=https://img-cdn-tc.dcloud.net.cn/uploads/questions/20250902/0f7198ee7e78811b038bd609f7a5bc29.png)

更多关于uni-app uni-app-runtime(V4.76.2025082101) 新版本在鸿蒙上面发送事件时参数为空就会出现异常导致事件无法发送报 Unexpected Text in JSON的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

应用不应该报错,后面会做parse容错处理。这里的 sendUniMPEvent: (event: string, data: any) => void; 第二参数为必填,建议手动传递一个空对象或者为 null 规避此问题。

更多关于uni-app uni-app-runtime(V4.76.2025082101) 新版本在鸿蒙上面发送事件时参数为空就会出现异常导致事件无法发送报 Unexpected Text in JSON的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


预计什么时候做parse容错处理呢,目前我们有很多页面使用sendUniMPEvent,data是空的,现在是不敢升级版本了

兼容代码是为了应用不报错,给出相关错误提示。你的问题是必填传输没有传递,请传递必填参数,后续参数可能会做进一步调整

这是一个在 uni-app-runtime V4.76.2025082101 版本中确认存在的兼容性问题。当在鸿蒙系统上使用 uni.sendNativeEvent 方法且不传递 data 参数时,会触发 JSON 解析异常。

从错误堆栈可以看出,问题出现在 SDK 的 JSON 处理逻辑中。新版本在处理空参数时,可能尝试对 undefined 或空值进行 JSON 序列化,导致鸿蒙原生层解析失败。

临时解决方案:

  1. 暂时回退到可正常工作的版本 "@dcloudio/uni-app-runtime": "2.3.17"
  2. 或者在当前版本中为所有 sendNativeEvent 调用显式传递空对象参数:
uni.sendNativeEvent('fcUniClose', {});
回到顶部