Я пытаюсь создать очень простое приложение, но это оказывается гораздо более сложной задачей, чем можно себе представить.
Мне нужно использовать простой пользовательский интерфейс с двумя основными текстовыми полями, UserName & PassWord (готово), и после нажатия кнопки входа в систему он входит в gmail (или любую корпоративную учетную запись Gmail) через https POST (я думаю, что весь доступ к gmail теперь осуществляется только через 'https') и простой пользовательский интерфейсзакрывается, и Safari открывается в папке «Входящие» (не в окне входа в систему).
Нет ли способа передать дескриптор сокета или некоторые данные cookie в Safari?Или даже написать временный файл, который можно передать в Safari в качестве параметра, чтобы открыть ..?
Я потратил около трех дней, пытаясь создать другие библиотеки с открытым исходным кодом, чего я, вероятно, не делаюдаже нужно, только чтобы получить стек ошибок сборки ...
Я даже не уверен, что правильные данные отправляются на сервер ...
Вот в основном то, что я 'У нас есть ... кто-нибудь с любыми идеями ...?
NSString *urlString = @"https://www.google.com/LoginAction2?service=mail";
// setting up the request object now
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];
NSString *contentType = [NSString stringWithFormat:@"application/x-www-form-urlencoded"];
[request addValue:contentType forHTTPHeaderField: @"Content-Type"];
NSMutableData *body = [NSMutableData data];
[body appendData:[[NSString stringWithFormat:@"action=https://www.google.com/LoginAction2?service=mail&"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Email="] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:userName] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"&"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Passwd="] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:passWord] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"&"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"continue=https://mail.google.com/&"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"PersistentCookie=yes&"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"signIn=\"Sign in\"&"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"media="] dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:body];
NSString *msgLength = [NSString stringWithFormat:@"%d", [body length]];
[request addValue: msgLength forHTTPHeaderField:@"Content-Length"];
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
[pool release];
URLWithString:@"https://mail.google.com/"]];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: returnString]];