createUDP无法使用
发布于 6 年前 作者 xiuying59 5671 次浏览 来自 问答
  • 当前 Bug 的表现(可附上截图)

我的基础库版本是2.7.1,大于createUDP的最低版本要求2.7.0,但是结果还是走入了下述的else分支,打印出了bad use, version is 2.7.1的字样

if(wx.canIUse(‘createUDPSocket’)) {

console.log(‘good use’)

} else {

const version = wx.getSystemInfoSync().SDKVersion

console.log('bad use, version is ’ + version)

}

  • 预期表现

走入good use

  • 复现路径
  • 提供一个最简复现 Demo

//app.js

App({

onLaunch: function () {

// 展示本地存储能力

var logs = wx.getStorageSync(‘logs’) || []

logs.unshift(Date.now())

wx.setStorageSync(‘logs’, logs)

// 登录

wx.login({

success: res => {

// 发送 res.code 到后台换取 openId, sessionKey, unionId

}

})

if(wx.canIUse(‘createUDPSocket’)) {

console.log(‘good use’)

} else {

const version = wx.getSystemInfoSync().SDKVersion

console.log('bad use, version is ’ + version)

}

// 获取用户信息

wx.getSetting({

success: res => {

if (res.authSetting[‘scope.userInfo’]) {

// 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框

wx.getUserInfo({

success: res => {

// 可以将 res 发送给后台解码出 unionId

this.globalData.userInfo = res.userInfo

// 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回

// 所以此处加入 callback 以防止这种情况

if (this.userInfoReadyCallback) {

this.userInfoReadyCallback(res)

}

}

})

}

}

})

},

globalData: {

userInfo: null

}

})

1 回复

应该是canIUse的数据没有及时更新,我们尽快修复

暂时可以使用 if (typeof wx.createUDPSocket=== ‘function’) 来判断

回到顶部