2013-07-08 5 views
8

Ich habe ein seltsames Problem mit meiner iPad App in Phone Gap. Das Problem ist, dass ich das PDF-Dokument in meiner App über Links öffnen muss und wenn ich auf den Link klicke, der das PDF öffnet, zeigt es mir das PDF-Dokument ohne Backlink an.Öffnen Sie PDF in der PhoneGap App, die in HTML und CSS gemacht wird

Daher, wenn ich das PDF-Dokument in meiner App über einen Link öffnen, bringt mich das in eine Sackgasse und auf keinen Fall kann ich zurück zur Hauptseite meiner App gehen.

Meine Frage ist, wie kann ich eine Top-Bar haben, wenn ich ein PDF öffne, das mich zurück auf meine Homepage bringen könnte? Jedes interne Element für das iPad kann sein?

Vielen Dank.

Antwort

12

Versuchen Sie es mit dem In-App-Browser-Plugin.

Wenn Sie eine spätere Version von Phonegap/Cordova (2.8.0, 2.9.0 usw.) verwenden, sollte diese mitgeliefert werden - nichts anderes zu installieren.

http://docs.phonegap.com/en/2.9.0/cordova_inappbrowser_inappbrowser.md.html#InAppBrowser

Es ermöglichen Ihnen, die PDF-Datei in der ein neuen ‚Fenster‘ zu öffnen, die Ihre Anwendung überlagert. Es verfügt über eine Schaltfläche "Fertig", mit der Benutzer es schließen und zu Ihrer App zurückkehren können, wenn sie fertig sind.

Sie würden die PDF öffnen Sie die In-App-Browser, so etwas wie dies mit:

window.open('http://whitelisted-url.com/pdftoopen.pdf', '_blank'); 

D.h. Die Option _blank löst das In-App Browser-Plugin aus. Wenn Sie _system statt verwenden, öffnen Sie es in iBooks (nur raten dort - nicht 100% sicher, ob es iBooks verwenden würde).

+0

Weiß jemand, passiert, warum das für mich ist auch nicht zu arbeiten? Ich benutze ein iPhone 4 und eine Cordova 3. – paulalexandru

+0

Ich bekomme nicht die "es sollte mit ihm kommen". Ich benutze Cordova 3.6 und ja, Sie haben installieren 'org.apache.cordova.inappbrowswer', damit es funktioniert. Das hat super funktioniert. Vielen Dank! – allwynmasc

+0

@Gallwynmasc - Für Cordova Version 2.x wurden viele Plugins (einschließlich In App Browser) standardmäßig hinzugefügt. Mit 3.x sind die Plugins alle optional und Sie installieren die gewünschten Plugins. – asgeo1

0

Dank asgeo1,

Ich löste es durch window.open() verwenden.

<a href="#" onclick="window.open('http://12example.pdf', '_blank', 'location=no');"><img src="images/samplens.jpg" border="0" /></a> 

Ich hoffe, es hilft.

+3

Ja, bei der Verwendung von Phonegap löst window.open das Plugin für den In-App-Browser aus, das ich bereits erwähnt habe;) – asgeo1

4

Try https://docs.google.com/viewer?url= in der URL

wie prefixing, window.open('https://docs.google.com/viewer?url=http://www.example.com/example.pdf&embedded=true', '_blank', 'location=yes');

+0

Dazu muss sich der Nutzer bei Google Drive anmelden. Stellen Sie außerdem sicher, dass der URL-Parameter codiert ist. Clevere Lösung allerdings. – Keith

+0

Ich habe das PDF in Google Drive hochgeladen und die Freigabe für die Öffentlichkeit festgelegt. Anschließend habe ich den Link geteilt. Ich glaube nicht, dass diese Methode erfordert, dass der Benutzer angemeldet ist. – Bruno

0

ich beendet habe WebIntent

wie here zu verbrauchen. Der schwierige Teil war WebIntent.java zu ändern, richtig Dateityp zu identifizieren:

String type = obj.has("type") ? obj.getString("type") : null; 
// New code starts 
Uri uri = obj.has("url") ? Uri.parse(obj.getString("url")) : null; 
String extension = MimeTypeMap.getFileExtensionFromUrl(obj.getString("url")); 
if(extension != null){ 
     MimeTypeMap mimeTypeMap = MimeTypeMap.getSingleton(); 
     type = mimeTypeMap.getMimeTypeFromExtension(extension); 
} 
// New code ends 
JSONObject extras = obj.has("extras") ? obj.getJSONObject("extras") : null; 
1

Versuchen Sie, diese jede Art von Dokumenten von URL zu öffnen folgenden Schritten:

Es funktioniert für mich sowohl auf Android und IOS. Ich benutzte es für offene Bilder und PDF Dateien.

Android: Es öffnet Dateien mit System-Apps, wenn verfügbar, sonst gibt es einen Fehler, den Sie behandeln können.

IOS: Es öffnet Dateien in Popup-ähnlicher Ansicht mit Done-Taste und Option-Taste.

Die Dokument-URL wird nicht angezeigt.

Quelle finden Sie hier: https://github.com/ti8m/DocumentHandler

Verwandte Themen