openURL um arquivo local ou forçar o UIDocumentInteractionController a usar um aplicativo específico
Desejo abrir um arquivo (armazenado localmente no meu aplicativo) com outro aplicativo.
Atualmente, estou usando o openURL (existe um esquema de url dedicado), e funciona bem se eu usar um arquivo hospedado na internet, mas eu gostaria de usar um arquivo local assim: a) funciona offline b) muito o tempo que meus usuários estão fora da cobertura da zona celular ou em roaming internacional
O que eu tentei até agora: Eu não tive nenhuma sorte dizendo openURL para usar um arquivo local, tentei algumas abordagens, mas eles são todos algo como isto
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"ext"];
NSURL *fileURL = [NSURL fileURLWithPath:filePath];
[[UIApplication sharedApplication] openURL:fileURL];
Além disso
NSURL *fileURL = [[NSBundle mainBundle] URLForResource: @"test" withExtension:@"ext"];
[[UIApplication sharedApplication] openURL:fileURL];
também manualmente usando strings com diferentes variações de caminhos localhost / e file: // e var / mobile etc
nada funciona (para mim de qualquer maneira)
Então, eu olhei ao redor e me depareiUIDocumentInteractionController
Eu sou capaz de usar UIDocumentInteractionController para deixar o usuário abrir meu arquivo local com o outro aplicativo - no entanto, ele sempre apresenta várias opções de outros aplicativos para usar e, por exemplo, um dos outros aplicativos pode ser 'Dropbox'.
Eu não quero deixar o usuário baixar (ou fazer o upload tecnicamente) uma cópia do meu arquivo para uso deles de outras maneiras. Ele contém dados que eu preferiria não disponibilizar tão prontamente.
Quando o arquivo é aberto pelo meu aplicativo pretendido (não feito por mim btw), ele não permite qualquer tipo de salvamento ou acesso a dados brutos.
Percebo que, ao incluir o arquivo no meu aplicativo, qualquer um que queira realmente obtê-lo, não quero exibir um menu grande dizendo "Aqui está, se você quiser que sua própria cópia faça um trabalho derivado de"
Idealmente, eu poderia usar o openURL, mas acho que é por causa do 'sandbox' que o outro aplicativo não responde - no Android eu uso o mode_world_readable para declarar o arquivo como legível por outros aplicativos (colocando-o fora do sandbox e não permite que outros aplicativos gravem nele, apenas leia) - existe alguma maneira de fazer o mesmo com o iOS?
Caso contrário, se eu pudesse forçar o UIDocumentInteractionController a usar um aplicativo específico e não apresentar o menu - isso também seria bom.
Pergunta semelhante perguntou há um tempo atrás
Desculpe pela longa leitura, qualquer ajuda é apreciada.
Edit: Acabei de receber uma resposta do suporte técnico da Apple e eles me disseram que isso é impossível no momento (logo após o iOS 6 lançado)