繁体   English   中英

在没有用户互动iPhone的情况下发送短信

[英]Send sms without user Interaction iPhone

我看到了一个名为“ Glympse”的应用程序。 在此应用程序中,短信是在没有用户交互的情况下发送的,这对于iPhone是不可能的。 我在设备日志中显示了“ Glympse”应用程序调用mfmessagecontroller。

Jul 10 16:24:13 unknown Glympse[3004] <Warning>: GlympseAppDelegate::sendViaSMSWithMessage:toRecipient:withDelegate:
Jul 10 16:24:13 unknown Glympse[3004] <Warning>: 0
Jul 10 16:24:13 unknown Glympse[3004] <Warning>: presentModalViewController
Jul 10 16:24:14 unknown Glympse[3004] <Warning>: messageComposeViewController:didFinishWithResult:
Jul 10 16:24:14 unknown CommCenter[57] <Notice>: queuing sms message with id 584
Jul 10 16:24:14 unknown SpringBoard[52] <Error>: mms: queued messageId 584

在我的应用程序中,我也需要它,那么我该如何实现呢?

提前致谢。

使用MFMessageComposerViewController ,如果没有用户交互就无法发送。

您必须采用SMS网关并实现自己的发送SMS的方式,这是不可能的。 就像您必须创建Web服务并从iPhone接受参数(例如电话号码和消息),然后使用SMS网关发送SMS一样。

希望这可以帮助。

Glympse不发送SMS,而是向其服务器启动Web请求。 服务器具有SMS引擎,它根据请求中的参数发送SMS。 否则无法实现此功能。

更新 :以下答案仅与iOS 5.1及更早版本相关。 看来Apple阻止了该行为在iOS 6中运行,实际上Glympse已恢复为他们以前的通过用户交互发送文本的策略。

玩Glympse可以确认ios在问题中描述的行为。 尽管Glympse在无法直接从设备发送文本时会使用其自己的服务器生成SMS消息,但只要具备该功能,它就会从设备(使用iMessage或SMS)直接发送文本。 您可以通过发送一个请求,然后在消息历史记录中看到生成的文本消息来验证这一点。

即使MFMessageComposeViewController看起来需要用户交互,但Glympse留下的日志消息非常强烈地暗示他们正在使用它并禁止UI。 我进行了实验,发现以相同的方式执行操作并不是很困难:我只是替换了MFMessageComposeViewController的视图(以避免显示UI),然后在调用presentViewController之后,将计时器事件设置为在控制器被触发后触发启动并运行。 计时器事件向控制器发送了一条send:消息,该消息模拟用户单击“发送”按钮。

我无法回答的是,这是否遵循iOS开发者计划许可协议的条款-它可能与“以Apple规定的方式使用文档化的API”(3.3.1)或一般性的“请勿干涉”相冲突。苹果试图向用户提供警告”(3.3.14)。 Glympse出于用户的利益利用了这种行为-很明显,它可以改善用户体验,并避免在用户不知情/同意的情况下发送消息。 我也想利用这种行为。 但是您还可以看到,这种行为可能被不道德的应用程序用来冒充用户,发送垃圾邮件等。如果这成为普遍做法,Apple可能会开始寻找这种行为并拒绝使用该行为的应用程序(甚至Glympse都必须这样做)。删除行为)。

我发现执行此操作的方法在这里: https://github.com/0xced/Stealth-Messenger : https://github.com/0xced/Stealth-Messenger

但是您可以让开发人员清楚地说:

不使用! 这些东西仅用于教育目的,根本不适合App Store。

在底部。 但是,仅出于“教育目的”,您可以检查一下。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM