Ich habe ein ionisches Projekt, in dem ich ein Video anzeigen möchte, und darüber den Inhalt des cordova WebView
. Um das transparente WebView
über der Videoansicht zu haben, verwende ich in einem Plugin:
Der VideoView
wird initialisiert und in einem FrameLayout
wie folgt hinzugefügt:
Ich habe das auf Android 4.4.2 getestet und es funktioniert super. Ich habe es dann auf Android 5.1.1 getestet und das WebView
ist nicht sichtbar, wenn das Video abgespielt wird. Aber wenn ich Chrome verwende, um es zu inspizieren und zum Beispiel den <body>
zu bewegen (dann zeigt der Bildschirm das Overlay blau an), dann erscheinen die Elemente im HTML-Inhalt. Auch wenn ich den Bildschirm berühre, erscheint plötzlich der Inhalt. Es scheint also, dass es ein Rendering-Problem ist, wenn es keine Interaktion mit WebView
gibt, aber sobald es eine Berührung oder irgendeine Art von Trigger erhält, erscheint es.
Ich habe auch versucht mit Crosswalk, und es funktioniert immer noch perfekt in 4.2.2, aber funktioniert nur beim Starten der App auf 5.1.1 und dann nach der ersten Interaktion funktioniert es nur beim Berühren des Bildschirms
Ich habe auch <preference name="BackgroundColor" value="0xff000000"/>
in config.xml
gesetzt, aber das ändert nichts am Verhalten.
Bearbeiten 1:
Ich habe ein div mit transparentem Text hinzugefügt und eine einfache unendliche Animation darauf gelegt (die die Deckkraft nur von .9
auf 1
geändert hat), und voila erscheinen die Elemente in WebView
jetzt oben des Videos beim Abspielen. Es ist nicht perfekt, da manchmal der WebView
Inhalt "blinkt", aber es funktioniert. Habe immer noch keine Ahnung, warum, obwohl
Ersetzen Sie den Code durch unten.
%Vor%Wenn Sie eine Webansicht über die Videoansicht hinzufügen möchten, Verwenden Sie das Anwendungsinhaltslayout und fügen Sie wie unten beschrieben webview hinzu.
%Vor%Tags und Links android webview transparent videoview