如何以编程方式读取iOS上的传入文本消息

Fab*_*ggi 8 sms ios notificationcenter

关于如何以编程方式访问存储在iPhone中的SMS消息,已经有很多问题.做一个小型研究,你会很快发现,由于明显的安全原因,Apple不会让开发人员触摸SMS API或SMS数据库.让我们把这个事实分开一会儿.

我拥有一辆配备了名为iDrive的梦幻"信息娱乐"系统的宝马车.就在最近,我意识到当我的iPhone连接到USB时,我实际上可以通过iDrive系统读取传入的短信.这真的很吸引我.在玩完汽车和手机配置之后,我终于发现iDrive实际上正在显示来自通知中心的短信.这意味着每次收到新消息时,它都会在锁定屏幕中显示为通知,并且汽车可以访问它,因为Notification Center具有公共API.一旦我从通知中删除了消息应用程序,我什么都没有回来.

正如您之前所想的那样,我还想创建一个可以监控传入文本消息的应用程序,并根据从邮件正文中扫描的关键字采取一些操作.

到现在为止,我真的倾向于转向Android以便让我自由,但是,看着显示传入短信的汽车让我看到隧道尽头的一些亮光.

有没有人知道如何构建可以从通知中心读取条目的iOS应用程序?我尝试了一些研究,但这似乎是一个广泛的问题,很难找到iOS通知中心的具体文档.

我应该提一下,我不是一个经验丰富的iOS开发人员,所以任何帮助都将非常感激.

顺便说一句 - 我无论如何都无法理解Apple官方文档支持.找到正在运行的应用程序的完整示例有点令人困惑.

谢谢您的帮助.法比奥

Hem*_*ore 5

在iOS 12中,Apple提供了读取SMS(OTP密码)的选项

如果系统可以从SMS消息中解析安全代码,则QuickType栏会在收到密码后最多显示三分钟。如果在选择文本输入视图时到达安全密码,则系统会将输入的密码推送到QuickType栏。

要测试不同语言的SMS代码格式,请给自己发短信。如果您收到带有下划线安全代码的消息,请点击该代码。如果出现“复制代码”选项,则系统已识别出您的代码。

iOS在UITextField,UITextView和任何采用UITextInput协议的自定义视图上支持密码自动填充。

您可以从单因素SMS登录流程自动完成安全代码

以编程方式

yourTextField.textContentType = .oneTimeCode
Run Code Online (Sandbox Code Playgroud)

情节提要/ XIB

在情节提要/ XIB中选择UITextField / UITextView,然后单击“属性”检查器。转到文本输入特征,单击“内容类型”,然后选择一次性代码并完成。

在此处输入图片说明

实施之前,请确保

  • 如果您将自定义输入视图用于安全代码输入文本字段,则iOS无法显示必要的自动填充UI。
  • 它仅适用于系统键盘。因此,请避免使用自定义键盘。


小智 2

官方 SDK 无法实现

您只能检查状态是否已更改。所以基本上如果你收到通知

  • @rayen-kamta 你能详细说明一下你的状态评论吗?例如,如果我不需要实际阅读消息的内容,而只需了解特定用户何时/是否向我发送了消息。这可能吗? (2认同)