ios - 如何在 iPhone sdk 中导入 Evernote 中的图像

标签 ios evernote

我正在开发一个应用程序,它是绘图工具项目,我们需要将图像从evernote帐户导入到我的应用程序中。

我使用下面的代码来获取笔记列表。但我无法解码“data.bodyHash”NSData 并且图像变为零。您可以在下面的代码中看到。

EvernoteSession *session = [EvernoteSession sharedSession];
EDAMNoteFilter* filter = [[EDAMNoteFilter alloc] initWithOrder:0 ascending:NO words:nil notebookGuid:nil tagGuids:nil timeZone:nil inactive:NO emphasized:nil];
[[EvernoteNoteStore noteStore] findNotesWithFilter:filter offset:0 maxNotes:100 success:^(EDAMNoteList *list) {
    for (EDAMNote *note in list.notes) {
        NSLog(@"Notes : %@",note.title);
        NSMutableArray *resources = note.resources;
        if (resources!=nil) {
            EDAMResource* resource = [resources objectAtIndex:0];
            EDAMData *data = resource.data;
            UIImage *image = [[UIImage alloc]initWithData:data.bodyHash];
            /// Image is nil
        }
    }
}

谢谢

最佳答案

是的,这是可能的。您应该采取一些步骤来达到预期的结果。

1) 确保您的 Evernote 应用程序具有对用户 Evernote 帐户的完全访问权限,以便能够读取现有笔记(您可以在 https://dev.evernote.com 上请求 Evernote API key 时进行设置)

2) 身份验证

[self.session authenticateWithViewController:self
                          preferRegistration:NO
                                  completion:^(NSError* authenticateError) {
  ...
}];

3)查找所有笔记

[self.session findNotesWithSearch:nil
                       inNotebook:nil
                          orScope:ENSessionSearchScopeAll
                        sortOrder:ENSessionSortOrderNormal
                       maxResults:255
                       completion:^(NSArray* findNotesResults,
                                    NSError* findNotesError) {
  ...
}];

4) 下载每个笔记

for (ENSessionFindNotesResult* result in findNotesResults) {
  [self.session downloadNote:result.noteRef
                    progress:NULL
                  completion:^(ENNote* note,
                               NSError* downloadNoteError) {
    ...
  }];
}

5) 获取所有图像

for (ENResource* resource in note.resources) {
  if ([resource.mimeType hasPrefix:@"image"]) {
    UIImage* image = [[UIImage alloc] initWithData:resource.data];
    ...
  }
}

您可以查看sample project here .
如果您设置了消费者 key 和 secret ,则在身份验证后您将看到类似的控制台输出:

2014-08-19 22:54:18.782 EvernoteTest[71234:60b] finding all notes..
2014-08-19 22:54:20.356 EvernoteTest[71234:60b] processing find notes results..
2014-08-19 22:54:21.294 EvernoteTest[71234:60b] getting images from note 'Just Image'
2014-08-19 22:54:21.294 EvernoteTest[71234:60b] >> image with size {600, 400}
2014-08-19 22:54:21.295 EvernoteTest[71234:60b] 
2014-08-19 22:54:21.720 EvernoteTest[71234:60b] getting images from note 'Getting Started'
2014-08-19 22:54:21.721 EvernoteTest[71234:60b] >> image with size {27, 27}
2014-08-19 22:54:21.721 EvernoteTest[71234:60b] >> image with size {215, 54}
2014-08-19 22:54:21.722 EvernoteTest[71234:60b] >> image with size {300, 300}
2014-08-19 22:54:21.722 EvernoteTest[71234:60b] >> image with size {27, 27}
2014-08-19 22:54:21.723 EvernoteTest[71234:60b] >> image with size {27, 27}
2014-08-19 22:54:21.723 EvernoteTest[71234:60b] >> image with size {27, 27}
2014-08-19 22:54:21.724 EvernoteTest[71234:60b] >> image with size {27, 27}
2014-08-19 22:54:21.724 EvernoteTest[71234:60b] >> image with size {27, 27}
2014-08-19 22:54:21.725 EvernoteTest[71234:60b] >> image with size {27, 27}
2014-08-19 22:54:21.725 EvernoteTest[71234:60b] 
2014-08-19 22:54:22.179 EvernoteTest[71234:60b] getting images from note 'Another Image'
2014-08-19 22:54:22.180 EvernoteTest[71234:60b] >> image with size {685, 514}
2014-08-19 22:54:22.180 EvernoteTest[71234:60b] 

希望这有帮助

关于ios - 如何在 iPhone sdk 中导入 Evernote 中的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25363778/

相关文章:

ios - 使用 Google map 在 iOS 中进行地理编码和反向地理编码

ios - 苹果推送证书过期

ios - UIViewController Storyboard 自定义尺寸

ios - 合并子上下文时出现 NSObjectInaccessbileExceptions

ios - EverNote OCR功能?

ios - 使用 Evernote Cloud SDK 2.0 从 ENNoteContent 中获取 NSString

ios - 如何将iOS Objective-C类接口(interface)代码翻译成RubyMotion?

c# - Evernote AuthToken 通过 OAuth

objective-c - 尝试为 Mac 构建 Evernote SDK 总是会导致错误

javascript - 尽管在沙盒环境中工作良好,但我无法在生产环境中获得 token