[英]How to display alert function from xamarin android button in webview
Implement webviewclient object for your webview and call
webview.EvaluateJavascript
in OnPageFinished
like this..为您的 webview 实施 webviewclient object 并像这样在
OnPageFinished
中调用webview.EvaluateJavascript
。
//create an internal webviewclient class
internal class webViewClient : WebViewClient
{
public override void OnPageStarted(WebView view, string url, Bitmap favicon)
{
base.OnPageStarted(view, url, favicon);
}
public override void OnPageFinished(WebView view, string url)
{
base.OnPageFinished(view, url);
//define the javascript code you wish to run
string script = "javascript:alert('Hi');";
//perform check and then call
if (Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.Kitkat)
{
view.EvaluateJavascript(script, null);
}
else
{
view.LoadUrl(script);
}
}
}
and then in your webview
code in either OnCreate
or in buttonclick evet handler
do this然后在
OnCreate
或buttonclick evet handler
中的webview
代码中执行此操作
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.webview);
mywebview = FindViewById<WebView>(Resource.Id.mywebiview);
//This webviewchromeclient is very important
mywebview.SetWebChromeClient(new WebChromeClient());
WebSettings webSettings = mywebview.Settings;
//set javascript enabled for your webview
webSettings.JavaScriptEnabled = true;
webSettings.JavaScriptCanOpenWindowsAutomatically = true;
//set the object we defined above as the webviewclient for your webview
mywebview.SetWebViewClient(new webViewClient());
}
I have try this but not work =>webView.EvaluateJavascript("javascript: alert('Hi');", null);
我试过了,但不行 =>webView.EvaluateJavascript("javascript: alert('Hi');", null);
You can try to use WebChromeClient() by webview1.SetWebChromeClient(new WebChromeClient());
您可以尝试通过
webview1.SetWebChromeClient(new WebChromeClient());
使用 WebChromeClient()
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.activity_main);
webview1 = FindViewById<WebView>(Resource.Id.webView1);
button1 = FindViewById<Button>(Resource.Id.button1);
button1.Click += Button1_Click;
WebSettings settings = webview1.Settings;
settings.JavaScriptEnabled = true;
webview1.SetWebChromeClient(new WebChromeClient());
webview1.LoadUrl("file:///android_asset/login.html");
}
private void Button1_Click(object sender, System.EventArgs e)
{
//webview1.EvaluateJavascript("javascript: check();", new EvaluateBack());
webview1.EvaluateJavascript("javascript: alert('Hi');", null);
}
The screenshot:截图:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.