java - android webview 无连接错误

标签 java android webview network-connection

我试图显示一个没有连接的自定义错误,但它不起作用 下面是代码 在 manifest.xml 中我提供了网络状态。 Connection() 正在检查类中的网络状态。希望这有助于解决问题。

package com.testing.webview;

import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;

public class MainActivity extends Activity {
    public static final int DIALOG_NONETWORK = 0;
    WebView mWebView;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        if(!Connection()){
            Context context = getApplicationContext();
            CharSequence text = "Sorry you need an Internet connection!  Please try again when the network is available.";
            int duration = Toast.LENGTH_LONG;
            Toast toast = Toast.makeText(context, text, duration);
            toast.show();
            finish();
        }

        mWebView = (WebView) findViewById(R.id.webview);
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.loadUrl("file:///android_asset/index.html");
        mWebView.setWebViewClient(new HelloWebViewClient());
        mWebView.setBackgroundColor(Color.TRANSPARENT);
    }


    public boolean Connection() { 
        ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
        NetworkInfo netInfo = cm.getActiveNetworkInfo(); 
        if (netInfo != null && netInfo.isConnectedOrConnecting()){ 
            return true;
        }
        else{
            return false;
        } 
    }


    private class HelloWebViewClient extends WebViewClient {        

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
            mWebView.goBack();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
}

最佳答案

为什么在没有连接的情况下完成 Activity ?

toast 如:

Toast.makeText(getApplicationContext(),"Network is down",
                        Toast.LENGTH_SHORT).show();

然后让 View 显示某种按钮来“重试”网络请求,这就是我无论如何都会做的。 Toast 当前未显示可能是因为 Activity 在 toast 后立即关闭,因此没有足够的时间显示它

关于java - android webview 无连接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9167567/

相关文章:

java - 从内部 for 循环中打破外部 while 循环

java - 如果 Web 服务器已经创建了线程,为什么还要手动创建线程?

java.text.ParseException : Unparseable date: 异常

android - Webview自动输入用户名和密码的方法

java - 查找 JPA 的最新条目

java - View 可以从其父 View 中播放动画吗?

android - 如何识别 Drawable xml 文件?

java - 对音频信号实现高通滤波器

android webview pdf 查看

java - Android Javascript 网页 View