如何在用户的消息框中直接在iPhone中填充OTP?

我正在使用其移动和iPhone应用程序的互联网交易应用程序。 随着最近的市场趋势,我们正在努力包括双因素authentication。 为此,我们将在用户的注册手机号码上发送一次性短信作为短信。

有没有办法,OTP可以从iPhone的用户消息框中自动填充到应用程序中? 我应该使用什么algorithm让我的应用程序读取用户的消息框?

提前致谢:)

你可以从你的应用程序访问短信。 所以最好让用户input他的联系电话号码并发送短信给他的手机

 -(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; } 

您无法访问用户的SMS收件箱,这将是一个真正的隐私问题。

你可以做的是注册自己的应用程序架构,您的应用程序可以打开。 您可以执行诸如myApp://register/<OTP> ,然后您可以选取此URL并从URL中取出OTP并使用它。 只需使用您的短信中的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

直接回答NO

由于iOS中的应用程序是sandboxed ,所以不可能以编程方式读取SMS,这意味着您无法从应用程序之外的用户手机读取任何内容。

Interesting Posts