Merhabalar. Herkese iyi çalışmalar.
Flutter ile oluşturduğum bi webview uygulamasında interneti kapattığımda doğal olarak web sayfasını yükleyemiyor ve şöyle bir hata ekranı veriyor.
>
Bu ekranın kullanıcıya görünmemesini veya kendi hata ekranımızın görünmesini nasıl sağlayabiliriz? Kullanıcı bu ekranı hiçbir şekilde görmemeli.

  • HseyinAkkaya replied to this.
    • karakartal inappwebview için şunu kullanabilirsiniz

       onLoadError: (InAppWebViewController controller, String url, int i, String s) async {
            print('CUSTOM_HANDLER: $i, $s');
              setState(() {
                    hasError=true;
                  });
          },
          onLoadHttpError: (InAppWebViewController controller, String url, int i, String s) async {
            print('CUSTOM_HANDLER: $i, $s');
              setState(() {
                    hasError=true;
                  });
          },

    karakartal En basit şekilde
    bool hasError = false;


    tanımlayıp


    Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: const Text('Flutter WebView example'),
            backgroundColor: appBarColor,
          ),
          body: hasError? Center(
                    child: Padding(
                      padding: const EdgeInsets.only(left: 8.0, right: 8.0),
                      child: Text(
                        text: "Something went wrong, please try again", 
                      ),
                    ):
            WebView(
              initialUrl: 'https://google.com/',
              onWebResourceError: (WebResourceError error) {
                print("WebresourceError occured!");
                setState(() {
                  hasError=true;
                });
              },
            )
        );
      }

    Şeklnde hata durumda ekrana uyarı yazdırabilirsiniz.

    HseyinAkkaya cevap için teşekkür ederim bunu deneyeceğim ancak inappwebview paketi kullanıyorum bu çözüm yine geçerli olur mu ?

    karakartal inappwebview için şunu kullanabilirsiniz

     onLoadError: (InAppWebViewController controller, String url, int i, String s) async {
          print('CUSTOM_HANDLER: $i, $s');
            setState(() {
                  hasError=true;
                });
        },
        onLoadHttpError: (InAppWebViewController controller, String url, int i, String s) async {
          print('CUSTOM_HANDLER: $i, $s');
            setState(() {
                  hasError=true;
                });
        },

    HseyinAkkaya
    Dostum çok teşekkür ederim üzerinde biraz değişiklik ile günlerdir aradığım sorunun cevabını verdin bana varsayılan hata sayfası yerine kendi hata sayfamı oluşturdum .

    Write a Reply...