Xamarin使用笔记之WebView

Posted 王磊的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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系列其他推荐 


 

以上是关于Xamarin使用笔记之WebView的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin 在 Webview 中使用相机上传图片

xamarin.form 使用WebView和APP交互

Xamarin.Forms中为WebView指定数据来源Source

Xamarin 表单 - Webview 检测 URL 更改

混合 WebView 导航和导航事件在 Xamarin 表单中没有响应

在 Xamarin iOS WebView 中显示错误