Xamarin Android bidirektionale Kommunikation zwischen Javascript und C #

Ich entwickle eine App mit Xamarin Android, bei der eine WebView eine Webseite anzeigt. Ich möchte eine bidirektionale Kommunikation zwischen Javascript von WebView nach c # implementieren. Ich könnte C # aus Javascript mit diesem @ aufrufVerknüpfun. Ich konnte jedoch keine Möglichkeit finden, Daten von C # an Javascript zurückzusenden. Gibt es eine Möglichkeit, Daten bei diesem Ansatz hin und her zu senden. Ich dachte, ein Callback in Javascript zu schreiben würde funktionieren, aber wie man es aus C # -Code heraus startet.

Now, mein Problem ist, wie man WebView aus einer Javascript-Interface-Klasse heraus aufruft. Ich habe eine Javascript-Interface-Klasse wie erwähnthttps: //developer.xamarin.com/recipes/android/controls/webview/call_csharp_from_javascript Namespace ScannerAndroid {öffentliche Klasse JSInterface: Java.Lang.Object {Context context; WebView webView;

    public JSInterface (Context context, WebView webView1)
    {
      this.context = context;
      this.webView = webView1;
    }

    [Export]
    [JavascriptInterface]
    public void ShowToast()
    {
      Toast.MakeText (context, "Hello from C#", ToastLength.Short).Show ();
      this.webView.LoadUrl ("javascript:callback('Hello from Android Native');");

    }   
  }
}

Der Code löst eine Ausnahme in der LoadUrl-Zeile aus. java.lang.Throwable: Eine WebView-Methode wurde für Thread 'Thread-891' aufgerufen. Alle WebView-Methoden müssen im selben Thread aufgerufen werden. (Erwarteter Looper Looper (main, tid 1) {42ce58a0} wird auf null gesetzt, FYI main Looper ist Looper (main, tid 1) {42ce58a0})

etzt habe ich Mühe, das WebView von dieser Java-Script-Interface-Klasse zu referenziere

Antworten auf die Frage(2)

Ihre Antwort auf die Frage