3
我有一個基於WebView的應用程序,我想添加一個'夜間模式'。 我的第一本能就是讓程序每次渲染正確的CSS值,具體取決於夜間模式是否開啓,並且效果很好,但這意味着每次模式切換時都必須重新加載頁面。 有沒有什麼辦法可以改變CSS的價值而不必重新加載頁面?動態更改webview中的css值而無需重新加載(Android)
我有一個基於WebView的應用程序,我想添加一個'夜間模式'。 我的第一本能就是讓程序每次渲染正確的CSS值,具體取決於夜間模式是否開啓,並且效果很好,但這意味着每次模式切換時都必須重新加載頁面。 有沒有什麼辦法可以改變CSS的價值而不必重新加載頁面?動態更改webview中的css值而無需重新加載(Android)
您可以將代碼注入到您的頁面的DOM中。所以,你可以例如有一個復位樣式,然後用注射javascript中的白天或夜晚模式類到DOM的要求是這樣的:
public class WebClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url)
{
view.loadUrl("javascript:document.getElementById(id).style.property=new style");
}
}
HTH