在iOS中阅读短信信息

29

我是一名iOS开发者,尝试使用自动激活功能构建移动应用程序,我找到了多种读取短信的方法,但只能使用私有API,这将导致苹果拒绝我的应用程序。我有两个问题,希望得到任何有帮助的反馈。

  1. 在iOS平台上,有没有不会面临苹果拒绝的情况下读取短信的方法?
  2. 是否可以提供相关章节的苹果开发者文档,描述在iOS平台上不允许读取短信?

你能提供私有API的链接吗? - Piyush Verma
你好,你能告诉我关于这个私有API的情况吗? - Durgaprasad
6个回答

30
  1. 不,无法读取短信。由于隐私问题,苹果非常严格。
  2. 登录开发者门户并单击App Store审核指南

在指南中没有明确说明您不能访问短信。但是,如果您使用私有方法,则只能访问,这是不允许的,并将使您的应用被拒绝。

您只能访问苹果提供文档化API的数据。除非苹果为其提供API,否则无法访问应用程序沙箱之外的文件。


你好,能否请您告诉我关于这个 API 的信息? - Durgaprasad
1
他们使用蓝牙协议将手表与iOS注册以接收通知。您无法在自己的应用程序中访问它们。 - rckoenes
他们已经从苹果那里获得了许可吗?还是这是一个公共API? - Durgaprasad
1
@daylight 它确实提到您无法访问消息。但是我认为由于引入了iMessage应用程序,他们已经进行了更改。 - rckoenes
1
@Bawantha,他们没有,苹果没有公开API来读取短信。 - rckoenes
显示剩余11条评论

20

更新

iOS 12起,苹果公司已经支持在文本字段中读取安全码(OTP -一次性密码)。

oneTimeCode

指定单因素短信登陆代码的期望。

您可以自动完成来自单因素短信登录流程的安全码:

yourSingleFactorCodeTextField.textContentType = .oneTimeCode

iOS支持在UITextField、UITextView和任何采用UITextInput协议的自定义视图上进行密码自动填充。
{{警告}}
如果您为安全代码输入文本字段使用自定义输入视图,则iOS无法显示必要的自动填充UI。

Security Code Autofill


如果我使用Ionic或Flutter制作iOS应用程序,是否可以实现这一点?苹果是否允许发布包含此功能的应用程序? - undefined
苹果是否允许发布包含这一功能的应用程序?- 是的,这是苹果的专有功能。 @AliHaider - undefined

8

iOS 12开始,苹果将支持UITextFieldUITextView和任何采用UITextInput协议的自定义视图上的密码自动填充。系统键盘将在其上设置textContentType.oneTimeCode

  • 使用storyboard/XIB

storyboard/XIB中选择UITextField/UITextView,单击属性检查器。进入“文本输入特征”,点击内容类型,选择一次性代码并完成设置。

仅适用于系统键盘,因此避免使用自定义键盘。


更多信息,请参阅WWDC 2018 Session 204 - Automatic Strong Passwords and Security Code AutoFill,跳转至24:28进行自动填充OTP。

iPhoneX image


6

支持 - 自iOS 12起

Flow,自动填写iPhone上的短信密码 - https://support.apple.com/en-in/guide/iphone/iphc89a3a3af/13.0/ios/13.0

实施指南 - https://developer.apple.com/documentation/security/password_autofill/enabling_password_autofill_on_a_text_input_view

当您登录一些应用和网站时,会向您的iPhone发送一次性短信密码。作为一项安全措施,您需要将代码输入到应用程序或网站中。iPhone可以在短信中检测到密码,并在键盘上方显示它。

要使用密码,请点击它。

enter image description here


3

针对Swift 5:

iOS 12开始,苹果公司为文本字段提供了读取安全码(OTP-一次性密码)的支持。

if #available(iOS 12.0, *) {
               otpField.keyboardType = .default
               otpField.textContentType = .oneTimeCode
       } else {
               // Fallback on earlier versions

       }

或者您可以像下面这样从Storyboard中添加contentType:

输入图像描述


0

iOS系统上无法实现。苹果没有提供公共API来访问用户的信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接