Wie lade ich die Daten clientseitig mit Mobile Safari herunter?

8

Ich weiß, dass es bereits viele Fragen zu SO bezüglich dieser Art von Problemen gibt, zum Beispiel:

Diese Frage ist sehr spezifisch für Safari auf iOS 8.1.3 (Mobile, iPad 2+). Wir haben eine Offline AngularJS Webanwendung, die Application Cache und IndexedDB verwendet, um Daten zu speichern. Eine Art von Daten sind PDF-Dokumente, die relativ groß sein können: etwa 25 Megabyte max. Wir speichern diese Dateien in IndexedDB und wenn der Benutzer es herunterladen möchte, haben wir diese Datei im Browser mit JavaScript.

Das Problem ist wirklich, wenn der Benutzer es speichern möchte. Safari Mobile stürzt möglicherweise von einer Größenbeschränkung des Daten-URI oder etwas anderem ab.

%Vor%

In einem Service haben wir eine Funktion save(file) , wobei file ein Objekt ist, das zwei Eigenschaften enthält:

  1. name : Der Dateiname;
  2. content : Daten der Datei, die mit Base 64 kodiert ist, dann transformieren wir sie in binär.

Die Funktion atob() kann die Ursache sein? Wenn ich auf dem iPad, auf dem dieser Code läuft, Schritt für Schritt debugge, stürzt er genau dort ab (zB: Zeile mit var byteCharacters = atob(b64Data); ).

%Vor%     
elbaid 09.03.2015, 20:33
quelle

0 Antworten