关于小程序API使用遇到过的问题

2019-08-21  本文已影响0人  嗷呜的伍

1.wxacode.getUnlimited

请求地址后面必须拼接 ?access_token=ACCESS_TOKEN


Snipaste_2019-08-21_15-42-55.png

2.小程序接口报错request:fail response data convert to UTF8 fail

报错原因是因为这个API需要在后端调用而不是前端调用

Snipaste_2019-08-22_10-18-52.png

3.关于授权拒绝后再次调用授权

调用某个需要授权的API失败出现的情况:
I:第一次调用自动弹出授权弹,拒绝后再次调用失败。
II:第一次调用自动弹出授权弹,授权后再次调用因某些原因失败
使用wx.getSetting()查询授权状态,如果已授权则直接调用wx.openSetting()打开授权设置,若未授权直接调用wx.openSetting()无效,所以调用wx.openSetting()前先弹框询问后再调用

            //to do something...
            fail(res) {
             //调用失败
             //查询授权状态
              wx.getSetting({
                success(res) { 
                  //保存到相册权限
                  if (!res.authSetting["scope.writePhotosAlbum"]) {
                  //若直接调用无效
                  // wx.openSetting({
                  //   success(res){}
                  //});
                    wx.showModal({
                      title: "是否授权保存图片到相册",
                      content:"需要授权,否则无法保存图片到相册",
                      success(res) {
                        if (res.confirm) {
                            mpvue.openSetting({
                              success(res){
                                console.log(res); 
                              }
                            })
                         }
                       }
                     });
                    }else{
                      wx.openSetting();
                    }
                 },
               })
            }

4request请求返回数据为{cookies: Array(0), errMsg: "request:ok"}导致return resolve(res)出错

解决方案


Snipaste_2019-09-03_11-16-44.png

改为


Snipaste_2019-09-03_11-32-32.png

5关于小程序码参数解析问题

文档中说明


Snipaste_2019-09-24_09-08-10.png

因此代码为

  mounted() {
    // 隐藏右上角转发按钮
    mpvue.hideShareMenu();
    const that = this;
    const data = this.$root.$mp.query;
    // 判断是否为小程序码进入该页面
      if (data.scene) {
        // 小程序码传入的参数
        let scene = decodeURIComponent(data.scene);
        let tempArray = scene.split('&');
        tempArray.forEach(element => {
          let data = element.split('=');
          switch (data[0]) {
            case 'pid'://参数pid
              posterId = data[1]
              break;
            case 'sid'://参数sid
              sid = data[1]
              break;
            case 'mid'://参数mid
              mid = data[1]
              break;
            default:
              break;
          }
        });
      }
    },

另小程序码可以通过开发者工具扫码进行编译进入线上的小程序

Snipaste_2019-09-24_09-14-43.png
上一篇下一篇

猜你喜欢

热点阅读