definiert ist, ich bin eine HTML/JS-Anwendung zu schreiben, die auf Android unter einem WebView läuft. Unter bestimmten Umständen kann die Seite, die die Anwendung enthält, möglicherweise nicht geladen werden oder stattdessen eine andere Seite (z. B. 404-Seite oder ähnliches). Im Allgemeinen muss ich einen Satz von JS-Funktionen auf der Anwendungsseite ausführen oder einen anderen Satz von Aktionen ausführen, falls die Anwendungsseite nicht geladen wurde.Android WebView - erkennen, ob eine JS-Funktion
Ich versuche zu erkennen, ob die richtige Seite geladen wurde, indem Sie feststellen, ob die entsprechende JS verfügbar ist, aber ich finde keine Möglichkeit, es synchron zu tun - nur durch Aufrufen einer JS-Funktion und erwarten einen Rückruf über JavasctiptInterface
. Während diese Methode machbar ist, frage ich mich, ob es einen besseren, eleganteren und zuverlässigeren Weg gibt, dies zu erreichen.
Ich kann sicherlich tun dies nicht durch die URL der Seite zu analysieren - es könnte die richtige sein, aber mit einem falschen Inhalt.
Irgendwelche Ideen?
Warum halten Sie Rückruf nicht „elegant und zuverlässig“ sein? – kirilloid
Weil ich von einer Entwicklungsplattform erwarten Schnittstelle der direkten Kommunikation zur Verfügung zu stellen, anstatt Aufruf 'javascript: ...' Protokolls - das ist die Art von Dingen, die Sie 6-7 Jahre auf IE vor tun würden. Ich habe ehrlich erwartet, dass Android mehr direkte Tools zur Verfügung stellt, um etwas so Triviales wie das Aufrufen einer JS-Methode zu tun, aber bisher hatte ich Pech bei meiner Suche, aber ich dachte, dass ich vielleicht an den falschen Stellen suche - daher die Frage. –
Der Aufruf von "javascript: ..." sieht wirklich hacky aus, aber es sieht nicht wie ein Rückruf aus. Und warum ist es nicht zuverlässig? – kirilloid