我想加载Xamarin.Forms项目中的本地HTML文件。文件名是index.html。我搜寻了一下,发现很多人都在谈论这个,但是没有一个答案对我有用。这就是我现在的位置。您可以在侧面看到HTML文件。
这是我现在的代码
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
initBrowser();
}
public void initBrowser()
{
var source = new HtmlWebViewSource();
string url = DependencyService.Get<IBaseUrl>().Get();
string TempUrl = Path.Combine(url, "index.html");
source.BaseUrl = url;
string html;
try
{
using (var sr = new StreamReader(TempUrl))
{
html = sr.ReadToEnd();
source.Html = html;
}
browser.Source = source.Html;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}
编辑:我的问题是我无法访问android资产文件夹中的index.html
10-28 15:13:23.111 I / mono-stdout(13979):无法找到 路径“ /file:/android_asset/AboutAssets.txt”。找不到一部分 路径“ /file:/android_asset/index.html”。
编辑2:我发现了一种不尝试使用HtmlWebViewSource来解决我的问题的方法。我只是直接在浏览器中使用URI。来源
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace PreuveXamarin
{
public interface IBaseUrl { string Get(); }
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
initBrowser();
}
public void initBrowser()
{
string path = DependencyService.Get<IBaseUrl>().Get();
string url = Path.Combine(path, "index.html");
browser.Source = url;
}
}
}