收藏
回答

wx.chooseMessageFile 上线前还是好的,上线后所有都不能用,本地线上按钮都没反应?

我看描述说是需要设置用户隐私请求, 但是我一开始就有这个请求 关键还没有报错,就是我点按钮,运行 chooseMessageFile 直接就跳出这个函数了,也不走 success 或者 fail

我的 上传代码

// 在需要上传文件的页面或组件中
const app = getApp();


Page({
  async uploadFile() {
    try {
      const isAuthorized = await app.checkPrivacyAuthorization();
      if (!isAuthorized) {
        wx.showToast({
          title: '请先同意隐私授权',
          icon: 'none'
        });
        return;
      }


      // 用户已授权,执行文件选择逻辑
      wx.chooseMessageFile({
        count: 1,
        type: 'file',
        success: (res) => {
          const tempFilePath = res.tempFiles[0].path;
          console.log('选择的文件路径:', tempFilePath);
          // 执行文件上传逻辑
          this.doUpload(tempFilePath);
        },
        fail: (error) => {
          console.error('选择文件失败:', error);
          wx.showToast({
            title: '选择文件失败',
            icon: 'none'
          });
        }
      });
    } catch (error) {
      console.error('隐私授权检查失败:', error);
      wx.showToast({
        title: '隐私授权检查失败',
        icon: 'none'
      });
    }
  },


  doUpload(filePath) {
    // 实现文件上传逻辑
    console.log('开始上传文件:', filePath);
    // ... 上传代码 ...
  }
});

我的授权代码

App({
  onLaunch: function() {
    this.initPrivacyAuthorization();
  },


  initPrivacyAuthorization: function() {
    wx.onNeedPrivacyAuthorization(() => {
      return new Promise((resolve) => {
        wx.showModal({
          title: '隐私授权',
          content: '我们需要您的授权才能访问文件,是否同意?',
          success: (res) => {
            if (res.confirm) {
              resolve({ event: 'agree', buttonId: 'agree-btn' });
            } else {
              resolve({ event: 'disagree' });
            }
          },
          fail: () => resolve({ event: 'disagree' })
        });
      });
    });
  },


  checkPrivacyAuthorization: function() {
    return new Promise((resolve, reject) => {
      wx.requirePrivacyAuthorize({
        success: () => resolve(true),
        fail: () => resolve(false)
      });
    });
  }
 });


回答关注问题邀请回答
收藏

1 个回答

登录 后发表内容