German Reflector / Java Klasse

Roeschti

Member
Licensed User
Longtime User
Thread verlegt!

Bitte ab sofort hier schauen, habe den Thread in das englische Forum verlegt:

http://www.b4x.com/forum/additional...s/13705-little-webview-extension-v1-20-a.html

Danke!
---------------------------------------------------------------------------------------------------------------------



Ich muss euch schon wieder belästigen :eek:

In einem Webview sollen keine Bilder geladen, kein JavaScript ausgeführt, keine Cookies akzeptiert und keine PlugIns gestartet werden. Daman über die Proberties des WebViews dies nicht ausschalten kann und leider auch nicht via die beiden Extra Libraries WebViewSettings / WebViewExtras dachte ich mir, dass dies via die Refelctor Library möglich sein müsste.

Habe dann verschiedene Varianten probiert, bekomme es aber einfach nicht hin :-(

Zum Beispiel das Bilder laden verhindern:
Dim args(1) As Object
Dim types(1) As String
Dim bolR As Boolean

bolR = False
args(0)= bolR
types(0)= "java.lang.Boolean"

Dim r As Reflector

'Funktionierendes Beispiel Cookie lesen anhand URL:
'r.Target = r.RunStaticMethod("android.webkit.CookieManager", "getInstance", Null, Null)
'Log(r.RunMethod2("getCookie", Url, "java.lang.String"))

'Geht ned:
'r.Target = r.RunStaticMethod("android.webkit.WebSettings", "setLoadsImagesAutomatically",args,types)

'Geht auch ned:
r.Target = WebView
r.RunMethod2("setLoadsImagesAutomatically",bolR, "java.lang.Boolean")

Egal was ich probiere, ich bekomme ständig "...java.lang.NoSuchMethodException...", obwol diese Methode garantiert vorhanden ist: WebSettings | Android Developers

Was mache ich falsch? Herzlichen Dank für alle Tips und Hinweise!
 
Last edited:

Roeschti

Member
Licensed User
Longtime User
Problem gelöst, Library gebaut

Es hat mir keine Ruhe gelassen, habe aber das Problem mit dem Reflector nicht in den Griff bekommen.

Konkret ging es mir darum, einen schnellen Browser ohne Schnick-Schnack zu haben dh es sollen weder Cookies akzeptiert, noch JavaScript oder Bilder geladen und auch keine PlugIns ausgeführt werden. Diese Settings kann man nicht einfach so einem WebView beibringen.

Geht nicht, gibt's nicht, also habe ich mir eine kleine Library geschrieben, welche das WebView um die notwendigen Funktionen ergänzt:

Abfragen der Stati von Cookies, JavaScript, PlugIns und Bilder laden und jeweils die Stati setzen. Im Zip ist die Library, die zugehörige XML Datei und ein Beispiel.

Viel Spass damit (falls es sonst noch jemand brauchen kann) :)
 

Roeschti

Member
Licensed User
Longtime User
WebView Extended

Ich habe die Library nun noch ein wenig erweitert. Im Attachement ist die neue Version 1.20 mit einen Beispiel, welches alle Funktionen demonstriert.

Bisher
Lesen und setzen von den Zuständen:
- JavaScript enable / disable
- ImageLoading enable /disable
- Plugins enable / disable / onDemand
- Cookies accept / do not accept

Neu
- anzeigen des Ladefortschrittes (Load Progress current Page)
- anzeigen des Page-Titles (Page Title of current Page)
- Scrollen halbe Seite hoch und runter
- Scrollen ganze Seite hoch und runter
- Stufenweises hinein- und herauszoomen

Coming soon
Anzeigen des Favicon der geladenen Page. Funktioniert grundsätzlich, jedoch ist das Favicon eine ICO Bitmap (= Format von M.$oft), welche nicht zu den Supported Media Formats gehört. Forsche zur Zeit wie ich diese ICO Bitmap in eine BMP Bitmap konvertieren kann.

Auslesem der OS Browser Bookmarks. Auch dies funktioniert grundsätzlich, aber nur über einen sehr unschönen Trick77.

BTW: sollte ich einen zusätzlichen Eintrag im englischen Forum machen? Möglicherweise interessiert sich auch jemand aus dem angelsächsischen/kolonialen Raum dafür :) Nur eben bin ich mir nicht ganz sicher, ob hier cross postings gern gesehen werden oder nicht.

Auf jedenfall frohes neues Jahr und happy debugging!!!
 

klaus

Expert
Licensed User
Longtime User
Hallo Roeschti,
Danke für diese Library, habe sie noch nicht ausprobiert, wird aber kommen.
sollte ich einen zusätzlichen Eintrag im englischen Forum machen?
Bestimmt JA.
Was Du machen kannst ist einen Thread im englischen Forum zu schreiben und diesen hier zu schliessen mit einem Link auf den englischen, dann brauchst Du nicht jedes mal zwei Threads zu verwalten. Informiere auch Erel damit er die Library ins Wiki reingibt.

Beste Grüsse und ein glückliches Neues Jahr.
 
Top