Вы можете использовать метод вызова Js в C #.
Например, я создаю login.html в папке assests:
<html>
<head>
<meta http-equiv="content-type" content="text/html" />
<meta name="author" content="lolkittens" />
<script charset="utf-8" type="text/javascript">
function check() {
var username = document.getElementById("ID").value;
var password = document.getElementById("Pass").value;
alert("Username: " + username + " Password: " + password);
return CSharp.ShowToast(username);
}
</script>
<title>Untitled 1</title>
<div id="main" style="width: 300px; height: 200px;">
<form name="MainForm" id="MainForm">
<input id="ID" name="ID" type="text" size="20" />
<input id="Pass" name="Pass" type="password" size="20" />
</form>
<button value="click Me" onclick="check()"> Click Me </button>
</div>
В Mainactivity.cs,
public class MainActivity : AppCompatActivity
{
private WebView webview;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.activity_main);
webview = FindViewById<WebView>(Resource.Id.webview);
WebSettings settings = webview.Settings;
settings.JavaScriptEnabled = true;
// load the javascript interface method to call the foreground method
webview.AddJavascriptInterface(new MyJSInterface(this), "CSharp");
webview.SetWebViewClient(new WebViewClient());
//webview.EvaluateJavascript("javascript: check();", new EvaluateBack());
webview.LoadUrl("file:///android_asset/login.html");
}
}
Создайте класс C #, который будет возвращать значение.
class MyJSInterface : Java.Lang.Object
{
Context context;
public MyJSInterface(Context context)
{
this.context = context;
}
[JavascriptInterface]
[Export]
public void ShowToast(string msg)
{
Toast.MakeText(context, msg, ToastLength.Short).Show();
}
}
Пожалуйста, не забудьте добавить Mono.Android.Export.dll в вашей ссылке.
Подробнее о методе вызова C #, пожалуйста, посмотрите:
https://github.com/xamarin/docs-archive/tree/master/Recipes/android/controls/webview/call_csharp_from_javascript
Если мой ответ поможет, пожалуйста, не забудьте пометить мойответ как ответ, спасибо.