我正在开发一个提供移动和 iPhone 应用程序的互联网交易应用程序。随着最近的市场趋势,我们正在努力包括两因素身份验证。为此,我们将在用户注册的手机号码上以短信形式发送一次性密码。
有没有办法,OTP 可以从 iPhone 中的用户消息框自动填充到应用程序中?我应该使用什么算法让我的应用程序读取用户的消息框?
提前致谢:)
我正在开发一个提供移动和 iPhone 应用程序的互联网交易应用程序。随着最近的市场趋势,我们正在努力包括两因素身份验证。为此,我们将在用户注册的手机号码上以短信形式发送一次性密码。
有没有办法,OTP 可以从 iPhone 中的用户消息框自动填充到应用程序中?我应该使用什么算法让我的应用程序读取用户的消息框?
提前致谢:)
直截了当的回答NO
到目前为止,还不能像 iOS 中的应用程序那样以编程方式读取 SMS sandboxed
,这意味着您无法在应用程序之外从用户手机中读取任何内容。
您无法访问用户的短信收件箱,这将是一个真正的隐私问题。
您可以做的是注册您自己的应用程序架构,您的应用程序可以打开。您可以执行类似的操作myApp://register/<OTP>
,然后您可以获取此 URL 并从 URL 中获取 OTP 并使用它。只需在您的 SMS 中使用 URL,其余的一切由 iOS 完成。
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
您可以在应用程序委托中解析应用程序 URL 。
您可以从您的应用程序访问短信。所以最好让用户输入他的联系号码并将短信发送到他的手机
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
if (!url) {
UIApplication * yourapplication =[UIApplication sharedApplication];
NSString *outputpath =@"appname://data/";
NSURL *url =[NSURL URLWithString:outputpath];
[yourapplication openURL:url];
return NO;
}
NSUserDefaults *defaultString =[NSUserDefaults standardUserDefaults];
NSString * commonString =[url absoluteString];
if (commonString.length<=15) {
//
}
else
{
[defaultString setObject:commonString forKey:@"urlString"];
}
//send info to the screen you need and can navigate
return YES;
}