uni-app plus高效打开格式为base64的pdf

10 篇文章 0 订阅
6 篇文章 0 订阅
// 直接转pdf到公共目录---速度较快
	base64ToPdf(base64){
		return new Promise((resolve, reject) => {
			if (typeof plus === 'object') {
				var basePath = '_downloads'
				var dirPath = 'bn_wty'
				let fileName = new Date().getTime() + "_" + (Math.random() * 1000 >>> 0) + ".pdf";
				var filePath = basePath + '/' + dirPath + '/' + fileName
				if (!biggerThan(plus.os.name === 'Android' ? '1.9.9.80627' : '1.9.9.80472', plus.runtime
						.innerVersion)) {
					plus.io.requestFileSystem(plus.io.PUBLIC_DOWNLOADS, function(success) {
						success.root.getDirectory(dirPath, {
							create: true,
							exclusive: false,
						}, function(entry) {
							entry.getFile(fileName, {
								create: true,
								exclusive: false,
							}, function(entry) {
								entry.createWriter(function(writer) {
									writer.onwrite = function() {
										resolve(filePath);
									}
									writer.onerror = reject
									writer.seek(0)
									writer.writeAsBinary(base64.replace(
										/^data:\S+\/\S+;base64,/, ''
									))
								}, reject)
							}, reject)
						})
					}, reject);
					return
				}
				var bitmap = new plus.nativeObj.Bitmap(fileName)
				bitmap.loadBase64Data(base64, function() {
					bitmap.save(filePath, {}, function() {
						bitmap.clear()
						resolve(filePath)
					}, function(error) {
						bitmap.clear()
						reject(error)
					})
				}, function(error) {
					bitmap.clear()
					reject(error)
				})
				return
			}
		})
	},
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值