Webview in Widget

  • 11 Antworten
  • Letztes Antwortdatum
2

2Stoned

Fortgeschrittenes Mitglied
13
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?
 
Nein, die Widget API ist extrem begrenzt. Man kann noch nicht mal ein Texteingabefeld machen. :(
 
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.
 
Markus schrieb:
Nein, die Widget API ist extrem begrenzt. Man kann noch nicht mal ein Texteingabefeld machen. :(
Wenn ich mich nicht ganz täusche hat das facebook-widget doch ne eingabe-möglichkeit. oder ist das anders gelöst?
 
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?
 
... die ich jetzt erstmal benutze ... irgendwie unschön und nicht echt - aber funktioniert super!
websnapr und co!
 
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:
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.
 
Weiter gekommen?? Würde mich auch interessieren.
 
Hagbard235 schrieb:
Weiter gekommen?? Würde mich auch interessieren.

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:
Kann ich nicht ein widget mit einem StackView machen und dann
addView(myWebView) ?
 
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 :)
 

Ähnliche Themen

wernho
Antworten
11
Aufrufe
1.101
wernho
wernho
Soljim
Antworten
5
Aufrufe
436
swa00
swa00
K
Antworten
3
Aufrufe
1.322
Kapikalaani
K
Zurück
Oben Unten