uni-app 关于发票(图片和pdf格式)的多端下载!!!

最近公司项目里面有对发票下载的需求,由于发票是由图片pdf构成的还要多端实现!!!记录下

手机h5端对于图片和pdf格式还是比较容易处理的,你可以使用window.open()的形式将图片和pdf从另一个页面打开,打开之后可以利用浏览器自带的保存功能实现发票的下载!

小程序端:注意小程序的图片保存需要用户给予权限先用wx.downloadFile将图片下载到本地保存为一个临时路径,在用wx.saveImageToPhotosAlbum将本地图片保存到手机相册中!第一次保存失败,主动引导用户完成授权功能wx.openSetting;若为pdf格式则利用wx.openDocument()打开文档模式然后在保存下来。具体代码如下

wxDownImg (imgUrl){
				wx.showLoading({
				      title: '保存中...'
				})
				wx.downloadFile({
					url: imgUrl,
					success:(res)=> {
						wx.saveImageToPhotosAlbum({
							filePath: res.tempFilePath,
							success: (data)=> {
								wx.hideLoading()
								 wx.showModal({
									 title: '提示',
									 content: '已保存进手机相册',
									 showCancel:false,
				            })
				          },
						  fail: (err)=> { 
							if (err.errMsg === "saveImageToPhotosAlbum:fail:auth denied" || err.errMsg === "saveImageToPhotosAlbum:fail auth deny") {
								wx.showModal({
				                title: '提示',
				                content: '需要您授权保存相册',
				                showCancel: false,
				                success:modalSuccess=>{
				                  wx.openSetting({
				                    success(settingdata) {
				                      if (settingdata.authSetting['scope.writePhotosAlbum']) {
				                        wx.showModal({
				                          title: '提示',
				                          content: '获取权限成功,再次点击下载',
				                          showCancel: false,
				                        })
				                      } else {
				                        wx.showModal({
				                          title: '提示',
				                          content: '获取权限失败,将无法保存到相册哦~',
				                          showCancel: false,
				                        })
				                      }
				                    },
				                    fail(failData) {
										wx.showModal({
										  title: '提示',
										  content: '保存失败',
										  showCancel: false,
										})
				                    },
				                  })
				                }
				              })
				            }
				          },
				          complete(res) {
				            wx.hideLoading()
				          }
				        })
				      }
				    })
			}
wxDownPdf(imgUrl) {
				uni.downloadFile({
						url: imgUrl,
						success: (res)=> {
							var filePath = res.tempFilePath;
							uni.openDocument({
							filePath: filePath,
							success: (res)=> {
						},
							fail: () => {
							uni.showToast({
					  		title: "保存失败,请稍后重试",
					  		icon: "none"
					  	});
					  }
				    });
				 }
				});
			},

对于app而言,保存图片要比小程序简单一些,也同样的需要先将图片下载uni.downloadFile到本地获取临时路径,然后在调用uni.saveImageToPhotosAlbum保存图片api将图片保存到手机系统相册中,发票类型如果为pdf格式,则和小程序处理的一样!代码如下:

uni.downloadFile({
						url: imgUrl,
						success: (res) =>{
							if (res.statusCode === 200){
								uni.saveImageToPhotosAlbum({
									filePath: res.tempFilePath,
									success: function() {
										uni.showToast({
											title: "保存成功",
											icon: "none"
										});
									},
									fail: function() {
										uni.showToast({
											title: "保存失败,请稍后重试",
											icon: "none"
										});
									}
								});
							}
						}
					})

tips:如有不足之处还望海涵,欢迎交流沟通!

你可能感兴趣的:(图片保存,小程序app,pdf保存)