【发布时间】:2016-12-21 07:06:15
【问题描述】:
我有一个使用 HybridWebView (https://developer.xamarin.com/guides/xamarin-forms/custom-renderer/hybridwebview/) 来显示 html 文档的 xamarin.forms 应用程序。我使用 baseUrl 将本地 css 和 js 加载到文档中。此代码在 iOS 9.x 上运行良好。
但是,在我升级到 iOS 10 后,代码在 iOS 模拟器上运行,但在实际设备上却不行。在设备上,它不会从本地存储加载 css。
这是我正在使用的测试代码。它适用于模拟器,但不适用于设备。
async void Handle_TestButtonClicked (object sender, System.EventArgs e)
{
string css = @"
body {
background-color: powderblue;
}
h1 {
color: blue;
}
p {
color: red;
}
";
var folder = await AppGlobals.AppStorage.GetContentFolder ();
string filename = "styles.css";
await AppGlobals.AppStorage.WriteToFile (folder, filename, css);
string html = @"<!DOCTYPE html>
<html>
<head>
<link rel=""stylesheet"" href=""styles.css"">
</head>
<body>
<h1>This is a heading</h1>
<p>This is a paragraph.</p>
</body>
</html>";
this.DocumentView.Html = html;
}
在HybridWebView中,我使用下面的代码来设置baseUrl
if (Element.Html != null) {
string baseFolderPath = await AppStorage.GetInstance ().GetContentFolderPath ();
var baseUrl = new NSUrl (baseFolderPath, true);
Control.LoadHtmlString (Element.Html, baseUrl);
}
我正在使用 PCLStorage 库来读取/写入本地存储。
【问题讨论】: