Я загрузил пример приложения evernote с сайта evernote для Iphone. Sdk.i интегрировал его с моим приложением. Я могу сохранить заметку в evernote и импортировать обратно, но единственной проблемой является отсутствие формы входа в систему. Имя пользователя и пароль хранятся статически. в примере приложения. я не знаю, как аутентифицировать это динамически. он использует синглтон дизайн.
in.h
extern NSString * const username;
extern NSString * const password;
@interface evernoteloginpage : UIViewController {
.m
NSString * const username = @"nips55";
NSString * const password = @"annyan555";
@implementation evernoteloginpage
но мне это нужно динамически, у меня есть два текстовых файла и кнопка входа. Мне нужно добавить текстовые значения в имя пользователя и пароль. Я много пробовал, но не повезло. Если кто-нибудь знает, как добавить форму входа для evernote, пожалуйста, помогите мне.
заранее спасибо.
РЕДАКТИРОВАТЬ
теперь я успешно авторизируюсь с помощью этого кода, но опять же проблема в том, что, если авторизация будет успешной, он будет перенаправлен на следующую страницу, как показано в коде, если пользователь введет неправильное имя пользователя или пароль, приложение рухнет. исправление ошибок в этом коде.
-(IBAction)_clickevernotelogin:(id)sender
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
// Keep this key private
NSString *consumerKey = [[[NSString alloc]
initWithString: @"app" ] autorelease];
[[NSUserDefaults standardUserDefaults] setObject:consumerKey forKey:@"consumerkeyevrnote"];
NSString *consumerSecret = [[[NSString alloc]
initWithString: @"12345678"] autorelease];
// For testing we use the sandbox server.
NSURL *userStoreUri = [[[NSURL alloc]
initWithString: @"https://www.evernote.com/edam/user"] autorelease];
NSString *noteStoreUriBase = [[[NSString alloc]
initWithString: @"https://www.evernote.com/edam/note/"] autorelease];
// These are for test purposes. At some point the user will provide his/her own.
NSString *username = [[[NSString alloc]
initWithString: _txtevernoteUsername.text] autorelease];
NSString *password = [[[NSString alloc]
initWithString: _txtevernotepasswrd.text] autorelease];
[[NSUserDefaults standardUserDefaults] setObject:_txtevernoteUsername.text forKey:@"usernameevernote"];
[[NSUserDefaults standardUserDefaults] setObject:_txtevernotepasswrd.text forKey:@"passwrdevernote"];
THTTPClient *userStoreHttpClient = [[[THTTPClient alloc]
initWithURL:userStoreUri] autorelease];
TBinaryProtocol *userStoreProtocol = [[[TBinaryProtocol alloc]
initWithTransport:userStoreHttpClient] autorelease];
EDAMUserStoreClient *userStore = [[[EDAMUserStoreClient alloc]
initWithProtocol:userStoreProtocol] autorelease];
EDAMNotebook* defaultNotebook = NULL;
BOOL versionOk = [userStore checkVersion:@"Cocoa EDAMTest" :
[EDAMUserStoreConstants EDAM_VERSION_MAJOR] :
[EDAMUserStoreConstants EDAM_VERSION_MINOR]];
if (versionOk == YES)
{
EDAMAuthenticationResult* authResult =
[userStore authenticate:username :password
:consumerKey :consumerSecret];
EDAMUser *user = [authResult user];
NSString *authToken = [authResult authenticationToken];
NSLog(@"Authentication was successful for: %@", [user username]);
NSLog(@"Authentication token: %@", authToken);
NSURL *noteStoreUri = [[[NSURL alloc]
initWithString:[NSString stringWithFormat:@"%@%@",
noteStoreUriBase, [user shardId]] ]autorelease];
[pool drain];
// this is next page if the login sucess
evernotemainpage *detailViewController = [[evernotemainpage alloc] initWithNibName:@"evernotemainpage" bundle:nil];
//detailViewController.firstString = firstString;
// ...
// Pass the selected object to the new view controller.
[self.navigationController pushViewController:detailViewController animated:YES];
[detailViewController release];
}
}