如何直接在 iPhone 中将 OTP 从用户的消息框填充到应用程序? [复制]
Posted
技术标签:
【中文标题】如何直接在 iPhone 中将 OTP 从用户的消息框填充到应用程序? [复制]【英文标题】:How to populate OTP from user's message box to application directly in iPhone? [duplicate] 【发布时间】:2014-01-21 00:19:53 【问题描述】:我正在开发一个互联网交易应用程序,它的移动和 iPhone 应用程序都可用。随着最近的市场趋势,我们正在努力包括两因素身份验证。为此,我们将在用户注册的手机号码上以短信形式发送一次性密码。
有没有办法让 OTP 从 iPhone 中的用户消息框自动填充到应用程序中?我应该使用什么算法让我的应用读取用户的消息框?
提前致谢:)
【问题讨论】:
该问题不包含有效且有用的答案。 在什么方面有效且有用?确认无法以编程方式读取短信。 @rckoenes 建议您可以期待的其他方式 网站上的可能答案建议首先越狱 ios。越狱 iPhone 就像我的客户可能会或可能不会做的特权升级。我不能要求我的客户强制越狱他的手机,以使我的应用程序在其上顺利运行。 因此,我们在 SO 上有越狱标签,您也可以在问题中指定您也对越狱的可能性持开放态度。我建议possible duplicate
不要重复。
好吧,是的,同意,但我只是想告诉你,我正在寻找更可行的选项,然后在可能的副本中提出建议。另外,我没有使用越狱标签,也没有使用该术语,所以我想补充一下,我不喜欢玩终端客户的手机。我希望我现在清楚了。
【参考方案1】:
您可以从您的应用访问短信。所以最好让用户输入他的联系号码并将短信发送到他的手机
-(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;
【讨论】:
LoadLog(免费应用程序) 我开发的应用程序的全部信息将仅通过 SMS 发送。该应用程序没有使用任何服务器 用户已经在他的手机上收到了一条短信,但我想为他简化这个过程。 OTP 应在用户收到短信时自动填充。 @Yasha 这就是我所说的 OTP 将仅发送到 SMS(移动设备的唯一和最好的方式),您可以访问它们。你期待的不是短信吗? 是的,我期待一个可能性,如果用户在收到短信的同一部手机上使用应用程序,应用程序应该能够自动从该短信读取 OTP并将其直接放在应用程序上。这是为了减少用户最小化应用程序,阅读短信然后回到应用程序进入OTP的工作。 这是可以做到的。我在 LoadLog 应用程序中使用相同,但 SMS 将由管理员发送。【参考方案2】:您无法访问用户的短信收件箱,这将是一个真正的隐私问题。
你可以做的是注册你自己的应用架构,你的应用就可以打开了。您可以执行myApp://register/<OTP>
之类的操作,然后您可以获取此 URL 并从 URL 中获取 OTP 并使用它。只需在您的 SMS 中使用 URL,其余的一切由 iOS 完成。
您可以在您的应用委托中解析- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
中的应用网址。
【讨论】:
谢谢,但我从另一条评论中了解到,收件箱是沙盒的,会不会造成麻烦? 还有,这在安卓手机上能用吗? 不,这不会造成任何麻烦,是的,您可以在 android 上使用相同的应用 URL。 非常感谢,我会测试它并返回论坛。 嗨,有这 1 个混淆。我已经向用户发送了 OTP 的短信,我应该将 myApp://register/直接回答NO
目前无法以编程方式读取 SMS,因为 iOS 中的应用程序是 sandboxed
,这意味着您无法在应用程序之外从用户手机中读取任何内容。
【讨论】:
以上是关于如何直接在 iPhone 中将 OTP 从用户的消息框填充到应用程序? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iphone 应用程序开发中将数据从版本保存到版本?
在 iPhone 中将视图从纵向切换到横向,就像 iPhone 中的计算器一样