Webview-App mit Lokalen UND Externen Resourcen

  • Hi Community,


    toll, dass es auch ein relativ großes deutsches Forum für Android Entwickler gibt! :)


    Ich bin neu hier also bitte verzeiht mir wenn mein Thema hier nicht hinenpassen sollte ;).


    Die Android-Entwickler-Szene ist Neuland für mich. Programmieren allerdings nicht, da kann ich schon auf relativ viel Erfahrung zurückgreifen^^.


    Nun zu meiner Frage:


    Ist es möglich und wenn ja wie, eine App mit einer WebView zu erstellen, die alle Websiten HTML und Image Resourcen offline, also von der SD-Karte lädt UND GLEICHZEITIG bestimmte Javascript-Dateien, die im HTML über <script src="irgendwo-auf-dem-Server"></script> eingebunden wurden von einer Externen Quelle, in meinem Fall von einem Server lädt?


    Ich hoffe dieser Mammut-Satz war nicht zu heftig :D


    Man kann ja Daten offline in der WebView laden indem man

    Code
    webview.loadUrl("file:///asset_folder/index.html");

    oder so ähnlich nutzt. Möchte man das ganze Online laden kann man

    Code
    webview.loadUrl("http://www.irgendeineseite.de/index.html");

    verwenden.


    Allerdings scheint es so zu sein, dass mit dem Aufruf dieser Methode festgelegt wird, ob man offline oder online arbeitet. Sicher kann man externe Links auch mit einer Abfrage (habe es grad nicht parat) externe Links abfangen, aber das gilt NICHT für die Verlinkungen die man innerhalb einer HTML-Datei trifft um z.B. eine Scriptdatei einzubinden.


    Ich freue mich auf eure Antworten, vielen Dank im Voraus.


    Viele Grüße ;)

  • Hi Wolfbyte,


    Zitat

    Ist es möglich und wenn ja wie, eine App mit einer WebView zu erstellen, die alle Websiten HTML und Image Resourcen offline, also von der SD-Karte lädt UND GLEICHZEITIG bestimmte Javascript-Dateien, die im HTML über <script src="irgendwo-auf-dem-Server"></script> eingebunden wurden von einer Externen Quelle, in meinem Fall von einem Server lädt?


    meinst du damit sowas:
    lokale HTMl-Datei und in dieser steht dann folgendes:

    Code
    <html>
       <head>
         <script src="irgendwo-auf-dem-Server"></script> 
       </head>
        <body>
         .....
        </body>
    </html>


    Ja das geht und eigentlich müsste er die JS-datei auch automatisch laden.
    Wichtig ist das im Manifest die Permisson Internet gesetzt ist.


    Einen Nachteil hat aber dieser Code das JS geht nur wenn das Gerät online ist und es muss dann auch immer Übertragen werden.


    Gibt es einen bestimmten Grund warum du das JavaScript nicht mit auf das Gerät legst?


    mfg Titus

  • Hi Titus,


    erstmal Danke für deine Mühe :).


    Der Grund ist, dass die Javascript-Dateien auf PHP-Datenfunktionen die auf die Datenbank auf unserem Server zugreifen sollen, da sind Sachen wie z.B. Login drin^^.


    Heist das jetzt wenn ich in der Form arbeite wie du es beschrieben hast, ich also sämtliche Daten offline lade und nur bei den Javascript Dateien einen vollständigen, absoluten Pfad zum Server angebe, das alles funktioniert?


    Danke im Voraus


    LG

  • Hi Wolfbyte,


    ja das sollte gehen.


    Zitat

    Der Grund ist, dass die Javascript-Dateien auf PHP-Datenfunktionen die auf die Datenbank auf unserem Server zugreifen sollen, da sind Sachen wie z.B. Login drin.


    mmhh das Prblem ist wenn du die HTML-Datei als richtige Datei mit dem App auslieferst also entweder im Assets Ordner oder du schreibst sie in den internen Speicher kann ein Angreifer diese sehr einfach auslesen.
    Assets Ordner -> einfach apk entpacken -> dieser Ordner wird erst zu Laufzeit übersetzt
    internen Speicher -> root rechte ermöglichen den Zugriff auf das lokale Dateisystem


    Die Frage ist jetzt ob es ihm das was bringt wenn er die JS Datei ausliest aber das kannst halt nur du entscheiden.


    Auf die schnelle würde mir jetzt nur einfallen entweder die URL zur Laufzeit in die HTML Datei zuschreiben oder das komplette HTML Dokument als String in eine Java Klasse zuschreiben. Sind halt nur Quick and Dirty Ideen.


    Mfg TItus

  • Also die Datenfunktionen sind von jemandem geschrieben der sein Handwerk versteht. Allerdings kann ich deine bedenken schon nachvollziehen. Wir werden das einfach mal Testen. Ich melde mich dann, sollte es noch Probleme geben.


    Vielen Dank für deine Hilfe ;)


    LG

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!