Ich bin mit Xcode 4 mit PhoneGap (Cordova 1.6) und ChildBrowser. Ich habe SiteCrawler auf OSX verwendet, um erfolgreich eine Website herunterzuladen und zu lokalisieren, und es ist vollständig durchsuchbar lokal mit Bildern, PDFs, etc. Ich habe alle lokalisierten Site-Dateien in den PhoneGap www-Ordner verschoben und der App-Test funktioniert einwandfrei - die Site ist vollständig durchsuchbar.
Ich möchte, dass die PDFs auf der Website in einem eigenen Fenster geöffnet werden, und ChildBrowser erfüllt diese Aufgabe für meine Bedürfnisse perfekt. verwenden http://blog.digitalbackcountry.com/2012/03/installing-the-childbrowser-plugin-for-ios-with-phonegapcordova-1-5/ Ich konnte den ChildBrowser installieren und zum Laufen bringen - ich habe PDF-Dateien im ChildBrowser geöffnet.
Mein Problem ist, dass ich bei Verwendung des obigen Links ontouchstart="loadChildBrowser('/path/to/file.pdf'); return false;" zu jedem PDF-Link auf der Website hinzufügen muss. Da wir ein CMS verwenden, ist dies kein großes Problem - die meisten PDFs werden von einer Vorlage aufgerufen, in die Daten aus dem CMS eingefügt wurden, und sie sind in Ordnung. Es gibt jedoch einige Seiten, auf denen der Kunde einen Link zu einer hochgeladenen PDF-Datei in den Inhalt der Seite eingefügt hat. In diesem Fall gibt es keine einfache Möglichkeit, den oben genannten Code in den Inline-Link einzufügen.
Ich dachte, dass ich jQuery verwenden können, um jedes ein Tag auf der Seite zu suchen, wenn angeklickt und wenn angeklickt, führen Sie die ChildBroswer-Instanz, und dies würde beide Arten von PDF-Links abdecken, aber ich kann nicht scheinen, um es zum Arbeiten zu bekommen. Hier ist, was ich habe:
<script type="text/javascript" src="/a/js/cordova-1.6.0.js"></script>
<script type="text/javascript" src="/a/js/ChildBrowser.js"></script>
<script>
// install ChildBrowser
var cb = ChildBrowser.install();
//loading a web page in ChildBrowser
$('a[href$=pdf]').click(function() {
var href = $(this).attr('href');
cb.showWebPage(encodeURI(href));
return false;
});
</script>
Wenn Sie die obige Methode ohne Inline-Link-Javascript verwenden, öffnet sich die PDF-Datei von selbst, ohne Child-Browser.
Wenn ich das unten stehende zusammen mit ontouchstart="loadChildBrowser('/path/to/file.pdf'); return false;" verwende, öffnet sich der Child-Browser und zeigt bei einigen Links die PDF-Datei an, während bei anderen nur "loading" steht. Ich denke, dies ist nur zwicken für Pfade, aber ich denke, die oben wäre die meisten universal, wenn es gemacht werden kann, um zu arbeiten.
<script type="text/javascript" src="/a/js/cordova-1.6.0.js"></script>
<script type="text/javascript" src="/a/js/ChildBrowser.js"></script>
<script>
// install ChildBrowser
var cb = ChildBrowser.install();
//loading a web page in ChildBrowser
function loadChildBrowser(file) {
cb.showWebPage(encodeURI(file));
}
</script>