我在index.html
内名为Posts1 - 10.html
的文件夹中有CachedPosts
和Environment.GetFolderPath(Environment.SpecialFolder.Personal)
。我的目标是加载index.html
,该链接具有href链接以加载Posts1 - 10.html
。
您可能会告诉我使用Assets文件夹,但是{。Posts1 - 10.html
和index.html
是通过编程方式保存的。
C# Code
:
所以我的问题出在“其他”区域。
index.html
已加载,但是每当我单击index.html
内的href链接时,它都会加载一个空白页:/
index.html Code
:
<html>
<body>
<a href="Posts1.html"><h2>Interesting Stuff 1</h2></a>
<a href="Posts2.html"><h2>Interesting Stuff 2</h2></a>
</body>
</html>
The Posts Code
:
<html>
<body>
<h1>Title: Posts Title</h1>
<p>So this is my first interesting post</p>
</body>
</html>
答案 0 :(得分:1)
我查看了Forms的Android WebView
渲染器,并且没有重新编写它以正确支持多模式内容,而渐进式Web应用程序,React托管等都需要它,您可以“只是”提供初始页面的URL,如果您有简单的缓存例程,则根本不使用HtmlWebViewSource / BaseUrl。
这意味着加载的第一个页面必须来自缓存位置,以及这些页面引用的所有其他内容,因此,如果您正在动态创建任何页面(包括第一个页面),则需要将它们保存到缓存中首先。
如果您使用的是Android,则可以使用Uri.Builder:
var url = new Android.Net.Uri.Builder()
.Scheme("file")
.Authority("localhost")
.AppendEncodedPath(CacheDir.CanonicalPath)
.AppendEncodedPath("index.html")
.Build();
或者只是通过以下格式的字符串对它进行硬编码:
$"file://localhost/{cacheDir}/index.html"
或
$"file:///{cacheDir}/index.html" // skip localhost is it is implied
并使用带有UrlWebViewSource
的结果网址:
webViewSource = new UrlWebViewSource { Url = $"file:///{cacheDir}/index.html" };