簡體   English   中英

如何在 Z5A98E2840FD0141780D854E48C608D 中顯示來自 xamarin android 按鈕的警報 function

[英]How to display alert function from xamarin android button in webview

  • 如何在 Z5A98E2840FD0141780D854E48C608D 中顯示來自 xamarin android 按鈕的警報 function
  • 當用戶單擊 Xamarin android 按鈕時,我想在 webview 中添加警報。

在此處輸入圖像描述 為您的 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);
            }
        }
    }

然后在OnCreatebuttonclick 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());
         }

我試過了,但不行 =>webView.EvaluateJavascript("javascript: alert('Hi');", null);

您可以嘗試通過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);
    }

截圖:

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM