Xamarin開發筆記—WebView雙項事件調用


1.Xamarin調用WebView:

原理:Xamarin.Forms WebView內置方法xx.Eval(..)可以調用到頁面里面的js函數。

WebView展示的代碼如下:

var htmlSource = new HtmlWebViewSource();
htmlSource.Html = @"<html>
                <head>
                    <meta charset='UTF-8'>
                    <title></title>
                    <script>
                        function showMsg(msg){
                            alert('hello '+msg);
                        }
                    </script>
                </head>
                <body>
                    你好世界.
                </body>
                </html>";
this.webview.Source = htmlSource;

調用核心代碼:

this.wv.Eval("showMsg('王磊')");

效果如下:

 

 

2.WebView調用Xamarin:

原理:WebView通過Navigating改變事件攔截,進行業務處理。

流程:WebView添加Navigating事件 => 修改html代碼里面的href為自定義的格式和協議 => 在Navigating事件里面判斷攔截處理。

html核心代碼:

<WebView ... Navigating="wv_Navigating"  ></WebView>

<a href='xaml:{id:xxx}'>xxx</a>

后台核心代碼:

/// <summary>
/// WebView鏈接改變事件(點擊href時觸發)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void wv_Navigating(object sender, WebNavigatingEventArgs e)
{
    string identify = "xaml:"; //自定義協議關鍵字
    string url = e.Url; //href信息
    if (url.Contains(identify)) //是自定義的xaml:協議,執行事件
    {
    e.Cancel = true;
        JObject jb = JObject.Parse(url.Substring(identify.Length));
        Debug.WriteLine("獲取data:" + jb.ToString());
        //todo:業務邏輯
    }
}

  

Xamarin系列其他推薦 


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM