Ios 保存从";返回的文档;在“中打开”;国际标准化组织
我已经为我的应用程序激活了“打开”功能,以便用户可以在我的应用程序中打开他们的文档。应用程序显示在“打开位置”列表下,当用户按下图标时,“我的应用程序”打开。问题是我似乎不明白如何继续保存文件。这是我从众多问题中学到的:Ios 保存从";返回的文档;在“中打开”;国际标准化组织,ios,Ios,我已经为我的应用程序激活了“打开”功能,以便用户可以在我的应用程序中打开他们的文档。应用程序显示在“打开位置”列表下,当用户按下图标时,“我的应用程序”打开。问题是我似乎不明白如何继续保存文件。这是我从众多问题中学到的: - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url sourceApplication:(NSString *)source annotation:(id)annotation { if ([[DB
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url sourceApplication:(NSString *)source annotation:(id)annotation
{
if ([[DBChooser defaultChooser] handleOpenURL:url]) {
return YES;
}
if (url != nil && [url isFileURL]) {
NSError *error = nil;
NSData *data = [NSData dataWithContentsOfURL:url options:NSDataReadingUncached error:&error];
if (error) {
NSLog(@"%@", [error localizedDescription]);
} else {
NSLog(@"Data has loaded successfully.");
}
return YES;
}
return NO;
}
我试图通过以下方式捕获数据,但出现了一个错误。此外,我想知道这个方法是否会对我已经存在的Dropbox导入程序造成任何干扰。。。我读到文件会自动保存在文档/收件箱路径中
作为可以打开的文件类型,我设置了public.content(我相信文档交互控制器可以打开的所有文件)。使用以下代码:
#define DocumentsDirectory [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES) objectAtIndex:0]
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
NSLog(@"URL : %@", url);
NSArray *tempArray = [[NSString stringWithFormat:@"%@",url] componentsSeparatedByString:@"/"];
NSString *aStrPath = [NSString stringWithFormat:@"%@/%@",DocumentsDirectory, [tempArray lastObject]];
NSData *aData = [NSData dataWithContentsOfURL:url];
[aData writeToFile:aStrPath atomically:YES];
return YES;
}
此代码正在工作 这是我的开放式代码。应该注意的是,这些都是pdf格式的,问题可能在于您正在打开的文件类型。 另外请注意,如果要在本地复制文件,则清除收件箱文件非常重要。否则,您将双重保存数据并耗尽空间
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
if ([url isFileURL])
NSData *data = [NSData dataWithContentsOfURL:inboxPath];
[data writeToFile:scorePath atomically:YES];
[[NSFileManager defaultManager] removeItemAtURL:inboxPath error:nil];
打开完文档后,文档将保存到应用程序目录中。问题是您必须获取url并执行必要的操作
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
// your code
return YES;
}
在Appdelegate.m中使用此委托方法。当您在应用程序中打开任何文档时,将调用此方法
下载iExplorer,使用它您可以查看应用程序中的文档和文件。使用功能打开文件后,应用程序的文档目录将得到更新。使用以下代码
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{
if(url !=nil)
{
NSData *urlData = [NSData dataWithContentsOfURL:url];
[urlData writeToFile:YourDocumentsDirectoryPath atomically:YES];
}
return YES;
}
您得到的错误是什么?NSLog(@“%@,[error localizedDescription])中的错误;但是日志中显示的实际错误是什么?没有,只有…哦,对了。OpenIn有时似乎不适用于日志记录。也许可以尝试使用断点进行调试,这样您就可以将鼠标悬停在上面,或者打印出错误的值?