私はHybridWebView(https://developer.xamarin.com/guides/xamarin-forms/custom-renderer/hybridwebview/)を使用してHTMLドキュメントを表示するxamarin.formsアプリを持っています。私はローカルのCSSとjsをドキュメントに読み込むためにbaseUrlを使います。このコードはiOS 9.xでもうまくいきました。xamarin.formsデバイス(iOS 10.1)で動作しないwebview baseurl
しかし、iOS 10にアップグレードした後、コードはiOSシミュレータでは動作しますが、実際のデバイスでは動作しません。デバイス上では、ローカルストレージからCSSをロードしません。
ここに私が使用しているテストコードがあります。それはシミュレータでは動作しますが、デバイスでは動作しません。 HybridWebViewで
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;
}
、私は、ローカルストレージへの読み取り/書き込みにPCLStorageライブラリを使用していますbaseUrlに
if (Element.Html != null) {
string baseFolderPath = await AppStorage.GetInstance().GetContentFolderPath();
var baseUrl = new NSUrl (baseFolderPath, true);
Control.LoadHtmlString (Element.Html, baseUrl);
}
を設定するには、次のコードを使用しています。