Xamarin Android comunicación bidireccional entre Javascript y C #

Estoy desarrollando una aplicación con Xamarin Android que tiene un WebView que muestra una página web. Quiero implementar una comunicación bidireccional entre Javascript desde WebView a c #. Podría llamar a C # desde Javascript usando estoenlazar. Sin embargo, no pude encontrar una manera de enviar datos de C # a Javascript. ¿Hay alguna manera de enviar datos de un lado a otro en este enfoque? Pensé que escribir una devolución de llamada en Javascript funcionaría, pero cómo activarlo desde el código C #.

Ahora, mi problema es cómo llamar a WebView desde una clase de interfaz de JavaScript. Tengo una clase de interfaz Javascript como se mencionóhttps://developer.xamarin.com/recipes/android/controls/webview/call_csharp_from_javascript/ ScannerAndroid de espacio de nombres {public class 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');");

    }   
  }
}

El código arroja una excepción en la línea LoadUrl. java.lang.Throwable: se llamó a un método WebView en el hilo 'Thread-891'. Todos los métodos de WebView deben invocarse en el mismo hilo. (Looper esperado Looper (main, tid 1) {42ce58a0} llamado nulo, FYI main Looper es Looper (main, tid 1) {42ce58a0})

Ahora estoy luchando sobre cómo referir WebView desde esta clase de interfaz de script Java

Respuestas a la pregunta(1)

Su respuesta a la pregunta