如何在 Xamarin Forms WebView 中加载本地 HTML 文件

Nes*_*tor 5 xamarin.android xamarin xamarin.forms

我打算将本地 HTML 文件加载到 Xamarin Forms WebView 中。

我已将 HTML 文件添加到该assets/HTML文件夹​​中,并将其“构建操作”设置为 AndroidAsset。

我已经实现了基本 URL 查找器界面:

public class BaseUrl_Android:IBaseUrl
    {
        public string Get()
        {
            return "file:///android_asset/";
        }
    }
Run Code Online (Sandbox Code Playgroud)

我尝试在共享可移植代码中使用此文件来加载文件:

   string baseUrl = DependencyService.Get<IBaseUrl>().Get();
   string url = baseUrl + "HTML/local.html";
   myWebView.Source = url;
Run Code Online (Sandbox Code Playgroud)

我还尝试了自定义 WebViewRenderer,并使用了以下代码:

protected override void OnElementChanged(ElementChangedEventArgs<WebView> e)
    {
        base.OnElementChanged(e);
        if (e.OldElement == null)
        {
            // lets get a reference to the native control
            var webView = (global::Android.Webkit.WebView)Control;
            // do whatever you want to the WebView here!                                
            webView.LoadUrl(DependencyService.Get<IBaseUrl>().Get()+"HTML/local.html");
            webView.SetWebViewClient(new MyWebViewClient());
        }
Run Code Online (Sandbox Code Playgroud)

使用这两种解决方案我都会收到错误:

在此输入图像描述

我还应该尝试什么?

Art*_*nov 0

您的源应该是 HtmlWebViewSource 类型而不是字符串。

var html = new HtmlWebViewSource ();
html.BaseUrl = DependencyService.Get<IBaseUrl> ().Get ();
Run Code Online (Sandbox Code Playgroud)