首页 > 解决方案 > android webview上没有互联网连接消息

问题描述

嗨,我有原生 android webview,这在连接到 android studio 的三星 J5 Prime 设备上完美运行,在这个设备上测试了 APK,没有模拟器,问题是关于签名 APK 的问题是调试和发布最终的 apk 签名或任何真实设备中显示的内容正常配置消息“无互联网连接”,这是在 java 代码中在 android 应用程序中配置的正常消息,但此消息仅在手机没有真正的互联网连接的情况下有效,但通常在真正的手机有互联网连接,wifi和电话数据,但我继续收到此消息“不是互联网连接”,并且 webview 应用程序无法加载网站,只能工作,并且在 samunsg j5 Prime 真实设备上没有出现任何消​​息。

接下来复制并粘贴默认webview的配置代码的主要选项

    WebSettings webSettings = mWebView.getSettings();

    webSettings.setDomStorageEnabled(true);
    webSettings.setRenderPriority(WebSettings.RenderPriority.HIGH);
    webSettings.getSaveFormData();
    webSettings.setDisplayZoomControls(false);
    webSettings.setUseWideViewPort(true);
    webSettings.setAppCacheEnabled(true);
    webSettings.setJavaScriptEnabled(true);
    webSettings.setSavePassword(true);
    // webSettings.setSupportMultipleWindows(true); //?a href problem
    webSettings.getJavaScriptEnabled();
    webSettings.setCacheMode(WebSettings.LOAD_DEFAULT);
    webSettings.setGeolocationEnabled(true);
    webSettings.setAllowFileAccess(true);
    webSettings.setAllowContentAccess(true);
    webSettings.setLoadsImagesAutomatically(true);
    mWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
    // mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(false);
    //  webSettings.setJavaScriptCanOpenWindowsAutomatically(false); //(popup)

我在这里复制并粘贴代码的部分,没有互联网连接显示消息

     mWebView.setWebViewClient(new WebViewClient()
    {

        public void onReceivedError(WebView mWebView, int i, String s, String d1)
        {
            Toasty.error(getApplicationContext(),"No hay conexion a internet!").show();
            mWebView.loadUrl("file:///android_asset/net_error.html");
        }

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
            progressBar.setVisibility(View.VISIBLE);
        }
        @Override
        public void onPageFinished(WebView view, final String url) {
            super.onPageFinished(view, url);
            boolean d = false;
            if(d==false){
                //nestedScrollView.scrollTo(0,0);
                d=true;
            }
        }
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {

            //opening link external browser
            /*if(!url.contains("android_asset")){
                view.setWebViewClient(null);
            } else {
                view.setWebViewClient(new WebViewClient());
            }*/

            if(url.contains("youtube.com") || url.contains("play.google.com") || url.contains("google.com/maps") || url.contains("facebook.com") || url.contains("twitter.com") || url.contains("instagram.com")){
                startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
                return true;
            }
            else if(url.startsWith("mailto")){
                handleMailToLink(url);
                return true;
            }
            else if(url.startsWith("tel:")){
                startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse(url)));
                return true;
            }
            else if(url.startsWith("sms:")){
                // Handle the sms: link
                handleSMSLink(url);

                // Return true means, leave the current web view and handle the url itself
                return true;
            }
            else if(url.contains("geo:")) {
                Uri gmmIntentUri = Uri.parse(url);
                Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
                mapIntent.setPackage("com.google.android.apps.maps");
                if (mapIntent.resolveActivity(getPackageManager()) != null) {
                    startActivity(mapIntent);
                }
                return true;
            }

            view.loadUrl(url);
            return true;
        }

    });

结果 = 正常情况(仅在我的设备中加载 webview) 在此处输入图像描述

错误结果 = 在其他真实设备中没有加载 webview(在这种情况下,只有三星真实设备 android 并且没有其他设备用于截屏并在此处发布显示糟糕情况的图像,我需要进入飞行模式,但 wifi 和数据连接仍在继续问题) 在此处输入图像描述

这是用于制作 android 应用程序的存储库链接 https://github.com/mustafaersoyer/Advanced-Android-WebView

这是只有用户权限的清单文件

<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_GPS" />
<uses-permission android:name="android.permission.ACCESS_ASSISTED_GPS" />
<uses-permission android:name="android.permission.ACCESS_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

标签: androidwebview

解决方案


推荐阅读