也是留个记录吧。
最近遇到一个webview loadUrl的兼容性问题,
问题的表现大概是:
public final void load(String url) {
mContentView.loadUrl(url);
}
public final void loadHtml(String htmlString) {
mContentView.loadDataWithBaseURL(Enhance.getServer().getH5(),
htmlString, "text/html", "utf-8", null);
}
先执行loadHtml,在执行loadUrl,webview的内容不会刷新,在android5.1的设备上。
最后我是这样解决的:
public final void load(String url) {
if (url.equals(mLastUrl)) {
return;
}
mContentView.reload();
mContentView.loadUrl(url);
mLastUrl = url;
}
public final void loadHtml(String htmlString) {
mLastUrl = "";
mContentView.loadDataWithBaseURL("https://yeshen.org",
htmlString, "text/html", "utf-8", null);
}
20201021更新
发现loadDataWithBaseURL
和loadurl同域名也会有这个问题,解决方法是baseurl加多一个参数,比如
public final void loadHtml(String htmlString) {
mLastUrl = "";
mContentView.loadDataWithBaseURL("https://yeshen.org?t=t",
htmlString, "text/html", "utf-8", null);
}