关于wx.saveImageToPhotosAlbum()保存图片路径问题

  • Post author:
  • Post category:其他


这篇文章不是跟大家发代码福利的哦,是关于一个近期遇到的一个关于微信小程序API调用的BUG。

具体就是最近在帮公司开发新的小程序的时候,小程序中有一个人保存图片的功能。第一反应反应就是wx.saveImageToPhotosAibum(),

官方文档

中对它简介就是保存图片到系统相册。

具体参数如下:

在这里插入图片描述

var that = this;

wx.getImageInfo({
            src: String(img),
            success: imgInfo => {
              // w = res.width;
              // h = res.height*0.3;
              let {info} = this.data;
              let convasX = imgInfo.width / 4;
              let convasY = imgInfo.height / 5;
              let canvasWidth = convasX * 3;
              let canvasHeight = convasY * 3;
			const context = wx.createCanvasContext('canvasOne') 
             
              context.setFillStyle('#ffffff')    
              context.fillRect(0, 0, 500, 600)
              
              // context.drawImage(that.data.url, 0, 0, 130, 130 ) 
              context.drawImage(that.data.photo_jietu,0,0,400,460);
              context.setFontSize(10)
              context.setFillStyle("#393939")
              context.fillText(that.data.time, 0, 170)  
              context.setFontSize(10)
              context.setFillStyle("#393939")
              context.fillText('当前重量', 410, 170) 
              context.setFontSize(15)
              context.setFillStyle("#393939")
              context.setTextAlign('center')
              context.fillText(that.data.newAddress, 10, 350,195)  
              context.setFontSize(10)
              context.setFillStyle("#393939")
              context.fillText(that.data.nowWeight, 410, 190)  
              
              // context.draw(true)
              context.draw(false, function () {
                 wx.canvasToTempFilePath({
                  x: 0,
                  y: 0,
                  width: 460,
                  height: 470,
                  destWidth: that.data.moveViewWidth * that.data.scale,
                  destHeight: that.data.moveViewHeight * that.data.scale,
                  canvasId: 'canvasOne',
                  success: function (res) {
                    // that.data.showImage.url = res.tempFilePath
                   
                        getApp().globalData.uurl = res.tempFilePath;               
                        console.log("++++++++++++++++++++++++++++++++++++++++++++++++++++",res.tempFilePath);                           
                        console.log(res.tempFilePath);
                           wx.saveImageToPhotosAlbum({
						   filePath:imageUrl,
						  success(res) {
								console.log(res)
						 },
						 fail(res) {
						       wx.hideLoading()
						           console.log("wx.saveImageToPhotosAlbum--fail res:",res)
						      }
						})

                  },
                  fail(res) {
                    wx.hideLoading()
                    console.log("fail res:",res)
                  }
                })
              })        
            },
            fail(res){
              console.log(res);
            }
          })

(上述代码只是微信小程序相应功能代码中代码的一小部分,并不一定能单独运行不出错)

在为公司开发的微信小程序中运行相应的功能时,进入手机系统相册可以查看到相应的图片(内心还是十分开心的,毕竟完成一件新作品自己会感到非常大的成就感,这也是我喜欢编程的原因),但是下次登录傻眼了,并没有相应的图片,但是明明相册有图片,于是就用我的苹果手机测试也是一样,就找同事的手机测试,看看是不是机型的问题,结果都一样,看文档并没有相应的详情介绍,打印出返回值,发现并未有该图片返回路径。于是就得出的结论:将绘画好的图片保存到手机系统相册中,图片是保存到了手机相册中。但是成功方法返回的打印中并没有该图片的保存路径,而公司又要求以后登录要显示该图片并且可对其进行删除操作。

于是找朋友求教怎么获得其返回路径,都未果。同事找华为那边的技术员 也确认wx.saveImageToPhotosAlbum()保存图片没有给其返回路径。

所以说,现在小程序只是看似成熟,里面还有很多坑要大家去踩。并且希望微信小程序官方尽快更新修改大家踩过的坑。



版权声明:本文为qq_42754787原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。