Wie behandeln Rückrufe in webview
Arbeite ich auf einem android-Projekt jetzt und haben eine Frage darüber, wie zu tun Rückrufe in verschiedenen webviews. Ich verwendet JSInterface für mein Projekt auch. Hier habe ich 2 webviews. Hat man eine index-Seite, Anthere ist ein overlay(immer noch eine html-Seite, obwohl.) Was ich will zu tun ist, wenn ein user klickt auf einige links, die auf die überlagerung, es sollte Feuer eine callback-Funktion, die ist geschrieben in der java-Datei, wo die index-Seite verbunden war, durch JSInterface. Es klingt verwirrend, aber ich habe etwas zeichnen zu helfen, machen es klar!
Dank!
- Ich hoffe, ich habe nicht verstanden, falsch Ihre Frage. Dies sollte Ihnen helfen, stackoverflow.com/questions/3765860/...
- Wenn die zweite webview ist gedacht, um eine überlagerung der ersten webview, kann es einfacher sein, von einer Architektur-Sicht und besser, von einem Ressource utilization Perspektive zum durchführen der overlay in den HTML-Code und verwenden Sie nur eine webview.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie eine benutzerdefinierte URL-Schema wie myurl://Funktion für Ihre Funktionalität links. Dann schreiben Sie eine Ereignisprozedur für das WebView ist shouldOverrideUrlLoading Veranstaltung, die Sie entscheiden, wie Sie die URL verarbeitet: entweder beauftragen Sie die "Webansicht" aus, um es zu laden, oder einige benutzerdefinierte Aktion.
Ich verwendet startsWith prüfen Sie die URL für diese quick-and-dirty-Beispiel, aber Sie sollten überlegen, mit android.net.Uri.parse zum Parsen von URLs.
Dies sollte Ihnen ermöglichen, rufen Sie die Java-Funktion foo (), ohne zu gehen durch die erste WebView.
Wenn Sie möchten, gehen Sie durch die ersten webview, dann können Sie eine Funktion aufrufen, die auf die JSInterface wie diesem (wo webView1 ist der erste WebView abgerufen durch findViewById):