我打算将本地HTML文件加载到Xamarin Forms WebView中。
我已经将HTML文件添加到assets/HTML
文件夹中,并且将其Build Action设置为AndroidAsset。
我已经实现了基本URL查找器接口:
public class BaseUrl_Android:IBaseUrl
{
public string Get()
{
return "file:///android_asset/";
}
}
我尝试在共享的可移植代码中使用以下代码从加载文件:
string baseUrl = DependencyService.Get<IBaseUrl>().Get();
string url = baseUrl + "HTML/local.html";
myWebView.Source = url;
我还尝试了自定义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());
}
对于这两种解决方案,我都得到一个错误:
我还能尝试什么?
4条答案
按热度按时间0ve6wy6x1#
您的来源类型应该是HtmlWebViewSource,而不是字串。
new9mtju2#
这是我的MainActivity.cs;
您必须将html文件放入Assets文件夹并设置html构建操作AndroidAsset。这样我就可以将html文件加载到WebView中。
zzlelutf3#
我不知道你为什么会有麻烦。我按照你的步骤做,事情就这样成功了:
代码段如下所示:
注意事项:
“Content.html”是我添加到本地Droid项目的“Assets”文件夹中的本地网页的名称。
XAML格式
视图模型:
接口:
安卓合约:
ffvjumwh4#
这里是相关的帖子和官方样本
看看这个能不能帮上忙。
Xamarin加载本地html
和
Official sample here