Я посмотрел на рендерер Forms для Android WebView
и, не переписывая его, правильно поддерживать многорежимный контент, который вам понадобится для прогрессивного веб-приложения, хостинга 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
И используйте полученный URL с UrlWebViewSource
:
webViewSource = new UrlWebViewSource { Url = $"file:///{cacheDir}/index.html" };