Commit 32e1d3b825c57dc0e7e417edde55ed4c467ee188

Authored by yvan.ni
1 parent 57141c19

保存图片需要的功能

pages/team/team_success/team_success.js
... ... @@ -866,6 +866,108 @@ Page({
866 866 });
867 867 },
868 868  
869   -
  869 +
  870 + // 保存图片到手机
  871 + savePic() {
  872 + console.log('保存图片');
  873 + var self = this;
  874 + // 获取用户的当前设置,返回值中有小程序已经向用户请求过的权限
  875 + this.getSetting().then((res) => {
  876 + // 判断用户是否授权了保存到相册的权限,如果没有发起授权
  877 + if (!res.authSetting['scope.writePhotosAlbum']) {
  878 + this.authorize().then(() => {
  879 + // 同意授权后保存下载文件
  880 + this.saveImage(self.data.shareImgPath)
  881 + .then(() => {
  882 + self.setData({
  883 + showPoster: false
  884 + });
  885 + });
  886 + })
  887 + } else {
  888 + // 如果已经授权,保存下载文件
  889 + this.saveImage(self.data.shareImgPath)
  890 + .then(() => {
  891 + self.setData({
  892 + showPoster: false
  893 + });
  894 + });
  895 + }
  896 +
  897 + })
  898 + },
  899 +
  900 +
  901 + // 保存图片到系统相册
  902 + saveImage(saveUrl) {
  903 + var self = this;
  904 + return new Promise((resolve, reject) => {
  905 + wx.saveImageToPhotosAlbum({
  906 + filePath: saveUrl,
  907 + success: (res) => {
  908 + wx.showToast({
  909 + title: '保存成功',
  910 + duration: 1000,
  911 + });
  912 + self.setData({
  913 + showPlaybill: 'true'
  914 + });
  915 + resolve();
  916 + },
  917 + fail: () => {
  918 + wx.showToast({
  919 + title: '保存失败',
  920 + duration: 1000,
  921 + });
  922 + }
  923 + })
  924 + })
  925 + },
  926 +
  927 + // 获取用户已经授予了哪些权限
  928 + getSetting() {
  929 + return new Promise((resolve, reject) => {
  930 + wx.getSetting({
  931 + success: res => {
  932 + resolve(res)
  933 + }
  934 + })
  935 + })
  936 + },
  937 +
  938 + // 发起首次授权请求
  939 + authorize() {
  940 + // isFirst 用来记录是否为首次发起授权,
  941 + // 如果首次授权拒绝后,isFirst赋值为1
  942 + let isFirst = wx.getStorageSync('isFirst') || 0;
  943 + return new Promise((resolve, reject) => {
  944 + wx.authorize({
  945 + scope: 'scope.writePhotosAlbum',
  946 + // 同意授权
  947 + success: () => {
  948 + resolve();
  949 + },
  950 + // 拒绝授权,这里是用户拒绝授权后的回调
  951 + fail: res => {
  952 + if(isFirst === 0) {
  953 + wx.setStorageSync('isFirst', 1);
  954 + wx.showToast({
  955 + title: '保存失败',
  956 + icon: 'none',
  957 + duration: 1000
  958 + })
  959 + } else {
  960 + this.showModal();
  961 + }
  962 + console.log('拒绝授权');
  963 + reject();
  964 + }
  965 + })
  966 + })
  967 + },
  968 +
  969 +
  970 +
  971 +
870 972 })
871 973  
... ...