KaiOS 2.5中mozMobileMessage与setInterval定时SMS发送异常求助
问题修复:KaiOS 2.5中setInterval调用mozMobileMessage.send仅发送一条短信
核心问题出在你的setInterval调用方式上:你直接执行了navigator.mozMobileMessage.send()并将其返回值传给setInterval,而非传入一个待执行的回调函数。这导致只有页面首次执行时发送了一条短信,后续的间隔周期没有触发任何发送逻辑。
修复后的代码
let timerId = setInterval(() => { navigator.mozMobileMessage.send(mobileNumberInput.value, "Hello"); }, 10000); setTimeout(() => { clearInterval(timerId); }, 40000);
原因说明
- 手动调用时,你是直接多次执行
send函数,每次调用都会触发短信发送,因此正常工作。 setInterval的第一个参数需要是函数引用,当你写navigator.mozMobileMessage.send(...)时,代码会立即执行这个函数,并把执行结果(通常是异步Promise或undefined)传给setInterval,后续的间隔周期没有可执行的函数,自然不会再发送短信。- 用箭头函数包裹
send调用后,setInterval会每隔10秒执行一次这个箭头函数,每次执行都会调用send发送短信,直到40秒后被clearInterval终止。
内容的提问来源于stack exchange,提问作者waj
相关产品推荐
相关产品推荐

