ios - 当我在 IOS 中通过 UIActivityViewController 共享 PDF base64 字符串时如何重命名文件名

标签 ios objective-c cordova-plugins

我从服务器获取了 PDF base64 字符串,它看起来像这样:

"data:application/pdf;base64,JVBERi0x...."

现在我想分享这个文件。我正在使用 Cordova 社交分享插件,效果很好。 但如何指定文件名呢?现在,它只显示默认名称,例如“PDF document.pdf

//activityItems is the base64 string
UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:applicationActivities];

enter image description here

最佳答案

您有两种选择来执行此功能。

1) 您可以重命名文档目录中的文件。

2) 当您要将文件保存到文档目录中时,您可以更改文件名。

1) 如何更改文档目录中的文件名:

- (BOOL)renameFileFrom:(NSString*)oldName to:(NSString *)newName
{
    NSString *documentDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                                   NSUserDomainMask, YES) objectAtIndex:0];
    NSString *oldPath = [documentDir stringByAppendingPathComponent:oldName];
    NSString *newPath = [documentDir stringByAppendingPathComponent:newName];

    NSFileManager *fileMan = [NSFileManager defaultManager];
    NSError *error = nil;
    if (![fileMan moveItemAtPath:oldPath toPath:newPath error:&error])
    {
        NSLog(@"Failed to move '%@' to '%@': %@", oldPath, newPath, [error localizedDescription]);
        return NO;
    }
    return YES;
}

2) 如何在将文件保存到文档目录时更改文件名:

- (NSURL *)applicationDocumentsDirectory {
    return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory 
         inDomains:NSUserDomainMask] lastObject];
}

NSString *path = [[self applicationDocumentsDirectory].path 
                       stringByAppendingPathComponent:@"fileName.pdf"];
[sampleText writeToFile:path atomically:YES
                       encoding:NSUTF8StringEncoding error:nil];

关于ios - 当我在 IOS 中通过 UIActivityViewController 共享 PDF base64 字符串时如何重命名文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56963354/

相关文章:

android - 为什么 IONIC 推送通知看起来像 Javascript 警报?

ios - 我可以(或者应该)将 NSFetchedResultsController 用于一个表部分吗?

ios - 自定义转换后,搜索栏将从 View 层次结构中删除

ios - Ruby 到 Objective C 的桥梁

android - Visual Studio 2015 Cordova 插件添加失败

java - 从 Java 为 Ionic 制作一个插件

ios - 如何从 GCD 返回 UIImage 类型

ios - UILabel textColor 在 iOS 4.3 中没有正确设置

objective-c - 如何轮换三个广告网络 - iAd 和 Admob 以及 OAS 标签?

iphone - 在presentmodalviewcontroller之前刷新