wx.cloud.uploadFile 没有任何反应
在小程序端调用 wx.cloud.uploadFile 没有任何结果。 用 iPhoneX 和 iPhoneSE 都不好使,success、fail、complete 均不执行(开发版、体验版),但是在开发工具和真机调试的时候可以正常运行。 wxml: [代码]<[代码][代码]button[代码] [代码]bindtap[代码][代码]=[代码][代码]"handleAwait"[代码][代码]>await (iphone 上的 bug 在这里)</[代码][代码]button[代码][代码]>[代码][代码]<[代码][代码]button[代码] [代码]bindtap[代码][代码]=[代码][代码]"handlePromise"[代码][代码]>promise</[代码][代码]button[代码][代码]>[代码] [代码] [代码] [代码]<[代码][代码]view[代码][代码]>上面两个按钮,都触发一个选择图片的事件,选好之后上传。</[代码][代码]view[代码][代码]>[代码][代码]<[代码][代码]view[代码][代码]>在开发者工具里是没有问题的。</[代码][代码]view[代码][代码]>[代码][代码]<[代码][代码]view[代码][代码]>但是在 iPhoneX 和 iphoneSe 上:</[代码][代码]view[代码][代码]>[代码][代码]<[代码][代码]view[代码][代码]>await 按钮上传文件完全没任何反应,success、fail、complete 都不被调用</[代码][代码]view[代码][代码]>[代码][代码]<[代码][代码]view[代码][代码]>但是,iphone 使用真机调试时,又没有任何问题了</[代码][代码]view[代码][代码]>[代码]js: [代码]Page({[代码][代码] [代码][代码]async handleAwait() {[代码][代码] [代码][代码]let uploaded = await getPhoto();[代码][代码] [代码][代码]let path = uploaded.tempFilePaths[0];[代码][代码] [代码][代码]let result = await uploadFile(path);[代码][代码] [代码][代码]wx.showToast({ title: result.errMsg })[代码][代码] [代码][代码]},[代码][代码] [代码][代码]handlePromise() {[代码][代码] [代码][代码]getPhoto().then(async uploaded => {[代码][代码] [代码][代码]let path = uploaded.tempFilePaths[0];[代码][代码] [代码][代码]let result = await uploadFile(path);[代码][代码] [代码][代码]wx.showToast({ title: result.errMsg })[代码][代码] [代码][代码]})[代码][代码] [代码][代码]}[代码][代码]})[代码] [代码]function[代码] [代码]getPhoto() {[代码][代码] [代码][代码]return[代码] [代码]new[代码] [代码]Promise(success => {[代码][代码] [代码][代码]wx.chooseImage({[代码][代码] [代码][代码]success[代码][代码] [代码][代码]})[代码][代码] [代码][代码]})[代码][代码]}[代码] [代码]function[代码] [代码]uploadFile(filePath) {[代码][代码] [代码][代码]return[代码] [代码]new[代码] [代码]Promise(success => {[代码][代码] [代码][代码]wx.cloud.uploadFile({[代码][代码] [代码][代码]cloudPath: [代码][代码]'1.jpg'[代码][代码],[代码][代码] [代码][代码]filePath,[代码][代码] [代码][代码]success[代码][代码] [代码][代码]})[代码][代码] [代码][代码]})[代码][代码]}[代码] 目前只有用 promise 的代替方案,希望官方团队能尽快解决,给出反馈。 即使解决不了,也希望尽快给出原因,让其他开发者有效地避开这个问题,或者说为什么这里用 promise 就可以,或者为什么只有在 iPhone 上不可以。