在 iOS 中添加发送 SMS 的延迟

Posted

技术标签:

【中文标题】在 iOS 中添加发送 SMS 的延迟【英文标题】:Adding delay in sending SMS in iOS 【发布时间】:2012-02-24 14:21:33 【问题描述】:

我正在开发一个应用程序,它会定期向选定的联系人发送 SMS 指定的次数。我可以使用 SMS 发送功能,但我需要在每轮发送 SMS 之间添加延迟。

例如,如果我想在我的通讯录中向 S 和 D 发送一条消息 M,我需要应用程序等待 N 秒,然后再向 S 和 D 发送相同的消息。

我怎样才能让它工作?如何在发送消息给联系人之间添加延迟功能?

提前致谢!

【问题讨论】:

【参考方案1】:

简单地说,你不能。 不允许自己发送消息,只能弹出短信显示器,用户自己必须点击“发送”。 因此,如果在应用程序中以编程方式进行,这是不可能的。 如果您使用服务器或其他东西发送短信,这可能是可能的..

【讨论】:

【参考方案2】:

是否可以将 NSTimer 设置为以特定时间间隔运行特定次数,并在关闭后让您的应用在后台运行?

做一个计时器:

int N = 3;

_myTimer = [NSTimer scheduledTimerWithTimeInterval:N target:self selector:@selector(myMethod) userInfo:myContact repeats:YES];


-(void)myMethod:(NSTimer*)timer 
    // Now I can access all the properties and methods of myObject
    [[timer userInfo] myObjectMethod];

在后台运行我不太熟悉,但是如果你开始寻找 beginBackgroundTaskWithExpirationHandler: 我相信你会找到你需要的答案。

希望这会有所帮助,祝你好运!

【讨论】:

【参考方案3】:

好吧,如果您想出了 SMS 发送功能,那么您只需要:

[self performSelector:@selector(sendSMS) withObject:nil afterDelay:5.0];

这是如果您的 SMS 数据位于 model 中的某个位置。如果您需要将一些数据发送到您的 sendSMS 方法,请使用:

[self performSelector:@selector(sendSMS:) withObject:objectData afterDelay:5.0];

【讨论】:

虽然没有明确说明,但我认为这个问题与以编程方式发送短信有关,无需任何用户干预。这仍然需要有人点击“发送” 嗯,为什么这需要有人点击“发送”?通过 sendSMS 方法输入 OP 已有的用于发送 SMS 的方法。 因为他们已有的发送短信的方法需要您点击“发送”。如果用户不点击“发送”,您将无法发送短信(除非您从服务器发送)

以上是关于在 iOS 中添加发送 SMS 的延迟的主要内容,如果未能解决你的问题,请参考以下文章

发送文本代码 phonegap ios

阿里大鱼短信发送接口开发

通过 zapier 发送 vcard 时如何解决 Twilio SMS 发送错误

IOS - 触发 SMS 消息作为警报(自动发送单个用户预定义的 SMS 消息)

发送带有 php 链接的短信

尝试向 jQuery AJAX 请求添加延迟