gpt4 book ai didi

java - 当没有可用连接时显示 toast 错误并阻止显示 webview

转载 作者:行者123 更新时间:2023-12-02 10:08:31 26 4
gpt4 key购买 nike

当没有可用连接时,它会显示默认的浏览器错误页面,我们想要的只是不显示任何浏览器错误页面,而是显示一条 toast 消息和一个空白屏幕。

我的代码:

public class EarnFragment extends Fragment {
WebView mWebView;


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {

View v=inflater.inflate(R.layout.fragment_earn, container, false);
mWebView = (WebView) v.findViewById(R.id.webview);
mWebView.loadUrl("https://demo.hazzardweb.com/easylogin-pro/");

// Enable Javascript
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);

// Force links and redirects to open in the WebView instead of in a browser
mWebView.setWebViewClient(new WebViewClient());

return v;
}

}

最佳答案

如果你想显示黑屏而不是网页 View ,首先你需要更改你的布局文件。然后在加载网址之前检查互联网连接。检查互联网连接是否不可用,此时隐藏您的 WebView 并显示您的 Toast 消息和相关布局。否则隐藏Relativelayout noConnection。

第 1 步:创建这样的布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">

<WebView
android:id="@+id/webViewData"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />

<RelativeLayout
android:id="@+id/noConnection"
android:layout_width="match_parent"
android:background="#000000"
android:layout_height="match_parent"/>
</RelativeLayout>

</LinearLayout>

第 2 步:使用此功能检查您的互联网连接。

public static boolean checkInternetConnection(Context context) {
if (context != null) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (cm != null) {
return cm.getActiveNetworkInfo() != null && cm.getActiveNetworkInfo().isAvailable() && cm.getActiveNetworkInfo().isConnected() && cm.getActiveNetworkInfo().isConnectedOrConnecting();
} else {
return false;
}
} else {
return false;
}

}

最后在加载您的网址之前在代码中执行此操作,

public class EarnFragment extends Fragment {
WebView mWebView;
RelativeLayout noConnection;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {

View v=inflater.inflate(R.layout.fragment_earn, container, false);
mWebView = (WebView) v.findViewById(R.id.webview);
noConnection = (RelativeLayout)v.findViewById(R.id.noConnection);

// Enable Javascript
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);

if(checkInternetConnection(getActivity())){
noConnection.setVisibility(View.GONE);
mWebView.setVisibility(View.VISIBLE);
mWebView.loadUrl("https://demo.hazzardweb.com/easylogin-pro/");

}else{
noConnection.setVisibility(View.VISIBLE);
mWebView.setVisibility(View.GONE);
}


// Force links and redirects to open in the WebView instead of in a browser
mWebView.setWebViewClient(new WebViewClient());

return v;
}

关于java - 当没有可用连接时显示 toast 错误并阻止显示 webview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55159551/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com