1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

Webview in Widget

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von 2Stoned, 17.01.2010.

  1. 2Stoned, 17.01.2010 #1
    2Stoned

    2Stoned Threadstarter Erfahrener Benutzer

    Beiträge:
    158
    Erhaltene Danke:
    13
    Registriert seit:
    23.05.2009
    Phone:
    HTC Desire HD
    Gibt es eine Möglichkeit eine Website in nem Widget darzustellen?
    Googlen hat hat nur ergeben das manche sagen es ginge, andere sagen es ginge nîcht. Gibt es nen Weg?
     
  2. Markus, 18.01.2010 #2
    Markus

    Markus Gewerbliches Mitglied

    Beiträge:
    76
    Erhaltene Danke:
    8
    Registriert seit:
    19.01.2009
    Nein, die Widget API ist extrem begrenzt. Man kann noch nicht mal ein Texteingabefeld machen. :(
     
  3. SeraphimSerapis, 18.01.2010 #3
    SeraphimSerapis

    SeraphimSerapis Android-Guru

    Beiträge:
    3,072
    Erhaltene Danke:
    1,138
    Registriert seit:
    27.02.2009
    Stimmt - leider gibt es auch keine Dinge wie Scrollbars - man kann also nur endlich viel Inhalt anzeigen, was ein allzu dynamisches Widget (siehe WebView) verhindert.
    HTC hat das zwar bei seinen Sense UI-Handys (Lesezeichen-Widget), aber die haben ja auch ein stark modifiziertes Framework.
     
  4. .andreas, 20.01.2010 #4
    .andreas

    .andreas Junior Mitglied

    Beiträge:
    29
    Erhaltene Danke:
    1
    Registriert seit:
    17.12.2009
    Wenn ich mich nicht ganz täusche hat das facebook-widget doch ne eingabe-möglichkeit. oder ist das anders gelöst?
     
  5. miha, 24.01.2011 #5
    miha

    miha Fortgeschrittenes Mitglied

    Beiträge:
    294
    Erhaltene Danke:
    43
    Registriert seit:
    12.01.2010
    Da mich das auch gerade beschäftigt wollte ich den Thread nochmal pushen ...

    Grundsätzlich ist es möglich! Es gibt mindestens ein Widget was es kann - leider ist das aber nicht mehr im Market aber ich habe es noch weil ich es damals gekauft hatte:
    WebWidget 2 ~ Android Application v2.80 By LeFutura | Productivity
    Eigentlich macht das auch genau was mir vorschwebt aber es war etwas unzuverlässig und hatte eigentlich zu viele Features ...

    Der Autor war so weit ich mich erinnere ich auch hier im Forum - vielleicht liest er es ja und will jetzt mal verraten wie er es gelöst hatte.

    Ein Webview in ein Canvas gezeichnet ergibt leider immer nur eine weisse Seite. Dazu gibt es auch ein paar google-Suchergebnisse wegen Services oder LiveWallpapers mit Webview. Leider keine Lösung. Ich hatte schon die Idee eine unsichtbare Activity aufzurufen die den Webview speichert aber das klappt scheinbar auch nicht unbemerkt.
    Sonst noch jemand Ideen? Könnte man in den Android-Sourcecode reindebuggen um zu sehen warum der Webview die Page nicht finished wenn er nicht in einer Activity ist obwohl eigentlich alles korrekt aussieht?
     
  6. miha, 06.02.2011 #6
    miha

    miha Fortgeschrittenes Mitglied

    Beiträge:
    294
    Erhaltene Danke:
    43
    Registriert seit:
    12.01.2010
    ... die ich jetzt erstmal benutze ... irgendwie unschön und nicht echt - aber funktioniert super!
    websnapr und co!
     
  7. miha, 19.02.2011 #7
    miha

    miha Fortgeschrittenes Mitglied

    Beiträge:
    294
    Erhaltene Danke:
    43
    Registriert seit:
    12.01.2010
    Und wieder mal hochgeholt. Habe weiter probiert, habe das Ziel im Prinzip erreicht und bin weiter aber bei einem neuen Problem.

    Erstmal die grundsätzlich Lösung:
    Ein nicht in einem echten Layout liegender Webview (new Webview im code eines Services der ja keinen ContentView hat) lädt zwar schön alles, aber er wird nicht gezeichnet. Deshalb (falls jemand so weit war wie ich vorher) kommt immer nur ein leeres Bild raus.
    Simpler Trick: in ein Layout packen und selber layout(...) und dann meinfakelayout.draw(canvas) !!! klappt!!! - dann wird der view tatsächlich gerendert und es kommen pictures im listener an.

    Leider bleibt jetzt noch ein Problem:
    Ich kann nicht feststellen ob die Seite wirklich fertig ist! onPageFinished hat nichts damit zu tun ob die Seite fertig gezeichnet wurde (nur geladen). Also bleibt nur onNewPicture ... leider weiss man aber nicht wann keins mehr kommen wird. Also weiss ich nicht wann die Seite komplett gerendert wurde ... es fehlen also manchmal ein paar Bilder auf der Seite (so auch zum Beispiel oft in der App "Web LiveWallpaper" (nicht meine mit praktisch gleichem Namen) zu sehen).

    Konnte jemand folgen und kann helfen? Einfach 10+x Sekunden zu warten und zu hoffen dass es das dann war ist keine schöne Lösung.
     
    Zuletzt bearbeitet: 19.02.2011
  8. miha, 20.02.2011 #8
    miha

    miha Fortgeschrittenes Mitglied

    Beiträge:
    294
    Erhaltene Danke:
    43
    Registriert seit:
    12.01.2010
    Antworte ich mir nochmal selber ... ich habs nun begriffen:
    Eine Website ist manchmal einfach NIE fertig geladen. Also muss man tatsächlich selber entscheiden wann der Snapshot nun gemacht werden soll. Eine Videoseite empfängt einfach immer weiter newPictures ... gleichzeitig cool weil man ganz einfach z.B. Videostreams auf seiner Bitmap sehen kann aber auch dumm weil es ja auch eine wichtige Grafik sein könnte die noch nicht angekommen ist.
     
  9. Hagbard235, 12.08.2011 #9
    Hagbard235

    Hagbard235 Android-Experte

    Beiträge:
    481
    Erhaltene Danke:
    60
    Registriert seit:
    09.06.2009
    Weiter gekommen?? Würde mich auch interessieren.
     
  10. miha, 12.08.2011 #10
    miha

    miha Fortgeschrittenes Mitglied

    Beiträge:
    294
    Erhaltene Danke:
    43
    Registriert seit:
    12.01.2010
    Kannst ja ausprobieren ob ein Widget von meinem WebLiveWallpaper bei dir funktioniert mit jeder Seite deiner Wahl (Einstellung unter Neu -> Anzeigeeinstellungen -> Webseiten Snapshot). Vermutlich nicht problemlos :) Jedenfalls gibt es einen zu großen Anteil User wo die Gerätehersteller (Motorola Motoblur Geräte zum Beispiel) Bugs/geändertes Verhalten in den Webview eingebaut haben die dann Probleme machen. Der Speicherverbrauch eines Webviews wird auch schnell zu groß. Außerdem gibt es noch Probleme wie Crashes wenn Webseiten Messageboxen aufmachen. Bei so einer generellen App wie meiner hagelt es auch negative Bewertungen/Mails dann. Selbst Beschwerden kommen wegen so Sachen dass Flash nicht geht (obwohl das Handy garkein Flash kann).

    Kurz: Nicht weitergekommen. Würde es nicht machen wenn es nur um eine festgelegte Seite geht die man auch selber nachbauen könnte als Userinterface.
     
    Zuletzt bearbeitet: 12.08.2011
  11. j-m.s, 11.04.2012 #11
    j-m.s

    j-m.s Erfahrener Benutzer

    Beiträge:
    206
    Erhaltene Danke:
    6
    Registriert seit:
    05.12.2010
    Kann ich nicht ein widget mit einem StackView machen und dann
    addView(myWebView) ?
     
  12. miha, 12.04.2012 #12
    miha

    miha Fortgeschrittenes Mitglied

    Beiträge:
    294
    Erhaltene Danke:
    43
    Registriert seit:
    12.01.2010
    Als ich das probiert habe gab es keinen Stackview. Ich vermute aber einfach mal dass die Probleme dieselben sind. Google erlaubt auch keine Webviews in Widgets:
    AppWidgetProvider question on 1.5 SDK - Android Developers | Google Groups (Antwort von Dianne Hackborn)
    Bei meiner Lösung ist es ja kein Webview im Widget sondern im Hintergrund und eine einfache Bitmap im Widget. Hat aber auch so schon genug Probleme weshalb die Entwicklung so einer App keinen Spass macht :)
     

Diese Seite empfehlen

Besucher kamen mit folgenden Begriffen auf unsere Seite:

  1. android webview in widget