小程序录音的同时,通过touchmove触发的setData感觉被阻塞了,界面上无效果

微信小程序,微信公开课,小程序录音的同时,通过touchmove触发的setData感觉被阻塞了,界面上无效果 微信公开课

如何看待微信公开课小程序热门讨论「小程序录音的同时,通过touchmove触发的setData感觉被阻塞了,界面上无效果」
摘要:小程序录音的同时,通过touchmove触发的setData感觉被阻塞了,界面上无效果
展开:机型(如iPhone6splus)华为的meta8操作系统(如iOS9.3)没试过是否必现是问题描述(具体问题介绍)用作尝试,写了一个类似聊天对话的东西按住后可以录音,然后会有倒计时,通过setData设置,touchmove上滑一定距离还会改变class从而变色,然后松开取消录音。开发者工具里面没什么问题。但是真机测试的情况是,录音正常,也能通过上滑取消录音。但是一旦触发touchmove之后,虽然console.log可以看到计时器一直在减,但是setData设置的,界面上不体现效果(变色跟数字改变都没用),感觉就像被阻塞了一样,送开的一瞬间该有的setData又触发了。不touchmove的时候,它在正常倒计时,比如计到58,一旦手指move了,哦霍,就不动了,如果console.log打印每一秒,发现还是在打印,但是界面上就卡死了实际状况不好截图,所以做如上描述,刚刚看了今天(20161221)更新日志,很赞,但是这部分还是是这样的。代码片段截图touch事件我都是绑在最上层的元素,然后与那个读秒的提示框是并列关系,之前是包含关系也还是一样的。下面是部分代码://计时器varcounter{cnt:60,now:60,hander:undefined,begin:function(pageCxt){var_thatthis;_that.now_that.cnt;_that.oneSecond(_that,pageCxt);},end:function(pageCxt){sendVoice.apply(pageCxt);},oneSecond:function(that,pageCxt){console.time(t);if(that.now0){that.handersetTimeout(function(){console.log()console.timeEnd(t);that.now;that.oneSecond(that,pageCxt);if(that.now60){pageCxt.setData({voiceHintLimit:还可以说+that.now+秒});}else{pageCxt.setData({voiceHintLimit:});}if(that.now0){that.end(pageCxt);}console.log(that.now);},1000);}else{that.init();}},init:function(){this.nowthis.cnt;if(this.hander){clearTimeout(this.hander);}}}//录音的varlastVoiceRecordTmpPath;varwillUploadVoicefalse;functionrecordVoice(){var_thisthis;willUploadVoicefalse;wx.startRecord({success:function(res){console.log(res);varlastVoiceRecordTmpPathres.tempFilePath;console.log(lastVoiceRecordTmpPath);if(willUploadVoice){voiceupload({path:lastVoiceRecordTmpPath,uid:1234567890,seconds:willUploadVoice.seconds},_this);}},fail:function(res){wx.showToast({title:录音失败});}})this.setData({recordVoiceBtnText:松开结束,showHint:true,willcancel:false});counter.init();counter.begin(this);}//录音的touch事件functiontouchstart(e){console.log(touchstart,arguments);varide.target.id;if(idvoicebtn){recordVoice.apply(this);moveUpJudge.init();moveUpJudge.setP(begin,e);}}//下面是mousemove的//moveUpJudge.judge()只是判断一个跟起始点的距离functiontouchmove(e){//console.log(touchmove,arguments);var_thatthis;if(moveUpJudge.isBegin()){moveUpJudge.setP(end,e);if(moveUpJudge.judge()){//变色if(willcancelfalse){willcanceltrue;_that.setData({willcancel:willcancel});}}else{if(willcanceltrue){willcancelfalse;_that.setData({willcancel:willcancel});}}}}了解更多

「小程序录音的同时,通过touchmove触发的setData感觉被阻塞了,界面上无效果」热门讨论订阅

微信小程序,微信公开课,小程序录音的同时,通过touchmove触发的setData感觉被阻塞了,界面上无效果
订阅小程序

方法1:微信扫描微信公开课小程序码即可订阅热门讨论「小程序录音的同时,通过touchmove触发的setData感觉被阻塞了,界面上无效果」

方法2:微信搜索微信公开课小程序名称进入,即可订阅热门讨论「小程序录音的同时,通过touchmove触发的setData感觉被阻塞了,界面上无效果」

方法3:微信网页访问即速商店,长按识别微信公开课小程序码即可订阅热门讨论「小程序录音的同时,通过touchmove触发的setData感觉被阻塞了,界面上无效果」

微信公开课小程序热门讨论「小程序录音的同时,通过touchmove触发的setData感觉被阻塞了,界面上无效果」由微信公开课原创摘录于微信小程序商店shop.jisuapp.cn,转载请注明出处。

微信公开课热门讨论「小程序录音的同时,通过touchmove触发的setData感觉被阻塞了,界面上无效果」由微信公开课开发者向微信用户提供,并对本服务内容、数据资料及其运营行为等真实性、合法性及有效性承担全部责任。