2014-02-28 2 views
6

Ich entwickle eine Android PhoneGap-Anwendung, wo ich meine benutzerdefinierten Kamera/Galerie-Ansichten zur HTML-Seite hinzufügen muss - zum Beispiel einige leere DIV in meiner HTML-Seite, deren ID ich bereits habe. Wie erreiche ich das?Wie native benutzerdefinierte Ansichten zu HTML-Seiten in PhoneGap/Cordova hinzufügen?

Ich weiß, wie man Plugins und grundlegende HTML-Zeug schreibt.

Gibt es einen Weg, ich kann auf Elemente der aktuellen HTML-Seite in Cordova Webview zugreifen?

Meine Anforderung ist, meine benutzerdefinierte Kameraansicht zu HTML-Seite mit welchen Dimensionen ich hinzufügen kann.

+0

Do u die Galerie erreichen wollen, die die Bilder aus dem Telefon in cordova enthält? – ConnectingCode

+0

Nicht speziell Galerie, aber jede benutzerdefinierte Ansicht entwickelt in nativen (Android in meinem Fall) muss angefügt werden/erschien in HTML. – vrs

Antwort

5

aktualisiert die Antwort:

ich endlich herausgefunden, wie dies zu tun.

Zunächst müssen Sie Ihre Ansicht, z. B. Schaltfläche, in das Cordova WebView einfügen. Der Cordova WebView kümmert sich um den Scroll.

webview.addView(button); 

https://github.com/wf9a5m75/phonegap-googlemaps-plugin/blob/master/src/android/plugin/google/maps/GoogleMaps.java#L373

Wenn die Geräteausrichtung geändert wird, müssen Sie die Größe ändern. Aber in Cordova können Sie das Ereignis nicht in Java empfangen, also müssen Sie das Ereignis in JavaScript hören.

window.addEventListener("orientationchange", onMapResize); 

https://github.com/wf9a5m75/phonegap-googlemaps-plugin/blob/master/www/googlemaps-cdv-plugin.js#L1381

Und hier ist der entscheidende Punkt. Ändern Sie die Position in HTML auf den Punkt in Aussicht, können Sie tun dies

Math.round(d * webView.getScale()); 

https://github.com/wf9a5m75/phonegap-googlemaps-plugin/blob/master/src/android/plugin/google/maps/GoogleMaps.java#L383

Hier mein Plugin ist. Ich bette eine Google Maps Android API v2 in das angegebene div-Tag ein.

enter image description here

+0

interessante Post, wenn Sie es richtig verstehen, haben Sie Java-Elemente in die Seite injiziert? also können Sie die Seite über js steuern, aber diese Elemente werden über nativen Code gerendert? – oak

+0

Ja. WebView ist ein Java-Element, sodass Sie Ihr untergeordnetes Element (z. B. Schaltfläche) in der Browseransicht hinzufügen können. Derzeit habe ich diese Methode geändert. Setzen Sie Java-Element unter dem Webview. https://github.com/wf9a5m75/phonegap-googlemaps-plugin/wiki/Map#how-does-the-plugin-work – wf9a5m75

+0

nice stuff! ist es möglich, es auch über einen Kamerabildschirm zu tun? – oak

Verwandte Themen