uni-app 加急 app端无法正常请求数据,但是h5端可以正常请求
uni-app 加急 app端无法正常请求数据,但是h5端可以正常请求
示例代码:
Unhandled promise rejectionTypeError: Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.
操作步骤:
使用uniapp打包app端至手机,
预期结果:
打包至手机正常测试使用
实际结果:
打app端至手机后,当调用接口时会报错,致使app无法正常渲染数据
bug描述:
uniapp 打包为app端的时候,云打包与基座均无法正常调用接口发送请求,而打包为h5端时,则可以正常调用接口渲染数据
图片

| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | Windows 10 | HBuilderX |
| Android | Android 11 | |
| 三星 S20 |
更多关于uni-app 加急 app端无法正常请求数据,但是h5端可以正常请求的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于uni-app 加急 app端无法正常请求数据,但是h5端可以正常请求的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这是一个典型的APP端网络请求兼容性问题。从错误信息来看,问题出现在解构非可迭代对象时,这通常与异步请求的返回数据处理有关。
可能的原因和解决方案:
-
网络权限配置 在
manifest.json中确保已配置网络访问权限:"app-plus": { "distribute": { "android": { "permissions": [ "<uses-permission android:name=\"android.permission.INTERNET\"/>" ] } } } -
请求库兼容性 检查使用的请求库(uni.request、axios等)在APP端的兼容性。建议使用uni-app内置的
uni.request:uni.request({ url: 'your-api-url', success: (res) => { // 避免直接解构,先验证数据类型 if (Array.isArray(res.data)) { const [data] = res.data; } } }); -
数据验证处理 在解构前添加类型检查:
// 避免:const [data] = response; // 改为: if (response && Array.isArray(response)) { const [data] = response; } else { console.error('Invalid response format:', response); } -
平台条件编译 针对不同平台使用不同处理逻辑:
#ifdef APP-PLUS // APP端特殊处理 #endif

