Sto sviluppando un'applicazione che utilizza Xamarin Android con una visualizzazione Web che visualizza una pagina Web. Voglio implementare una comunicazione bidirezionale tra Javascript da WebView a C#. Potrei chiamare C# da Javascript usando questo link. Tuttavia non sono riuscito a trovare un modo per inviare dati da C# a Javascript. C'è un modo per inviare dati avanti e indietro in questo approccio. Pensavo che scrivere una callback in Javascript avrebbe funzionato, ma come farla sparare dal codice C#.Xamarin Comunicazione Android bidirezionale tra Javascript e C#
Ora, il mio problema è come chiamare WebView da una classe di interfaccia javascript. Ho una classe di interfaccia Javascript come menzionato https://developer.xamarin.com/recipes/android/controls/webview/call_csharp_from_javascript/ namespace ScannerAndroid { public class JSInterface: Java.Lang.Object { Contesto di contesto; 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');");
}
}
}
Il codice genera un'eccezione nella riga LoadUrl. java.lang.Throwable: è stato chiamato un metodo WebView sul thread 'Thread-891'. Tutti i metodi WebView devono essere richiamati sullo stesso thread. (Previsto Looper Looper (main, tid 1) {42ce58a0} chiamato su null, FYI main Looper è Looper (main, tid 1) {42ce58a0})
Ora sto lottando su come fare riferimento a WebView da questa interfaccia di script Java classe
Possibile duplicato di [Chiamare JavaScript funzioni JavaScript in WebView] (http://stackoverflow.com/questions/4325639/android-calling-javascript-functions-in-webview) – Cheesebaron