Arkadaşlar merhaba,
Android Studio ile webview uygulaması yaptım. Girişte internet kontrolünü sağlıyorum. Eğer inetrenet yoksa farklı bir activity çaılışıyor. Fakat uygulama açıldıktan sonra internet bağlantısı kesildiğinde, herhangi bir link tıklarsam "web sayfası mevcut değil" diye hata sayfası çıkıyor. Bu hatanın çıkmasını nasıl engelleyebilirim. Link tıklandığından internet yoksa farklı bir activity çalışsın.
Webview İnternet Kontrolü
4
●2.011
- 24-01-2017, 22:58:59
private void connectionControl() { if(isNetworkStatusAvialable (getApplicationContext())) { // } else { AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setTitle("SShop"); builder.setMessage("İnternet bağlantınız bulunmamaktadır."); builder.setCancelable(false); builder.setPositiveButton("Kapat", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { finish(); System.exit(0); } }); builder.show(); } } public static boolean isNetworkStatusAvialable (Context context) { ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); if (connectivityManager != null) { NetworkInfo netInfos = connectivityManager.getActiveNetworkInfo(); if(netInfos != null) if(netInfos.isConnected()) return true; } return false; }Bunları ekledikten sonra onCreate'de connectionControl fonksiyonunu çağırarak yapabilirsin. - 26-01-2017, 16:40:28Kimlik doğrulama veya yönetimden onay bekliyor.Webview ın delege methodlarını override etmen gerekiyor. Eğer yükleme başarısız olursa; şu alert diyaloğunu göster yada şu aktivity i aç gibisinden bir kontrol eklenebilir. Önrke kullanım şunun gibi birşey
webView.setWebViewClient(new WebViewClient(){
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
// Sayfayı goruntuleyemedi. Bir uyarı göster webviewı gizle vs.
}
}); - 26-01-2017, 20:24:14Hocam tam olarak nereye eklemem lazım. Denedim ama hata verdi. Kodlar aşağıdaki gibi.AwoApp adlı üyeden alıntı: mesajı görüntüle
package com.example.ramazan.myapplication; import android.annotation.SuppressLint; import android.app.Activity; import android.app.AlertDialog; import android.content.BroadcastReceiver; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.support.annotation.DrawableRes; import android.util.Log; import android.view.View; import android.webkit.WebView; import android.webkit.WebViewClient; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.widget.Toast; public class MainActivity extends Activity { WebView myWebView; @SuppressLint("SetJavaScriptEnabled") protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); WebView myWebView = (WebView) findViewById(R.id.web_engine); myWebView.setWebViewClient(new MyBrowser()); myWebView.clearCache(true); myWebView.clearHistory(); myWebView.getSettings().setJavaScriptEnabled(true); myWebView.getSettings().setLoadsImagesAutomatically(true); myWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); InternetControl kontrol = new InternetControl(); Boolean internetVarMi = kontrol.checkNow(getApplicationContext()); if(internetVarMi == false){ Toast.makeText(getApplicationContext(), "İnternet Bağlantınız Yok!", Toast.LENGTH_LONG).show(); finish(); Intent activityHata = new Intent(getApplicationContext(),ActivityHata.class); startActivity(activityHata); }else{ Toast.makeText(getApplicationContext(), "İnternet Bağlantınız Mevcut", Toast.LENGTH_LONG).show(); myWebView.loadUrl("http://www.ruyatabirleriara.com/"); } } private class MyBrowser extends WebViewClient { @Override public void onPageFinished(WebView view, String url) { if (findViewById(R.id.splach_screen).getVisibility() == View.VISIBLE) { findViewById(R.id.main_view).setVisibility(View.VISIBLE); findViewById(R.id.splach_screen).setVisibility(View.GONE); } } } @Override public void onBackPressed() { this.myWebView = (WebView) findViewById(R.id.web_engine); if(myWebView.canGoBack()){ myWebView.goBack(); }else{ AlertDialog.Builder alertDialog = new AlertDialog.Builder(this); alertDialog.setTitle("www.ruyatabirleriara.com"); alertDialog.setIcon(R.drawable.ruya_favicon); alertDialog.setMessage("Uygulamadan Çıkmak İstediğinize Emin misiniz?"); alertDialog.setPositiveButton("Evet", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { finish(); } }); alertDialog.setNegativeButton("Hayır", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { } }); alertDialog.show(); } } }