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

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

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

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

提前致谢!

【问题讨论】:

    标签: iphone objective-c ios xcode sms


    【解决方案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 的方法。
        • 因为他们已有的发送短信的方法需要您点击“发送”。如果用户不点击“发送”,您将无法发送短信(除非您从服务器发送)
        猜你喜欢
        • 1970-01-01
        • 2021-08-15
        • 1970-01-01
        • 2013-09-22
        • 2018-04-11
        • 1970-01-01
        • 2018-01-19
        • 2011-04-27
        • 2021-12-08
        相关资源
        最近更新 更多