So erfahren Sie, ob WebView mit JavaScript angezeigt / angezeigt / sichtbar ist

8

Ich habe eine Webseite, die ein Video mit Sprite-Sheets abspielt. Die Seite ist für Mobilgeräte optimiert, sodass sie in Android- und iOS-WebViews geladen werden kann. Ich würde gerne wissen, wann die Seite sichtbar ist, erst danach kann ich das Video abspielen. Ich möchte nicht, dass Benutzer den Video-Midstream abfangen, weil das WebView sich nicht selbst präsentiert.

Ich kann sehen, dass einige Entwickler warten, bis die gesamte Seite alle Assets von der Seite übernommen hat, bevor sie für den Benutzer sichtbar gemacht werden. Also möchte ich nicht, dass das "Video" vor dieser Zeit startet. Ich kann mich nicht auf window.onload verlassen, weil dieses Ereignis ausgelöst wird, selbst wenn das WebView nicht auf dem Bildschirm oder sichtbar ist.

Wie kann ich dies auf der Client-Seite erreichen, vorzugsweise mit JavaScript?

[Bearbeiten] Um klar zu sein, impliziere ich, dass ich keine Kontrolle über das native WebView habe. Sie können Webseiten in ein WebView laden, das nicht auf dem Bildschirm angezeigt wird, und die Ansicht verschieben oder zu einem späteren Zeitpunkt dem Bildschirmlayout hinzufügen. Mein Problem ist, dass, wenn die URL meiner Webseite in ein WebView geladen wird, ich nicht sagen kann, wann das WebView auf dem Bildschirm erscheint.

    
user2122422 01.03.2013, 06:21
quelle

3 Antworten

2

Sehen Sie sich die Safari Web-Inhaltshandbuch . Scrollen Sie nach unten zur Tabelle Unterstützte Ereignisse. Ich denke (oder hoffe), dass das pageshow -Event tun wird, was Sie erhoffen. Es gibt auch das Ereignis focus .

Sieht so aus, als wäre die Verwendung dieser Ereignisse für mobile Safari so einfach wie

%Vor%

Ich bin mit Android weniger vertraut, aber ich werde es sehr schnell untersuchen.

BEARBEITEN: Die onpageshow -Lösung sollte in Android 2.2 und höher genauso funktionieren wie in iOS 4.0 und höher. Ob es so funktioniert, wie Sie es brauchen, bin ich mir nicht ganz sicher. Lass es mich wissen!

    
Mathew 05.03.2013, 00:52
quelle
1

Es ist nicht möglich, die Webansicht mit JavaScript zu steuern. Wenn es nicht zu spät ist, das Design der App zu ändern, bietet die Verwendung nativer APIs mehr Kontrolle über die Webansicht.

Sie können vor dem Laden des Videos ein Timeout auf der Webseite einfügen. Es könnte einen Versuch wert sein.

    
Ashish Agarwal 05.03.2013 00:38
quelle
1

Sie können die Phonegap Bibliothek verwenden:

%Vor%

phonegap ist sehr gut für handle-Ereignisse und mehr Aktion in webview .

    
omid 11.03.2013 19:47
quelle

Tags und Links