我看描述说是需要设置用户隐私请求, 但是我一开始就有这个请求 关键还没有报错,就是我点按钮,运行 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)
});
});
}
});
请具体描述问题出现的流程,并提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。