Xamarin - файл: /// android_asset - PullRequest
       11

Xamarin - файл: /// android_asset

0 голосов
/ 30 июня 2018

Что делает мое приложение: Загрузить index.html в WebView

index.html's Code:

<html>
<body>
<a href="Posts10.html"><h2>Interesting Stuff</h2></a>
</body>
</html>

Поэтому, когда я нажимаю на ссылку, появляется сообщение об ошибке:

enter image description here

index.html и Posts10.html расположены в

Environment.GetFolderPath(Environment.SpecialFolder.Personal) + @"/CachedPosts"

a.k.a

"/data/user/0/com.companyname.theoctant/files/CachedPosts"

Ответы [ 2 ]

0 голосов
/ 30 июня 2018

При наличии подключения к Интернету WebView открывает URL-адрес. Но если нет, он открывает HTML-файл. И Xamarin Forms

Все, что вам нужно сделать, это поменять тип WebViewSource, который вы используете, и назначить ему соответствующие свойства, независимо от того, подключены вы или нет.

Так что для WebView Forms, если вы подключены к «Интернету», создайте 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;
0 голосов
/ 30 июня 2018

Это может помочь. Из документов Xamarin:

На Android поместите HTML, CSS и изображения в папку «Активы» с помощью построить действие AndroidAsset, как показано ниже:

https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/webview?tabs=vswin#android

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...