- 选择聊天文件后然后读取内容,读取到的内容一直是缓存中的内容或者本地用户文件读取内容
预期:我在本地路径生成一个文件aaa.pwb,然后再使用聊天文件导入bbb.pwb,覆盖aaa.pwb,我希望bbb.pwb读取到的内容是正确的,然而我实际读取的内容是aaa.pwb,我copyFile后,读取到的内容还是aaa.pwb内容,我即使选择了ccc.pwb,还是读取到了aaa.pwb内容。 查看日志,有报错: [图片] 不知道这个报错是否和此问题相关,但可以确定的是,选择文件后,显示的文件名称和尺寸是和源文件匹配的,但是读取的内容和原文件不一致。 使用的代码如下: chooseFile() { wx.chooseMessageFile({ count: 1, type: 'file', extension: ['bak'], success: (res) => { const file = res.tempFiles[0]; console.log(`选择文件[版本${this.data.fileVersion}]:`, file.name); // 读取文件内容 this.readViaCopy(file); }, fail: (err) => { console.error('选择文件失败:', err); } }); }, readViaCopy(file) { const fs = wx.getFileSystemManager(); const newPath = `${wx.env.USER_DATA_PATH}/temp_${Date.now()}.pwb`; console.log('原始路径:', file.path); console.log('新路径:', newPath); try { // 1. 复制到新路径 fs.copyFileSync(file.path, newPath); console.log('复制成功'); // 2. 读取新文件 const content = fs.readFileSync(newPath, 'utf-8'); console.log('读取成功,长度:', content.length); console.log('读取成功,内容:', content); // 3. 显示结果 wx.showModal({ title: '复制读取法', content: `文件: ${file.name}\n新路径: ${newPath}\n内容长度: ${content.length}\n}`, showCancel: false }); // 4. 清理 setTimeout(() => { try { fs.unlinkSync(newPath); console.log('清理完成'); } catch (e) {} }, 1000); } catch (error) { console.error('复制法失败:', error); wx.showModal({ title: '错误', content: '复制法失败: ' + error.message, showCancel: false }); } }, 可模拟步骤,在一个页面中,创建一个导入按钮,页面启动时,先读取aaa.pwb内容,然后展示到页面,然后点击导入按钮,弹出选择聊天文件对话框,选择文件,然后读取内容后再展示出来,发现是aaa.pwb内容。
11-30 - FileSystemManager.readFileSync读取内容不对?
我使用wx.chooseMessageFile选择了文件,返回的文件大小是2710,返回了临时文件路径,然后我读取这个文件,发现读取的文件大小不一样,是我本地用户文件的大小。 下面是代码: static loadFromFile(filePath) { try { console.log('从文件中加载,',filePath); const fs = wx.getFileSystemManager(); // 检查文件是否存在 try { fs.accessSync(filePath); } catch (accessError) { console.error('文件不存在:', filePath); throw new Error(`文件不存在: ${filePath}`); } // 获取文件信息,包括大小和时间 const fileInfo = fs.statSync(filePath); console.log(`文件路径: ${filePath}, 文件大小: ${fileInfo.size}, 修改时间: ${fileInfo.lastModifiedTime}`); const fileContent = fs.readFileSync(filePath, 'utf8'); console.log('文件内容:', fileContent); return JSON.parse(fileContent); } catch (error) { console.error('文件加载失败:', error); throw new Error(`文件加载失败: ${error.message}`); } } 下面是截图: [图片] 网上的答案是说缓存的问题。但是我不知道这个该怎么修改?因为我读取的路径就是选择文件后返回的路径,但是读取到的内容是我本地用户文件的内容。这是Bug?还是我代码的问题?
11-28 - 在PC端开发者工具测试取值错乱问题?
// 跳转关卡 onGoLevel(e) { const that = this; const idx = e.currentTarget.dataset.idx; const level = that.data.pageLevels[idx]; const levelId = that.data.pageLevels[idx].id; console.log(idx, levelId); if (level.unlocked) { wx.navigateTo({ url: `/pages/level/index?id=${level.id}` }); } else { // 用户看广告可打开关卡 wx.showModal({ title: '解锁关卡', content: '关卡解锁需要观看广告,确定要解锁吗?', success: (res) => { if (res.confirm) { // 播放广告 loadRewardedAd( 'adunit-2ce6db3cb1e45a86', () => { // wx.showToast({ title: '广告观看成功,发放奖励' }); // 这里写奖励逻辑(如加积分、解锁功能等) console.log('用户看广告解锁',levelId); that.forceOpen(levelId); }, (err) => { wx.showToast({ title: err, icon: 'none' }); } ); } else { console.log('用户取消解锁') } } }); } }, forceOpen(levelId) { // 打开本关 console.log('强制解锁',levelId); const title = '强制解锁关卡' + levelId; const content = app.globalData.devId + '设备上报'; report.rptErrInfo(title, content); const ok = loader.forceUnlockLevel(levelId) console.log('解锁值,', ok); if (ok) { this.refreshPage(); // wx.navigateTo({ // url: `/pages/level/index?id=${levelId}` // }); } }, [图片] 找问题两天,完成播放广告后,会出现正常解锁和不能解锁的情况,随机出现,经排查是取值问题,我在弹窗前取值为5,但是播放广告完回调就变成了6,很奇怪,有的时候会正常,网上查了一下,是闭包陷阱,我试着修改了一下,使用const在传值前重新定义,但是还会出现问题。怀疑是sdk问题。请帮忙看看,谢谢!
09-11 - 发布版本问题?
我在审核通过后,选择了灰度发布,用户比例我选择了0,只勾选了体验人员和项目成员,发布之后,发现小程序后台完全发布上线需要15天,这个还可以调整吗?必须再次提交版本再审核吗?
05-13 - PC客户端使用wx.chooseMedia 报错如下,手机正常
[22:47:19] App error MiniProgramError Cannot read properties of undefined (reading '0') TypeError: Cannot read properties of undefined (reading '0') at Object.success (https://usr/app-service.js:2157:670) at I.forEach.v.<computed> (71a51ee444416faa41a468f6bd406574-13331-V0FTZXJ2aWNlTWFpbkNvbnRleHQuanM=.cachedata:1:954551) at p (71a51ee444416faa41a468f6bd406574-13331-V0FTZXJ2aWNlTWFpbkNvbnRleHQuanM=.cachedata:1:151339) at Object.success (71a51ee444416faa41a468f6bd406574-13331-V0FTZXJ2aWNlTWFpbkNvbnRleHQuanM=.cachedata:1:151782) at a (71a51ee444416faa41a468f6bd406574-13331-V0FTZXJ2aWNlTWFpbkNvbnRleHQuanM=.cachedata:1:663628) at Zu (71a51ee444416faa41a468f6bd406574-13331-V0FTZXJ2aWNlTWFpbkNvbnRleHQuanM=.cachedata:1:663806) at id (71a51ee444416faa41a468f6bd406574-13331-V0FTZXJ2aWNlTWFpbkNvbnRleHQuanM=.cachedata:1:664945) at 71a51ee444416faa41a468f6bd406574-13331-V0FTZXJ2aWNlTWFpbkNvbnRleHQuanM=.cachedata:1:665185 at r (71a51ee444416faa41a468f6bd406574-13331-V0FTZXJ2aWNlTWFpbkNvbnRleHQuanM=.cachedata:1:650896) at s (71a51ee444416faa41a468f6bd406574-13331-V0FTZXJ2aWNlTWFpbkNvbnRleHQuanM=.cachedata:1:110961) 上面是实时日志反馈的内容。和本地调试日志差不多,没有看懂什么意思。 具体操作流程,豆子工具小程序,在手机上选择格式转换->图片格式转换->选择图片正常。当在PC端小程序打开时,选择图片后没有反应,在本地调试时会有日志,日志如上面所示。搜索发现PC端其他用户也发现此问题,说是升级PC客户端,试过了,已经是最新版本。客户端版本:3.9.12 基础库版本:3.6.6 系统类型:Android。升级调试库也不可以。
02-28 - 这个小程序链接什么时候发布的功能?
类似于这样的小程序链接什么时候发布的功能? #小程序://豆子工具/A3uZdjmNAjKELGv
02-12 - wx.navigateBack在广告中回调没有生效
下面是代码片段: vAd.onClose((res) => { if (res && res.isEnded) { // 观看完成 } else { // 用户关闭激励视频广告,点击关闭选项。 console.log('length,',getCurrentPages().length); wx.navigateBack({ delta: getCurrentPages().length, success: (res) => {}, fail: (err) => { console.log(err) }, complete: (res) => {}, }); } }) 经测试,小游戏广告,正常返回,其它广告,不返回,报错: errMsg: "navigateBack:fail:navigateBack intercepted"
01-03 - 列表会被tab页覆盖?
微信版本8.0.54,使用的weui库,会出现下列情况,以前没有此问题,是否升级引起的bug? [图片]
2024-12-03 - 网络请求返回头大小写问题
wx.request API中有enableHttp2属性,当激活后,返回的请求头header中的Set-Cookie变为set-cookie,能否保持一致呢?
2024-11-22 - we分析无法打开?
we分析无法打开了
2024-06-29