为了账号安全,请及时绑定邮箱和手机立即绑定

急求!!!!移动端webview javascript timer切到后台后执行一段时间后自动停了感激不尽

急求!!!!移动端webview javascript timer切到后台后执行一段时间后自动停了感激不尽

潇潇雨雨 2019-09-19 22:18:46
问题描述移动端webview切到后台后,timer五分钟自动停了我们在做一个业务过程中,需要每隔一段时间去轮询业务里面的一个状态,只要状态没有到,就一直轮询下去,所以用了settimeout以下补充一点做过的工作注意:这里虽然是轮询,但是考虑到setInterval不能保证前面执行的回调已经执行完了,所以选择用了setTimeout,当然出现了这个问题之后我换了setInterval也一样,程序在轮询5分钟后,自动停了补充点业务知识我们这个是证券开户的双向视频-视频见证,就是视频连线,见证人(券商团队员工)、开户人两者之间的视频通话,由于这个过程要持续几分钟时间,直到见证人审核通过,在业务后台修改对应的状态,接口一直轮询到这个状态变更才会停止视频见证用户一般是手机app,里面内嵌H5页面见证人是pc//状态码,直到status=1,停止轮询letstatus=0lettimer=null;functionfun(){//请求接口,判断是否变化todoif(status==1){clearInterval(timer)todo}if(status==0){//10秒后改变状态码值clearInterval(timer)timer=setTimeout(()=>{fun()},10000)}}问题出现的环境背景及自己尝试过哪些方法目前只出现在华为Mate20手机中相关代码//请把代码文本粘贴到下方(请勿用图片代替代码)//状态码,直到status=1,停止轮询letstatus=0functionfun(){//请求接口,判断是否变化if(status==1){clearInterval(timer)}if(status==0){//10秒后改变状态码值clearInterval(timer)lettimer=setTimeout(()=>{fun()},10000)}}你期待的结果是什么?实际看到的错误信息又是什么?期待的结果就是,程序一直轮询下去,直到状态改变补充一点测试细节:假如延迟5秒执行,一般会在4分55秒停,就是说会在最后一次轮询到五分钟的时候,停止如果延时6秒执行,一般会在4分54秒自动停
查看完整描述

2 回答

?
胡说叔叔

TA贡献1804条经验 获得超8个赞

也许我上面问题描述的不够清晰,目前问题已初步得出结论。
这个问题是由于,当我们在webview进行双向视频的时候,
其实webview其实相当于进入了后台,华为手机系统默认webview进入后台5分钟后全部会被干掉,系统层面做的优化
,web端目前无法解决只能寄托于native层面。
                            
查看完整回答
反对 回复 2019-09-19
?
慕丝7291255

TA贡献1859条经验 获得超6个赞

用setInterval吧,setTimeout是延迟执行。
setInterval(()=>{
fun()
},5000)
fun(){
//...
}
                            
查看完整回答
反对 回复 2019-09-19
  • 2 回答
  • 0 关注
  • 320 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信