我们怎样才能将validation码整合到iOS应用程序中?

我search整合Captcha在iOS应用程序,但没有find任何相关的方式来这样做。 即使我注册了reCAPTCHA并且search了Captcha的插件是否适用于iOS? 我没有find任何iOS的插件。 在RND的某个地方,我知道“它不需要移动应用程序”,但客户想要在他的应用程序中inputvalidation码,所以我想知道: –

  • 我们是否可以将validation码整合到iOS应用程序/移动应用程序中: –

    1. 如是? 那么整合它的相关方法是什么呢?

    2. 如果不? 那么有什么相关的原因。

据我所知,CAPTCHA机制是用来防止机器人注册/使用/发送垃圾邮件的一些服务或网站。 使用CAPTCHA,你确保用户是一个真实的人,而不是一个机器人。

原生应用程序与网站并不相同,我也没有听说有任何机器人与原生应用程序做同样的工作。 因此,你可以(也许应该)假设你的应用程序的所有用户确实是真实的人,不需要渲染CAPTCHA系统。

虽然我们在iOS上没有任何Captcha的API,但是即使是reCaptcha也没有提供iOS的任何插件 。 甚至很多人都build议我不需要为移动应用程序实现validation码。 我同意了,但由于客户无法听取我所做的任何借口,

  1. 只是我创build了随机数使用

    -(NSInteger)randomIntBetween:(NSInteger)min and:(NSInteger)max { return (NSInteger)(min + arc4random_uniform(max + 1 - min)); }

    将该号码放在标签上,并要求用户在提供的textField中input相同的号码,如果发现匹配,则validation码的主体已完成[另一端的用户是人是唯一一个集成validation码的主体],其他明智的我重新生成随机数并将其放在标签上,要求用户在提供的textField中input相同的数字。
    最终结果将是这样的。

它会看起来像这样的东西

现在想法可能会更清楚,只要将函数“randomIntBetween”的输出分配给显示数字的标签,并且当用户按下loginbutton时,validationtextField中的文本(Named:Enter号码)与其左侧的标签相匹配,如果匹配则允许用户login,如果不是则清除,然后文本字段的文本以及标签上的文本,然后通过调用方法“ randomIntBetween:“并要求用户在input号码文本字段中input文本。

虽然在某些应用程序中不需要添加Captcha,但由于应用程序不像Web一样,所以按照我的想法,在某些应用程序中不需要附加Captcha来阻止漫游器,但是如果需要embedded它, ..是的,这是可能的方法,请检查以下代码:

拿这些网点和变数:

 NSArray *arrCapElements; IBOutlet UILabel *Captcha_label; IBOutlet UITextField *Captcha_field; IBOutlet UILabel *Status_label; 

IBActions为:

 - (IBAction)Reload_Action:(id)sender; - (IBAction)Submit_Action:(id)sender; 

在故事板中,为Captcha_labelselect字体名称为Chalkduster 30.0

现在在viewDidLoad()分配arrCapElements

 arrCapElements = [[NSArray alloc]initWithObjects:@"0",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",@"i",@"j",@"k",@"l",@"m",@"n",@"o",@"p",@"q",@"r",@"s",@"t",@"u",@"v",@"w",@"x",@"y",@"z",@"A",@"B",@"C",@"D",@"E",@"F",@"G",@"H",@"I",@"J",@"K",@"L",@"M",@"N",@"O",@"P",@"Q",@"R",@"S",@"T",@"U",@"V",@"W",@"X",@"Y",@"Z", nil]; 

加载validation码的代码:

 -(void)load_captcha{ @try { CGFloat hue = ( arc4random() % 256 / 256.0 ); // 0.0 to 1.0 CGFloat saturation = ( arc4random() % 128 / 256.0 ) + 0.5; // 0.5 to 1.0, away from white CGFloat brightness = ( arc4random() % 128 / 256.0 ) + 0.5; // 0.5 to 1.0, away from black Captcha_label.backgroundColor = [UIColor colorWithHue:hue saturation:saturation brightness:brightness alpha:1]; //Captcha_label.textColor=[UIColor colorWithHue:hue saturation:saturation brightness:brightness alpha:1]; NSUInteger elmt1,elmt2,elmt3,elmt4,elmt5,elmt6; elmt1 = arc4random() % [arrCapElements count]; elmt2= arc4random() % [arrCapElements count]; elmt3 = arc4random() % [arrCapElements count]; elmt4 = arc4random() % [arrCapElements count]; elmt5 = arc4random() % [arrCapElements count]; elmt6 = arc4random() % [arrCapElements count]; NSString *Captcha_string = [NSString stringWithFormat:@"%@%@%@%@%@%@",arrCapElements[elmt1-1],arrCapElements[elmt2-1],arrCapElements[elmt3-1],arrCapElements[elmt4-1],arrCapElements[elmt5-1],arrCapElements[elmt6-1]]; //NSLog(@" Captcha String : %@",Captcha_string); Captcha_label.text = Captcha_string; } @catch (NSException *exception) { NSLog(@"%@",exception); } } 

重新加载动作:

 - (IBAction)Reload_Action:(id)sender { [self load_captcha]; } 

检查captcha是否正确:

 - (IBAction)Submit_Action:(id)sender { NSLog(@"%@ = %@",Captcha_label.text,Captcha_field.text); if([Captcha_label.text isEqualToString: Captcha_field.text]){ [self.view endEditing:YES]; Status_label.text =@"Success"; Status_label.textColor = [UIColor greenColor]; }else{ Status_label.text =@"Faild"; Status_label.textColor = [UIColor redColor]; } } 

它会显示像这样:

演示屏幕

来自以下方面的帮助: iOS的Captcha Generator