关于webview加载百度首页
Posted ranmomo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于webview加载百度首页相关的知识,希望对你有一定的参考价值。
这里以百度首页为例,先写好xml文件以及Java文件
我的news.xml文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<WebView
android:id="@+id/web_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
我的WebViewActivity.java文件
public class WebViewActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.news);
WebView mWebView = findViewById(R.id.web_view);
mWebView.loadUrl("http://baidu.com");
}
}
1. net::ERR_NAME_NOT_RESOLVED
网上用很多种说法,直到我发现我报错的原因是:没网络
因为,前几天我尝试通过应用跳转到浏览器,打开网页是可以的。
百度上也是其他的说法,看着头疼,直到我不经意间打开了模拟器的浏览器,发现没有网。
心里很郁闷啊!!!没网加载个锤子的网页。
然后,就开始解决网络的问题。
解决网络问题,点击运行,会出现下面这个错误
2. net::ERR_CLEARTEXT_NOT_PERMITTED
需要在Android 的mainfest.xml中的application添加一句配置
android:usesCleartextTraffic="true"
到这里,程序运行,网页加载出来了,结果却不是我先要的,因为网页是跳转到浏览器打开的,不是在我的webview中加载出来的
3.解决不能再webview加载出页面,跳转到浏览器加载问题
再java文件中添加
mWebView.setWebViewClient(new WebViewClient());
此时百度的首页可以再webview中加载出来,但是当我们点击网页中的链接时,出现了下面的错误
4. net::ERR_CACHE_MISS
需要在Android 的mainfest.xml中加入联网权限
<uses-permission android:name="android.permission.INTERNET"/>
再次运行,会发现链接可以点开,但是点开链接后的某些图片不能加载以及某些可以点击的内容没有反应
5. 当网页有javascript时,此时是不能将js中的内容也加载进来。
需要再java文件中添加
mWebView.getSettings().setJavaScriptEnabled(true);
当我想要浏览百度首页中的新闻时,发现下面错误
6.net::ERR_UNKNOWN_URL_SCHEME
通过图片可以看出,这个 url 的开头不是以http 和 https开头的。
想通过 if 判断字符串的开头是否是 http 或 https,如果不是,则以 :// 切割,让后通过http 替换掉 baiduboxapp,发现还是解决不了,放弃了放弃了
发现但按手机上的返回键,webview会直接退出,而不是返回上一给网页
7.关于webview中的返回上一个网页
再java文件中添加
mWebView.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if(event.getAction()==KeyEvent.ACTION_DOWN){
if(keyCode== KeyEvent.KEYCODE_BACK && mWebView.canGoBack()){
mWebView.goBack();
return true;
}
}
return false;
}
});
以上是关于关于webview加载百度首页的主要内容,如果未能解决你的问题,请参考以下文章