这几天我一直在试图弄清楚这个问题的真相。由于某些原因,mozmobilemessage 函数似乎无法与 setIntervals 一起正常工作(使用 KaiOS 2.5 应用程序上的脚本)。下面的代码(其中手机号码作为应用程序的一部分被捕获)仅向手机发送一条短信。知道如何解决这个问题吗?我希望在设定的时间间隔内以设定的时间间隔发送消息:
let timerId = setInterval(navigator.mozMobileMessage.send(mobileNumberInput.value, "Hello"), 10000);
setTimeout(() => {clearInterval(timerId);}, 40000);
我尝试在下面的代码中分别调用 mozmobilemessage 几次,以检查这是否与某些功能限制有关。但是在代码中手动调用该函数可以正常工作,并且可以根据调用该函数的次数发送短信:
navigator.mozMobileMessage.send(mobileNumberInput.value, "Hello");
navigator.mozMobileMessage.send(mobileNumberInput.value, "Hello");
navigator.mozMobileMessage.send(mobileNumberInput.value, "Hello");
您正在将无效参数传递给
setInterval
函数。
通过简写,您可以将此语法用于
setInterval
和 setTimeout
setInterval(function_name,delay,...parameters_for_function_to_called);
解释
第一个参数是一个函数名,你不必一开始就调用它,定时器会为你做的。
第二个参数显然是以秒为单位的延迟。
最后剩下的传递的
parameters
是第一个传入的函数的 arguments
parameter
。
举例来说,我有以下功能
function sendMessage(number,message){
console.log(number, message);
}
const interval = setInterval(sendMessage,1000,1234567890,'hello');
setTimeout(clearInterval,2000,interval);
.as-console-wrapper { max-height: 100% !important; }
在你的情况下会像
const timerId = setInterval(navigator.mozMobileMessage.send,10000,mobileNumberInput.value, "Hello");
setTimeout(() => {clearInterval(timerId);},