我的应用程序做什么:
将index.html
加载到WebView
index.html's Code:
<html>
<body>
<a href="Posts10.html"><h2>Interesting Stuff</h2></a>
</body>
</html>
因此,每当我单击链接时,都会出现此错误:
index.html
和Posts10.html
位于
Environment.GetFolderPath(Environment.SpecialFolder.Personal) + @"/CachedPosts"
a.k.a
"/data/user/0/com.companyname.theoctant/files/CachedPosts"
答案 0 :(得分:2)
这可能会有所帮助。从Xamarin文档中:
在Android上,将HTML,CSS和图像放置在Assets文件夹中, 如下所示构建动作AndroidAsset:
https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/webview?tabs=vswin#android
答案 1 :(得分:0)
有Internet连接时,WebView将打开一个URL。但是,如果没有,它将打开一个html文件。和Xamarin形式
您需要做的就是交换正在使用的WebViewSource
的类型,并为是否连接而分配适当的属性。
因此对于Forms的WebView,如果已连接“ Internet”,则创建一个UrlWebViewSource
并分配属性Url,否则,创建一个HtmlWebViewSource
并分配BaseUrl
<{>> 或您的自定义缓存目录 添加到NSBundle.MainBundle.BundlePath
或file:///android_asset/
中。
类似这样的东西:
WebViewSource webViewSource;
if (InternetConnected)
{
webViewSource = new UrlWebViewSource { Url = "https://stackoverflow.com" };
}
else
{
string baseUrl = cacheDir;
webViewSource = new HtmlWebViewSource { BaseUrl = baseUrl, Html = cachedHtml };
}
webView.Source = webViewSource;