我快要放弃了,因为我在这个问题上花了很多时间,我什至发现有人遇到完全相同的问题,运行几乎完全相同的代码,但没有答案。
我有一个不属于我的网页,但我将其页面源代码复制到 Assets 文件夹中的 HTML 文件中。
WebView 加载页面并显示当时显示的任何数据。问题#1:页面是动态的,每隔几秒就会发生变化。
问题#2:页面显示方式与下面的 2 个链接类似。图片缺失, 该页面看起来真的很准系统..我不知道为什么。
WebView not showing website correctly and WebView not showing correctly
问题#3:某些页面可以加载,看起来很好,我可以访问它们的链接,但它们保持静态,并且页面非常动态(想想 reddit)。
我的代码是
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//get reference to webview
WebView webView = (WebView)findViewById(R.id.myWebview);
//enable javascript on browser
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url){
view.loadUrl(url);
return false;
}
});
String myUrl = "file:///android_asset/newfile.html";
webView.loadUrl(myUrl);
}
当我尝试使用 webView.loadDataWithBaseUrl();
webview 仅显示一个白色页面,其中仅包含我的 html 文件的路径
例如
文件:///android_asset/newfile.html
就是这样。
我没有想法,希望有人能帮忙。
编辑:语法和句法。
最佳答案
首先,明确这一点:
- 您正在访问动态网站(定义:具有数据库访问权限、CMS 等的网站)
- 您在上传的网页上显示图片时是否遇到问题
当您在 Assets 文件夹中加载 HTML 文件时,您需要知道您还必须上传图像、CSS 和所有相关内容。
第二:
下面的代码我错了
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url){
view.loadUrl(url);
return false;
}
});
String myUrl = "file:///android_asset/newfile.html";
webView.loadUrl(myUrl);
应该是:
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url){
webView.loadUrl(url); // --------> POINTED FAULT
return false;
}
});
String myUrl = "file:///android_asset/newfile.html";
webView.loadUrl(myUrl);
检查weView.loadUrl(...)中的大小写,是WebView还是webView
尝试并确认...
关于java - WebView 无法正确显示网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21359630/