- viedio组件真机显示出错
video组件 在pc小程序和开发者工具中正常显示,但是在真机中,随着页面加载,视频列表中从第17个video开始,视频显示时长为0,且video组件中间播放按钮不显示 https://developers.weixin.qq.com/miniprogram/dev/component/video.html 请求地址:https://cn.myxsmanagement.top/wxApi/file?typeId=0&pageNum=1&pageSize=10 [图片] header token验证 Authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiIyIiwiZXhwIjoxNTkxNzAyNjcxLCJpYXQiOjE1OTE3MDA4NzF9.NKH3DOYKHr1xlc_-OnNej-dvIN3l0vVaiNqj8L0hR4s <view class="video-item grace-box-shadow" wx:for="{{list}}" wx:key="index"> <video src="{{item.uploadUrl}}" id="video{{index}}" data-id="{{index}}" loop controls show-progress show-center-play-btn play-btn-position="center" bindplay="StartPlay"></video> <view class="video-title">{{item.fileName}}</view> </view> var fun = require('../../../../utils/fun.js'); var app = getApp(); Page({ /** * 页面的初始数据 */ data: { list: [], query: { pageNum: 1, pageSize: 10 } }, /** * 生命周期函数--监听页面显示 */ onShow: function() { l_loadData(this) }, StartPlay: function(e) { var ind = e.currentTarget.dataset.id for (let i = 0; i < this.data.list.length; i++) { if (i != ind) { var v = "video" + i this.videoContext = wx.createVideoContext(v) this.videoContext.pause() } } }, onReachBottom: function() { getMore(this) } }) // 加载数据 function l_loadData(pg) { var opts = { values: { typeId: 0, pageNum: pg.data.query.pageNum, pageSize: pg.data.query.pageSize, }, url: app.globalData.urlPath + '/wxApi/file', method: 'get' }; fun.loadData(pg, opts).then(res => { pg.data.query.pageNum=pg.data.query.pageNum+1 pg.setData({ list: res, query:pg.data.query }) }) } function getMore(pg) { var opts = { values: { typeId: 0, pageNum: pg.data.query.pageNum, pageSize: pg.data.query.pageSize, }, url: app.globalData.urlPath + '/wxApi/file', method: 'get' }; fun.loadData(pg, opts).then(res => { pg.data.list = pg.data.list.concat(res) pg.data.query.pageNum = pg.data.query.pageNum + 1 pg.setData({ list: pg.data.list, query: pg.data.query }) }) }
2020-06-10 - 使用promise处理微信请求方法出错
处理代码 function ajax_request(url, data,method) { return new Promise((resolve, reject) => { wx.request({ url: url, data: data, header: { "content-type": "application/x-www-form-urlencoded" }, method: method, //http请求方法 GET POST OPTIONS responseType: "text", success(res) { resolve(res) }, fail(err) { console.log(err); wx.showModal({ title: "提示", content: "出错啦,请稍后重试", showCancel: false }) reject({ errCode: 0 }) } }) }) } function ajax_LoadData(pg, opts) { if (opts.debug) console.log(opts) wx.showNavigationBarLoading(); // wx.hideNavigationBarLoading() let loginInfo = wx.getStorageSync('loginInfo'); if (!loginInfo) loginInfo = {} // let params = { // UserID: loginInfo.UserID // } // let values = mergeObject(params, opts.values); ajax_request(opts.url, opts.values,opts.method).then(res => { if (opts.debug) console.log(res) let data = res.data; if (!data) data = {} //++ 没有数据 返回状态吗 为300 if (data.status == 300) { return reject({ "errCode": "01" }) } pg.setData({ Data: data }) if (typeof (opts.funOk) == "function") opts.funOK(data) resolve("success") }).catch(err => { console.log(err) }).finally(res => { // wx.hideToast() wx.hideNavigationBarLoading(); wx.stopPullDownRefresh(); }) } 调用代码 var values = { 'floorid':2 }; var opts = { method:'POST', values: values, url: app.globalData.rootURL + '/' + app.globalData.mainMDL + '/getcategoryinfo', debug: false }; opts.funOk = function (res) { pg.setData({ showData:res.Cont, }) const html=WxParse.wxParse('article', 'html', res.Cont.Content, pg, 5); } fun.loadData(pg, opts, "Data", app); 开发者工具报错 [图片] 请各位大佬看看是那块出错了,promise的使用也换了两种方式,但就是出错了,我都懵了
2019-05-23 - 蓝牙问题 苹果手机 wx.getBluetoothAdapterState
- 当前 Bug 的表现(可附上截图) 苹果手机的蓝牙开着,但wx.getBluetoothAdapterState返回值res.available为false 苹果手机蓝牙的状态是开着的,但是wx.getBluetoothAdapterState调用成功后返回的res.available的值为false, 这种bug 是在苹果手机蓝牙开着但长久不用的状态里出现,一般这种时候关闭重启蓝牙,就可以获取到正确的值。 但是并不清楚蓝牙明明开着,为什么获取本机蓝牙适配器的状态为false - 预期表现 在苹果手机蓝牙开着的状态下,wx.getBluetoothAdapterState调用成功后返回的res.available的值为true - 复现路径 - 提供一个最简复现 Demo 这个与代码无关,就是苹果手机蓝牙开着但长久不用的情况下 API调用成功的返回值很迷
2018-10-25