录音的同时,通过touchmove触发的setData感觉被阻塞了,界面上无效果
2019-03-24 23:18:09
微信公开课小程序热议问题「录音的同时,通过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_that=this;_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.hander=setTimeout(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.now==0){that.end(pageCxt);}console.log(that.now);},1000);}else{that.init();}},init:function(){this.now=this.cnt;if(this.hander){clearTimeout(this.hander);}}}//录音的varlastVoiceRecordTmpPath;varwillUploadVoice=false;functionrecordVoice(){var_this=this;willUploadVoice=false;wx.startRecord({success:function(res){console.log(res);varlastVoiceRecordTmpPath=res.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);varid=e.target.id;if(id==voicebtn){recordVoice.apply(this);moveUpJudge.init();moveUpJudge.setP(begin,e);}}//下面是mousemove的//moveUpJudge.judge()只是判断一个跟起始点的距离functiontouchmove(e){//console.log(touchmove,arguments);var_that=this;if(moveUpJudge.isBegin()){moveUpJudge.setP(end,e);if(moveUpJudge.judge()){//变色if(willcancel==false){willcancel=true;_that.setData({willcancel:willcancel});}}else{if(willcancel==true){willcancel=false;_that.setData({willcancel:willcancel});}}}}
更多有关录音的同时,通过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_that=this;_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.hander=setTimeout(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.now==0){that.end(pageCxt);}console.log(that.now);},1000);}else{that.init();}},init:function(){this.now=this.cnt;if(this.hander){clearTimeout(this.hander);}}}//录音的varlastVoiceRecordTmpPath;varwillUploadVoice=false;functionrecordVoice(){var_this=this;willUploadVoice=false;wx.startRecord({success:function(res){console.log(res);varlastVoiceRecordTmpPath=res.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);varid=e.target.id;if(id==voicebtn){recordVoice.apply(this);moveUpJudge.init();moveUpJudge.setP(begin,e);}}//下面是mousemove的//moveUpJudge.judge()只是判断一个跟起始点的距离functiontouchmove(e){//console.log(touchmove,arguments);var_that=this;if(moveUpJudge.isBegin()){moveUpJudge.setP(end,e);if(moveUpJudge.judge()){//变色if(willcancel==false){willcancel=true;_that.setData({willcancel:willcancel});}}else{if(willcancel==true){willcancel=false;_that.setData({willcancel:willcancel});}}}}
更多有关录音的同时,通过touchmove触发的setData感觉被阻塞了,界面上无效果的小程序开发问题勤请扫码关注微信公开课小程序参与讨论!
标签:小程序,微信小程序
「录音的同时,通过touchmove触发的setData感觉被阻塞了,界面上无效果」热议问题订阅
方法1:微信扫描微信公开课小程序码即可订阅热议问题「录音的同时,通过touchmove触发的setData感觉被阻塞了,界面上无效果」
方法2:微信搜索微信公开课小程序名称进入,即可订阅热议问题「录音的同时,通过touchmove触发的setData感觉被阻塞了,界面上无效果」
方法3:微信网页访问即速商店,长按识别微信公开课小程序码即可订阅热议问题「录音的同时,通过touchmove触发的setData感觉被阻塞了,界面上无效果」
微信公开课小程序热议问题「录音的同时,通过touchmove触发的setData感觉被阻塞了,界面上无效果」由微信公开课原创摘录于微信小程序商店shop.jisuapp.cn,转载请注明出处。
微信公开课热议问题「录音的同时,通过touchmove触发的setData感觉被阻塞了,界面上无效果」由微信公开课开发者向微信用户提供,并对本服务内容、数据资料及其运营行为等真实性、合法性及有效性承担全部责任。
微信公开课小程序
更新时间:2019-03-24 23:18:09
>
__methodCallerx27;ofundefined
>-404011cloudfunctionexecutionerror
>,请补充选择商家自营-预付卡销售-发行方类目,并在基础信息处申请该类目,通过
>:host在模拟器中显示无效
>:请在小程序服务页面上架正式(非测试)内容或商品后重新提交审核
>.net 微信小程序 上传图片
>'setTimeout'的问题
>‘三朵里熙SPA主题减压空间’为什么搜索关键词‘三朵里‘搜不到
>‘扫普通链接二维码打开小程序‘中设置为体验版,扫码打开是线上版本
>“cloudfunctions**indexjs”gitignore
>“NO ULINK DEVICE FOUND”是怎么回事
>“万马掌上校园”的类目审核
>“上线了”公司开发的微信小程序怎么样?
>“产品是否一定需要条形码”
>