美文网首页
关于webview加载页面出现的问题

关于webview加载页面出现的问题

作者: 想飞的舟 | 来源:发表于2020-02-18 13:48 被阅读0次

这里以百度首页为例,先写好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 的开头不是以httphttps开头的。
想通过 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加载页面出现的问题

    这里以百度首页为例,先写好xml文件以及Java文件 我的news.xml文件 我的WebViewActivity...

  • 关于webview加载https的正确使用方式

    关于webview加载https的正确使用方式 头几天同事遇到webview加载https出现空白页面的情况,简单...

  • 小方法细节

    关于 webView加载时 出现黑边问题 解决方法 关于在tabbar页面监听跳转 这个方法主要记录用于点击某个T...

  • iOS利用Safari调试WebView

    前言: 我们在使用WebView或者是WkWebView加载html页面时,JS报错或者是html页面出现问题的时...

  • WebView 重定向无法返回问题

    webview加载重定向页面时候,会出现返回不了上一页的情况。hitTestResult==null解决重定向问题

  • Android中WebView使用的一个问题

    Android项目中使用WebView,解决问题时顺便遇到的一个页面回调时序的问题。 问题描述 WebView加载...

  • android的那些坑

    1 webview无法加载页面 在android有些机型反复进去时候会出现网页无法加载的情况 :fail to r...

  • H5与Android互调

    1. WebView加载页面 webview可以加载本地和网络页面,根据html的文件位置,有不同的写法. mWe...

  • Android webview和H5交互

    1. WebView加载页面 webview可以加载本地和网络页面,根据html的文件位置,有不同的写法. 通常情...

  • Webview缓存剖析以及解决方案

    1 Android WebView 存在什么性能问题? H5 页面加载速度慢 渲染速度慢 页面资源加载缓慢 耗费流...

网友评论

      本文标题:关于webview加载页面出现的问题

      本文链接:https://www.haomeiwen.com/subject/hogwfhtx.html