需要一些帮助来弄清楚为什么 Mozmobilemessage(SMS) 功能不能与 setinterval 一起使用来向手机发送预定短信

问题描述 投票:0回答:1

这几天我一直在试图弄清楚这个问题的真相。由于某些原因,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");
javascript sms settimeout setinterval kaios
1个回答
0
投票

您正在将无效参数传递给

setInterval
函数。

通过简写,您可以将此语法用于

setInterval
setTimeout

setInterval(function_name,delay,...parameters_for_function_to_called);

解释

  1. 第一个参数是一个函数名,你不必一开始就调用它,定时器会为你做的。

  2. 第二个参数显然是以秒为单位的延迟。

  3. 最后剩下的传递的

    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);},
© www.soinside.com 2019 - 2024. All rights reserved.