uni-app中uni.chooseImage和uni.uploadFile在钉钉真机无法使用 无法上传图片

uni-app中uni.chooseImage和uni.uploadFile在钉钉真机无法使用 无法上传图片

开发环境 版本号 项目创建方式
Windows 10 HBuilderX
### 示例代码:

```javascript
uni.chooseImage({  
    count: 12,  
    extension: "png",  
    success: ({ tempFilePaths }) => {  
        uni.uploadFile({  
            url: "http://xxx/UploadImage",  
            filePath: tempFilePaths[0],  
            fileType: "image",  
            header: { "x-token": "aaaaaaaaaaaaaaaaaaaa" },  
            success: (res) => {  
                console.log(res);  
            },  
            fail: (res) => console.log(res),  
        });  
    },  
    fail: (err) => {  
        console.log("选择失败", err);  
    },  
    complete: () => { },  
});

操作步骤:

  • 写代码运行

预期结果:

  • 图片上传成功

实际结果:

bug描述:

  • uni.chooseImage和uni.uploadFile在钉钉真机无法使用,根本上传不了图片

更多关于uni-app中uni.chooseImage和uni.uploadFile在钉钉真机无法使用 无法上传图片的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app中uni.chooseImage和uni.uploadFile在钉钉真机无法使用 无法上传图片的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在 uni-app 中使用 uni.chooseImageuni.uploadFile 在钉钉真机上无法上传图片的问题,可能是由于以下几个原因导致的:

1. 钉钉环境兼容性问题

钉钉应用内嵌的 WebView 可能对某些 JavaScript API 的支持不完全,导致 uni.chooseImageuni.uploadFile 无法正常工作。钉钉的 WebView 可能对一些 H5 功能的支持有限,尤其是在文件上传和图片选择方面。

2. 权限问题

钉钉应用可能没有授予足够的权限来访问设备的文件系统或相机,导致 uni.chooseImage 无法正常工作。你需要确保钉钉应用有足够的权限来访问这些功能。

3. 跨域问题

如果 uni.uploadFile 的请求地址是跨域的,钉钉的 WebView 可能会阻止这种请求。你需要确保上传接口的域名与当前页面的域名一致,或者服务器已经配置了跨域支持(CORS)。

4. 钉钉 SDK 的使用

钉钉提供了自己的 SDK,用于在钉钉环境下进行文件上传和图片选择。你可以尝试使用钉钉的 SDK 来实现图片选择和上传功能,而不是直接使用 uni.chooseImageuni.uploadFile

解决方案

1. 使用钉钉 SDK 进行图片选择和上传

钉钉提供了 dd.chooseImagedd.uploadFile 等 API,专门用于在钉钉环境下进行图片选择和文件上传。你可以尝试使用这些 API 来代替 uni.chooseImageuni.uploadFile

// 选择图片
dd.chooseImage({
  sourceType: ['camera', 'album'],
  count: 1,
  success: (res) => {
    const filePath = res.filePaths[0];
    // 上传图片
    dd.uploadFile({
      url: 'https://your-upload-url.com/upload',
      filePath: filePath,
      name: 'file',
      success: (uploadRes) => {
        console.log('上传成功', uploadRes);
      },
      fail: (err) => {
        console.error('上传失败', err);
      }
    });
  },
  fail: (err) => {
    console.error('选择图片失败', err);
  }
});
回到顶部