微信小程序部分手机预览pdf没反应

今天同事反映,预览PDF打不开。其他同事都可以打开。
和他调试后发现,提示缓存已满。
在这里插入图片描述
通过api FileSystemManager.readdir
让他看看所缓存的文件,发现有234个。
在这里插入图片描述
让其清理缓存后,可正常预览PDF了。
贴上代码

//预览PDF
previewPdf(params) {
		uni.showLoading({
			title: 'loading'
		})
		GetPhoto(params.filePath).then(res => {
			uni.hideLoading()
			if (res.statusCode == 400) {
				this.$Toast('文件不存在')
				return
			}
			let pdfBase64 = res.data
			let fs = uni.getFileSystemManager();
			fs.writeFile({
				filePath: wx.env.USER_DATA_PATH + "/" + params.fileName + '.pdf',
				data: uni.base64ToArrayBuffer(pdfBase64.replace(/[\r\n]/g, "")),
				success: res => {
					uni.openDocument({
						filePath: wx.env.USER_DATA_PATH + "/" + params.fileName +
							'.pdf',
						showMenu: true,
						success: function(res) {
						},
						fail(err) {
						}
					})
				}
			})
		})
	},
//清理缓存
removeFile() {
		uni.showLoading({
			title:'清理中...'
		})
		const fs = wx.getFileSystemManager()
		fs.readdir({
			dirPath: `${wx.env.USER_DATA_PATH}/`,
			success(res) {
				let length = 0
				for (let i of res.files) {
					length++
					if (length == res.files.length) {
						setTimeout(()=>{
							uni.hideLoading()
							uni.showToast({
								title: '清理完毕'
							})
						},500)
					}
					let name = (`${wx.env.USER_DATA_PATH}/` + i)
					if (name.indexOf('miniprogramLog') > -1) {  //没权限删除 跳过
						continue;
					}
					fs.unlink({
						filePath: name,
						fail(e) {
							console.log('文件删除失败:', e)
						},
						success(succ) {
							console.log('文件删除成功:', succ);
						}
					})
				}
			},
			fail(res) {
				console.error(res)
			}
		})
	},
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值