यह निर्धारित करने के लिए कि डिवाइस के पास नेटवर्क कनेक्शन कब है, अनुमति <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
पर अनुरोध करें और फिर आप निम्न कोड से जांच सकते हैं। पहले कक्षा चर के रूप में इन चर को परिभाषित करें।
private Context c;
private boolean isConnected = true;
अपने onCreate()
विधि में c = this;
प्रारंभ फिर कनेक्टिविटी के लिए जाँच करें।
ConnectivityManager connectivityManager = (ConnectivityManager)
c.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivityManager != null) {
NetworkInfo ni = connectivityManager.getActiveNetworkInfo();
if (ni.getState() != NetworkInfo.State.CONNECTED) {
// record the fact that there is not connection
isConnected = false;
}
}
फिर WebView
requets अवरोधन करने के लिए, आप निम्नलिखित की तरह कुछ कर सकता है। यदि आप इसका उपयोग करते हैं, तो आप शायद onReceivedError
विधि में उपलब्ध कुछ जानकारी शामिल करने के लिए त्रुटि संदेशों को कस्टमाइज़ करना चाहेंगे।
final String offlineMessageHtml = "DEFINE THIS";
final String timeoutMessageHtml = "DEFINE THIS";
WebView browser = (WebView) findViewById(R.id.webview);
browser.setNetworkAvailable(isConnected);
browser.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (isConnected) {
// return false to let the WebView handle the URL
return false;
} else {
// show the proper "not connected" message
view.loadData(offlineMessageHtml, "text/html", "utf-8");
// return true if the host application wants to leave the current
// WebView and handle the url itself
return true;
}
}
@Override
public void onReceivedError (WebView view, int errorCode,
String description, String failingUrl) {
if (errorCode == ERROR_TIMEOUT) {
view.stopLoading(); // may not be needed
view.loadData(timeoutMessageHtml, "text/html", "utf-8");
}
}
});
मैंने आपके द्वारा उल्लिखित त्रुटियों पर एक नज़र डाली और उन्हें संबोधित करने के लिए मेरा जवाब अपडेट किया। एंड्रॉइड प्रोजेक्ट के साथ बहुत दूर जाने से पहले आप जावा से अधिक परिचित होना चाह सकते हैं। इन छोटी त्रुटियों को डीबग करने और समस्याओं को हल करने की कोशिश करते समय एक अच्छी जावा नींव बेहद मददगार होगी। अगर आपको इसके साथ कोई अन्य समस्या आती है तो मुझे बताएं। – Brian
ब्रायन, कोड को देखने के लिए धन्यवाद, मैं आपकी सहायता की सराहना करता हूं। मैंने "onReceivedError" कोड का उपयोग करके और "टाइमआउट मैसेज एचटीएमएल" स्ट्रिंग को लोड करने के बजाय समाप्त किया, मेरे पास एक नया रैखिक लेआउट है जिसे मैंने बनाया है जिसमें कस्टम त्रुटि संदेश है "setContentView()" है। इसके अलावा, आप एक अच्छी जावा नींव रखने के बारे में 100% सही हैं। मैंने कुछ जावा पुस्तकें पढ़ी हैं और मैं वर्तमान में जावा क्लास ले रहा हूं, हालांकि मैं कर कर सबसे अच्छा सीखता हूं, इसलिए मुझे लगता है कि ऐप बनाने से जावा सीखने का बेहतर तरीका क्या है। फिर से Thx। –
मुझे सहायता की खुशी है और आपको खुशी है कि आप इसे काम कर रहे हैं! – Brian