效果如图:

 

 

wxml代码:

<view class=\'erweima\'>
  <view class=\'img_erweima\'>
    <image src=\'http://img02.tooopen.com/images/20150928/tooopen_sy_143912755726.jpg\' bindtouchstart=\'timestart\' bindtouchend=\'timeend\' bindtap=\'saveImg\'></image>
  </view>
  <view class=\'text\'>
    <view>长按保存</view>
  </view>
</view>
 
js代码:
//点击开始时的时间
timestart: function (e) {
  var _this = this;
  _this.setData({ timestart: e.timeStamp });
},
 
//点击结束的时间
timeend: function (e) {
  var _this = this;
  _this.setData({ timeend: e.timeStamp });
},
 
//保存图片
saveImg: function (e) {
  var _this = this;
  var times = _this.data.timeend - _this.data.timestart;
  if (times > 300) {
    console.log("长按");
    wx.getSetting({
      success: function (res) {
        wx.authorize({
          scope: \'scope.writePhotosAlbum\',
          success: function (res) {
            console.log("授权成功");
            var imgUrl = “http://img02.tooopen.com/images/20150928/tooopen_sy_143912755726.jpg”;//图片地址
            wx.downloadFile({//下载文件资源到本地,客户端直接发起一个 HTTP GET 请求,返回文件的本地临时路径
              url: imgUrl,
              success: function (res) {
                console.log(res);
                // 下载成功后再保存到本地
                wx.saveImageToPhotosAlbum({
                  filePath: res.tempFilePath,//返回的临时文件路径,下载后的文件会存储到一个临时文件
                  success: function(res){
                   }
                })
              }
            })
          }
        })
      }
    })
  }
},
 
 
另外,如果不是处于开发者,而是简单的练习,不用获取用户的当前设置,进行用户授权。直接--------
//保存图片
saveImg: function (e) {
  var _this = this;
  var times = _this.data.timeend - _this.data.timestart;
  if (times > 300) {
    console.log("长按");
    var imgUrl = “http://img02.tooopen.com/images/20150928/tooopen_sy_143912755726.jpg”;//图片地址
    wx.downloadFile({//下载文件资源到本地,客户端直接发起一个 HTTP GET 请求,返回文件的本地临时路径
       url: imgUrl,
       success: function (res) {
       console.log(res);
        // 下载成功后再保存到本地
        wx.saveImageToPhotosAlbum({
        filePath: res.tempFilePath,//返回的临时文件路径,下载后的文件会存储到一个临时文件
        success: function(res){
        }
     })
     }
  }
},