openURL eine lokale Datei oder erzwinge, dass UIDocumentInteractionController eine bestimmte App verwendet

Ich möchte eine lokal in meiner App gespeicherte Datei mit einer anderen App öffnen.

Momentan verwende ich openURL (es gibt ein dediziertes URL-Schema) und es funktioniert einwandfrei, wenn ich eine im Internet gehostete Datei verwende, aber ich möchte eine lokale Datei verwenden, um: a) es funktioniert offline b) viele Die Zeit, in der meine Benutzer keine Mobilfunkverbindung mehr haben oder international Roaming betreiben

Was ich bisher ausprobiert habe: Ich hatte kein Glück, openURL zu sagen, dass es eine lokale Datei verwenden soll. Ich habe ein paar Ansätze ausprobiert, aber alle sind ungefähr so

      NSString *filePath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"ext"];
      NSURL *fileURL = [NSURL fileURLWithPath:filePath];
      [[UIApplication sharedApplication] openURL:fileURL];

ebenfalls

      NSURL *fileURL = [[NSBundle mainBundle] URLForResource: @"test" withExtension:@"ext"];
      [[UIApplication sharedApplication] openURL:fileURL];

Verwenden Sie Strings auch manuell mit verschiedenen Variationen der Pfade localhost / und file: // und var / mobile etc

nichts funktioniert (bei mir sowieso)

Also habe ich mich SO umgesehen und bin rübergekommenUIDocumentInteractionController

Ich kann UIDocumentInteractionController verwenden, um dem Benutzer das Öffnen meiner lokalen Datei mit der anderen App zu ermöglichen. Es stehen jedoch immer mehrere Optionen für andere Apps zur Verfügung. Eine der anderen Apps kann beispielsweise "Dropbox" sein.

Ich möchte nicht, dass der Benutzer eine Kopie meiner Datei herunterlädt (oder technisch hochlädt), um sie auf andere Weise zu verwenden. Es enthält Daten, die ich nicht so schnell zur Verfügung stellen möchte.

Wenn die Datei von meiner beabsichtigten App geöffnet wird (die übrigens nicht von mir erstellt wurde), erlaubt sie keinerlei Speicherung oder Zugriff auf Rohdaten.

Mir ist klar, dass durch das Einfügen der Datei in meine App jeder, der es ernst meint, in der Lage sein wird, ein großes Menü mit der Aufschrift "Hier ist es, wenn Sie möchten, dass Ihre eigene Kopie abgeleitete Funktionen verwendet" auszublenden.

Im Idealfall könnte ich openURL verwenden, aber ich denke, es liegt an der 'Sandbox', dass die andere App nicht reagiert - in Android benutze ich mode_world_readable, um die Datei für andere Apps als lesbar zu deklarieren (also außerhalb der Sandbox zu platzieren und es erlaubt anderen Apps nicht, darauf zu schreiben, nur zu lesen) - gibt es eine Möglichkeit, dasselbe mit iOS zu tun?

Wenn ich sonst UIDocumentInteractionController zwingen könnte, eine bestimmte App zu verwenden und das Menü nicht anzuzeigen, wäre das auch in Ordnung.

Ähnliche Frage vor einiger Zeit gestellt

Entschuldigung für die lange Lektüre, jede Hilfe wird gebeten.

Bearbeiten: Ich habe gerade eine Antwort vom Apple Tech-Support erhalten und sie sagten mir, dass dies derzeit nicht möglich ist (kurz nach der Veröffentlichung von iOS 6).

Antworten auf die Frage(1)

Ihre Antwort auf die Frage