حل مشکل WebView در اندروید نسخه چهار

اگر برنامه‌نویس اندروید باشید و اگر تو برنامتون از WebView استفاده کرده باشید، احتمالا به مشکل عجیب نمایش پیغام webpage not available یا page can not be loaded یا ۴۰۴ برخورده باشید. این مشکل به این دلیل عجیبه که شما مطمئنید صفحه‌ای که میخواید تو WebView بازش کنید وجود داره و اینو بارها با مرورگرهای مختلف تست کردید. اما وقتی همون صفحه رو تو WebView باز میکنید با پیغام webpage not available رو به رو میشید. البته دقت کنید که این مشکل تو اندروید چهار ( و احتمالا پایینتر) وجود داره و تو اندروید پنج حل شده.

دلیل وجود این مشکل اینه که webkit که در لایه‌های پایینتر سیستم عامل اندروید وجود داره و انجینی هست برای وب‌ویوو ، SSL سایتهای ایرانی رو معتبر نمیدونه. و از اونجایی که WebView به طور پیشفرض طوری نوشته شده که SSL Errorها رو نمایش نده، تنها چیزی که شما میبینید یه صفحه‌ی سفیده و پیغامی که میگه این صفحه نمیتونه باز شه.

و اما راه‌حل؟

خب راه حلی که میخوام معرفی کنم قطعا بهترین راه حل نیست. ولی اگر از امنیت صفحه‌ای که میخوایید باز کنید مطمئنید میتونه بهترین راه‌حل باشه. البته من متخصص امنیت نیستم و چیز زیادی از کارهایی که هکرها میتونند با SSL بکنند نمیدونم. برای همین اگر امنیت خیلی براتون مهمه،‌ هنگام استفاده از این راه‌حل کمی احتیاط کنید!

برای حل این مشکل تنها کافیه که کلاسی مثل کلاس زیر بنویسید:

 

private class mWebViewClient extends WebViewClient{
        @Override
        public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
            handler.proceed();
        }
    }

و حالا تنها کاری که باید بکنید اینه که یه آبجکت از این کلاس رو به WebView بدید:

 

mWebView.setWebViewClient(new mWebViewClient());

 

و به همین سادگی این مشکل حل خواهد شد : )

پ.ن: این راه حل رو من کشف نکردم حاصل ساعتها زحمت احد عزیزه. اما چون خودش فرصت نداشت راجبش بنویسه من تصمیم گرفتم یه پست با این موضوع بذارم.

5 پاسخ به “حل مشکل WebView در اندروید نسخه چهار”

  1. hosein گفت:

    سلام
    ممنون از مطلب مفیدتون ، جهت اتصال به درگاه بانک ملت توی اندروید از وب ویو استفاده کرده بودیم که دقیقا با مشکل ذکر شده توی اندروید ۴ به پایین مواجه شدیم ، و عملا با این پست شما مشکلمون حل شد .
    تشکر .

  2. سجاد گفت:

    سلام
    ممنون از پست خوبتون مشکل ما رو هم بر طرف کرد. می دونم که بدست اوردن یک همچین راه هایی گاهیی چند روز جستجو تحقیق می بره
    بازم ممنون

  3. شبنم رسایی گفت:

    سلام اقای خویینی ممنونم از راهنماییتون
    با توجه به این کد من برای ورژن ۵ به بالای اندروید مشکلی ندارم ولی در اندروید ۴ هنوز این مشکل هست به این صورت که صفحه سفیده و هیچی نشون نمیده باید توضیح بدم من دارم به درگاه بانک ملت وصل میشم و https نمایش داده نمیشه

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

android application Google I/O HomeBrew ImageMagick Material Design mobile PogressBar RecyclerView splash TEDxKish ux آموزش اندروید الوین تافلر اندروید اپلیکیشن برنامه نویسی برنامه نویسی اندروید برنامه‌نویسی برنامه‌نویسی اندروید تداکس کیش تعمیر تغییر سایز عکس با ترمینال خلاصه کتاب دانش داده دانشگاه دانشگاه ایده‌آل دزد دیتا ساینس رشته مهندسی کامپیوتر ریکامندرسیستم سیستم‌های توصیه‌گر فری‌لنس لپتاپ متریال دیزاین معرفی کتاب موج سوم نوار پیشرفت همایش هوش مصنوعی ُجزیره کیش کار کسب و کار یادگیری عمیق یادگیری ماشین