账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    mpvue中 wx.getSetting一直走fail 打印为:系统内部错误
    37
    0

    问题描述

    mpvue中 wx.getSetting一直走fail 打印为:系统内部错误;

    相关代码

    // 请把代码文本粘贴到下方(请勿用图片代替代码)
    <template>
    <div class="container">

      <button open-type="getUserInfo" @getuserinfo="bindGetUserInfo" @click="getUserInfo1">获取权限</button>

    </div>
    </template>

    <script>
    export default {
    data () {

    return {
      canIUse: wx.canIUse('button.open-type.getUserInfo')
    }
    

    },
    created (){

    this.getSetting()

    },
    methods: {

      getSetting(){
        wx.getSetting({
          success: function(res){
            if (res.authSetting['scope.userInfo']) {
              wx.getUserInfo({
                success: function(res) {
                  console.log(res.userInfo)
                  //用户已经授权过
                  console.log('用户已经授权过')
                }
              })
            }else{
              console.log('用户还未授权过')
            }
          },
          fail(er){
            console.log(er) 
          }
        })
    },
    getUserInfo1(){
      console.log('click事件首先触发')
      // 判断小程序的API,回调,参数,组件等是否在当前版本可用。  为false 提醒用户升级微信版本
      // console.log(wx.canIUse('button.open-type.getUserInfo'))
      if(wx.canIUse('button.open-type.getUserInfo')){
        // 用户版本可用
      }else{
        console.log('请升级微信版本')
      }
    },
    bindGetUserInfo(e) {
      if (e.mp.detail.rawData){
        //用户按了允许授权按钮
        console.log('用户按了允许授权按钮')
      } else {
        //用户按了拒绝按钮
        console.log('用户按了拒绝按钮')
      }
    }

    }
    }
    </script>

    <style scoped>
    .userinfo {
    display: flex;
    flex-direction: column;
    align-items: center;
    }

    .userinfo-avatar {
    width: 128rpx;
    height: 128rpx;
    margin: 20rpx;
    border-radius: 50%;
    }

    .userinfo-nickname {
    color: #aaa;
    }

    .usermotto {
    margin-top: 150px;
    }

    .form-control {
    display: block;
    padding: 0 12px;
    margin-bottom: 5px;
    border: 1px solid #ccc;
    }

    .counter {
    display: inline-block;
    margin: 10px auto;
    padding: 5px 10px;
    color: blue;
    border: 1px solid blue;
    }
    </style>

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 在Vue中,微信小程序获取用户设置的逻辑通常是在onLoad或者mounted生命周期钩子中执行。但是,当遇到系统内部错误时,可能需要在onError或者onTimeout钩子中处理。

      下面是一个简单的例子,当遇到系统内部错误时,会打印出一个错误信息:

      javascript new Vue({ el: '#app', data: { // 数据 }, mounted() { wx.getSetting({ success: function (res) { console.log('系统内部错误', res); }, fail: function () { console.log('系统内部错误'); }, error: function () { console.log('系统内部错误'); } }); } });

      在上述代码中,当系统内部错误时,会打印出'系统内部错误'。你可以根据具体的情况修改这个错误信息。

      注意,wx.getSetting方法返回一个对象,其中success属性表示成功获取设置的回调函数,fail属性表示失败获取设置的回调函数,error属性表示错误获取设置的回调函数。你需要在这些回调函数中处理系统内部错误。

      如果你的错误是在wx.getSetting方法调用过程中发生,那么你可能需要使用try...catch语句来捕获和处理错误。例如:

      javascript try { wx.getSetting({ success: function (res) { console.log('系统内部错误', res); }, fail: function () { console.log('系统内部错误'); }, error: function () { console.log('系统内部错误'); } }); } catch (error) { console.log('系统内部错误', error); }

      在上述代码中,如果wx.getSetting方法调用失败,那么catch语句会捕获这个错误并打印出'系统内部错误'

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部