Как я могу переименовать имя файла, когда я делюсь строкой PDF base64 через UIActivityViewController в IOS - PullRequest
0 голосов
/ 10 июля 2019

Я получил PDF base64 строку с сервера, это выглядит так:

"данные: применение / 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 Ответ

0 голосов
/ 10 июля 2019

У вас есть две возможности сделать эту функцию.

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];
...