Форма входа для Evernote в ios - PullRequest
0 голосов
/ 31 января 2012

Я загрузил пример приложения 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];
} 

}

1 Ответ

0 голосов
/ 31 января 2012

К сожалению, API Eevernote в настоящее время не содержит примеров кода для iOS.Если вам нужна информация или пример, как это сделать, ознакомьтесь с этой статьей.http://digitalpericope.net/?p=27

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...