0
webView로 이미지를 처음 열 때 (.bg css 클래스)로드 할 때마다 다음 열 때마다 올바르게로드됩니다. 왜?Android WebView가 처음으로 애셋에서 이미지를로드하지 않습니다.
코드 HTML : 조각에
<style>
...
.bg
{
background: url('image.png') center center no-repeat;
background-size: cover;
width: 100%;
height: 100%;
position: fixed;
top: 0;
}
...
</style>
...
<body>
<div class='bg'></div>
<div class='content'>
...
</div>
</body>
코드 쇼 HTML :
_handler.Post(() => {
var settings = webView.Settings;
webView.Settings.JavaScriptEnabled = true;
webView.Settings.DomStorageEnabled = true;
settings.AllowFileAccess = true;
settings.AllowFileAccessFromFileURLs = true;
settings.AllowContentAccess = true;
settings.AllowUniversalAccessFromFileURLs = true;
settings.DefaultTextEncodingName = "utf-8";
webView.Visibility = ViewStates.Visible;
webView.LoadDataWithBaseURL("file:///android_asset/", html, "text/html", "UTF-8", null);
});
UPD : 나는 모든 코드를 이동하는 경우 때문에 내가 그 아닌 동시성 문제를 생각한다 ui 스레드에 추가하고 모든 webView 가시성 변경 사항을 제거합니다.이 버그는 계속 재현됩니다.
이것은 동시성 문제와 같습니다. 첫 번째로로드되기 전에 웹보기가 표시되고 다음로드에는 모두 첫 번째로드에서로드 된 데이터가 이미 표시됩니다. 그럴 경우'WebViewClient'를 하위 클래스로 분류하고로드 된 후에 웹보기를 표시하는'OnPageFinished'를 재정의하는 것이 좋습니다 –
또 다른 것은'_handler.Post'를 사용하면 다음 UI 업데이트를 위해로드를 연기합니다 , 이것은 문제가되어서는 안된다. 그러나'Post'가 안전면에 있지 않고 시도 할 것이다. –