小程序调起保存相册功能及常见问题

1,671 阅读1分钟

使用wx.saveImageToPhotosAlbum来保存到相册,参数

filePathstring图片文件路径,可以是临时文件路径或永久文件路径 (本地路径) ,不支持网络路径


若想使用接口返回的数据需要使用wx.downloadFile方法  下载文件资源到本地,参数url,需要下载的资源的url

       因为微信小程序的限制,保存图片到用户相册需要弹起一个授权,当用户拒绝后,就不再弹起,但是需求一般需要引导用户去授权,使用wx.openSetting,   authSetting是回调结果。

  Taro.downloadFile(       { url:list.blank_picture_url, //接口中的图片路径,将接口图片下载到本地        success:function(res){        let path = res.tempFilePath 
       Taro.saveImageToPhotosAlbum({ 
           filePath: path //保存到相册的图片路径
           }).then((res)=>{ 
             showTip('自我声明已保存至手机相册','提示',false,'好的') })
            .catch((res)=>{ 
                showTip('下载失败,请允许访问手机相册后,重新下载 ','提示',true,'重试','取消')
               .then((name)=>{ 
                 if(name.cancel){ navigateBack(1); }
                else{ Taro.openSetting({ }).then((data)=>{
                  if (data.authSetting["scope.writePhotosAlbum"]) 
             { console.log("获取权限成功,再次点击图片保存到相册") } }) } })
           }) },fail:function(res){ console.log(res) }})