在 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 的延迟的主要内容,如果未能解决你的问题,请参考以下文章
通过 zapier 发送 vcard 时如何解决 Twilio SMS 发送错误