微信小程序爬过的坑

698 阅读2分钟

粗糙的封装request,携带token,超时返回401跳转登录页面

1、api.js文件

function http(url, data, ) {
    return new Promise((resolve, reject) => {
        const app = getApp();
        let request_token = wx.getStorageSync('accountInfo').token
         url += '?access_token=' + wx.getStorageSync('accountInfo').token
    wx.request({
      url: app.globalData.baseURL + url,
      data: data,
      method: 'POST',
      header: {
        'content-type': 'application/x-www-form-urlencoded'
      },
      success(res) {
        if (res.statusCode === 401) {
          wx.removeStorage({
            key: 'accountInfo',
          })
          return wx.redirectTo({
            url: '../login/login',
          })
        }
        res.statusCode === 200 ? resolve(res.data) : reject(res.data);
      },
      fail(res) {
        reject(res)
      }
    })})}
    
    module.exports.http = http
    // 暴露出http

2、app.js文件内引入

const api = require('utils/api.js')
App({
  onLaunch: function () {},
  api:api,
  globalData: {}
})

3、页面内屌用

const app = getApp()
reqStats: function(data) {
    let url = 'a/b/c''
    app.api.http(url, data)
      .then(res => { })
      .catch((err) => {
        console.log(err)
      });
  }, 

ok,能用

部分苹果手机无法调用wx.saveImageToPhotosAlbum保存图片到相册问题

问题原因:不知道 解决方法: 在你的app.json中增加授权使用说明,即插入以下代码:

"permission": {
    "scope.userLocation": {
        "desc": "你的位置信息将用于小程序位置接口的效果展示"
    },
    "scope.writePhotosAlbum":{
        "desc": "授权相册权限后,您才能正常保存图片"
        }
},

页面上下拖动留白问题,如何禁止页面拖动

解决方法: 在页面的json内配置 { "disableScroll": true } 即可。

微信小程序版本更新

检查微信小程序是否最新版本,将以下代码插入到app.js中。在onLaunch中调用即可

checkForUpdate: function () {
    try {
      const updateManager = wx.getUpdateManager()
      updateManager.onUpdateReady(function () {
        wx.showModal({
          title: '更新提示',
          content: '新版本已经准备好,是否重启应用?',
          success: function (res) {
            if (res.confirm) {
              updateManager.applyUpdate()
            }
          }
        })
      })
      updateManager.onUpdateFailed(function () { })
    }
    catch (err) {
      console.log('基础库版本低于1.9.90')
    }
},

获取普通二维码参数报错或拿不到

问题原因:在开发工具和调试状态下都可以,真机不行,因为真机下的二维码参数不在 options里而是在options.q里面 解决方法:

if (options.code) {//扫码进入
  this.setData({
    code: options.code,
  })
}
if (options.q) { //兼容扫码进入
  let link = decodeURIComponent(options.q)
    let code = link.split('=')[1]
    that.setData({
      code:code,
    })
  }
}

按钮的边框如何去掉

解决方法:

button::after{
    border: none;
}

canvas画图网络图片不显示

问题原因:不知道,不想查

解决方法: 1、公众平台配置downLoadFile合法域名 2、使用以下代码下载图片

wx.downloadFile({
  url: that.data.mysrc,
  success: res=> {
    that.data.img = res.tempFilePath
  },fail:err=>{
    console.log(err)
  }
  })

ok,解决!