تایتل قالب طراحی سایت سئو قالب بیان
این جهان ، جهان تغییر است نه تقدیر...


در یکی از پروژه هایی که داشتم برای لود کردن خبر از آدرس صفحه استفاده کردم ، یعنی آدرس خبر را در WebView لود میکردم تا هم مشکل فونت و عکس و بزرگ و کوچک بودن متن حل شود هم یک ویو در سایت برای مان اضافه شود.


همه چیز خیلی خوب بود و در همه سایز ها و ورژن های مختلف بخوبی کار میکرد .

بعد از چند وقت یکی از دوستان که گوشی سامسونگ A5 2017 اندروید 8 داشت ، به من گفت که صفحه خبر برای من باز نمیشود و خطا میدهد.

جالب اینجاست که خودم همین گوشی را داشتم و کاملا بدون نقص برای من اجرا میشد ، گوشی را گرفتم و تست کردم ، دیدم در تمامی صفحات که WebView داشتم کرش میکنه ، چند اپلیکیشن خبری دیگر که WebView داشتن را روی گوشیش نصب کردم مانند( آخرین خبر) دیدم صفحه های WebView کرش میکنه ، گویا این مشکل واقعا وجود دارد و کسی متوجه نشده است .


در اینترنت جستجو کردم هیچ منبعی پیدا نکردم که این مشکل را گزارش کرده باشد . چند روز درگیر حل این مشکل شدم تا فهمیدم که در بعضی از گوشی ها که اندروید آنها آپدیت شده باشد ، زمانی که اینترنت کندی داشته باشند سیستم عامل Android System WebView را ناقص آپدیت میکند و ما به مشکل میخوریم . 


هیچ راهی برای حل این مشمل نیست ، تنها میتوانیم جلوی کرش کردن را بگیریم . (اگر کسی راهی پیدا کرد کامت بزارد)

وقتی قرار است اکتیویتی اجرا شود در متد setContentView جلوی کرش کردن را بگیریم.


    try {
            setContentView(R.layout.act_news_1);
        } catch (Exception e) {
            e.printStackTrace();
            setContentView(R.layout.act_news_2);
        }

اگر کرش نکند لایه act_news_1 اجرا میشود و اگر کرش کند لایه act_news_2 .

در لایه act_news_2 میتوانید بجای وب ویو صفحه را دانلود کنید و بصورت html در textView نمایش دهید.


txtView.setText((Html.fromHtml(htmlText)));




نظرات (۲)

  • محمد
    سه شنبه ۲۲ آبان ۹۷ , ۱۶:۰۶
    خیلی عالی بود و قشنگ توضیح دادی بود تشکر
  • aliz6398suisiTerminator
    چهارشنبه ۱ تیر ۰۱ , ۰۳:۲۱

    برنامه ساخته شده تنها در گوشی که توسطش ساخته شده نصب میشه و به درستی کار میکنه برای دیگر درست کار نمیکنه اگه یه وقت مشکل مربوط به نصب نشدن پیش اومد با برنامه رو امضا کرد خب معلومه با try catch میشه جلوی کرش رو گرفت اینو تو جاوا اسکریپت هم داشتم

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی