Tôi có trang web cơ bản phản hồi chính xác các thay đổi về kích thước và hướng màn hình (sử dụng truy vấn phương tiện CSS) khi được hiển thị trong Chrome trên máy tính bảng Android (Nexus 7). Khi tôi hiển thị cùng một trang trong một WebView, các truy vấn phương tiện truyền thông dựa trên chiều rộng màn hình không hoạt động. Đây là cách tôi đang thiết lập các WebView:Truy vấn phương tiện truyền thông WebView và CSS của Android
WebView webView = (WebView) findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.loadUrl("http://10.0.1.8:8080/cbc/test");
Các WebView phát hiện một cách chính xác những thay đổi định hướng, dựa trên hành vi của các truy vấn phương tiện truyền thông sau:
@media only screen and (orientation: portrait) {
.landscape { display: none; }
}
@media only screen and (orientation: landscape) {
.portrait { display: none; }
}
Truyền thông truy vấn sử dụng kích thước màn hình không hoạt động chính xác , bởi vì, theo JavaScript sau đây, chiều rộng và chiều cao của màn hình vẫn không đổi thông qua các thay đổi định hướng:
$("#dimensions").empty();
$("#dimensions").append($("<div>Width: " + screen.width + "</div>"));
$("#dimensions").append($("<div>Height: " + screen.height + "</div>"));
$("#dimensions").append($("<div>Depth: " + screen.pixelDepth + "</div>"));
Tôi kích hoạt đồng trước đó de với một sự kiện "orientationchange". Khi chạy trong Chrome trên Android, giá trị chiều rộng và chiều cao được hiển thị chính xác, tính đến hướng thiết bị. Khi chạy bên trong WebView, chiều rộng và chiều cao vẫn không đổi, bất kể định hướng.
Có một số cấu hình tôi cần áp dụng cho WebView để có được hành vi mong muốn không?
Câu hỏi đặt ra có liên quan đến việc theo dõi chiều rộng và chiều cao truy vấn trên những thay đổi hướng. Việc chọn dựa trên mật độ điểm ảnh sẽ không giúp ích gì ở đây. –