EN

Search
Close this search box.

موستانگ، وحشیِ دوست داشتنی

پاسخ داده شد
0
0

گاهی اوقات پیش می آید که می خواهیم یک صفحه از سایتمان را طوری نشان دهیم که به نظر نیاید که از مرورگر نمایش داده می شود. برای این کار چه باید کرد؟

 

حذف هدر و فوتر از صفحه سایت در اندروید - موستانگ

  • شما باید برای ارسال دیدگاه شوید
پاسخ عالی
0
0

همان طور که در این پست توضیح داده شده ، برای نمایش سایت در اپلیکیشن اندروید باید از کلاس WebView استفاده کنیم.

حالا باید یک کار اضافه هم انجام بدهیم:

یعنی باید فایل XML  آن صفحه ای که می خواهیم نمایش دهیم را پردازش کرده و قسمت هدر ( header ) و فوتر ( footer ) را از آن حذف کنیم ( ما کار پردازش XML را با کتابخانه jsoup انجام می دهیم. برای استفاده از jsoup ، باید آن را در فایل build.gradle تعریف کنید، بصورت زیر:

implementation 'org.jsoup:jsoup:1.10.3'

*دقت شود که هنگام Build کردن ، ابزار تحریم شکن روشن باشد!

*دقت کنید که کار با WebView باید در UI Thread یعنی Thread اصلی انجام شود. ولی کار با jsoup باید در یک non UI Thread انجام شود ( ما از AsyncTask استفاده می کنیم) . پس کاری که باید انجام بدهیم این است که:

ابتدا در یک Thread پس زمینه ( یعنی در متد doInBackground از کلاس AsyncTAsk ) فایل XML را گرفته و آن را پردازش کنیم. سپس در متد onPostExecute، آن را برای نمایش به WebView بدهیم.

 

کلاس AsyncTask :

public class ShowArticle extends AsyncTask<Void, Void, Void[]> {


        private String link;
        private WebView mWebView = (WebView) findViewById(R.id.webView);
        private String document_to_string;


        public ShowArticle(String link) {
            this.link = link;
        }

        protected Void[] doInBackground(Void... v) {

            try {

                //removing header and footer of the page ...........................................
                Document document = Jsoup.connect(link).get();
                document.getElementsByClass("wgl-theme-header").remove();
                document.getElementsByClass("footer").remove();
                document_to_string=document.toString();
            }
            catch (IOException e)
            {

            }

            return v;
        }

        @Override
        protected void onPostExecute(Void[] v) {
            super.onPostExecute(v);

            WebSettings ws = mWebView.getSettings();
            ws.setJavaScriptEnabled(true);
            //mWebView.loadData(document.toString(),"text/html","utf-8");
            mWebView.loadDataWithBaseURL(link, document_to_string, "text/html", "utf-8", "");

        }


    }

 

کلاس MainActivity :

//Showing article ..........................................................................
        ShowArticle showArticle = new ShowArticle(link);
        showArticle.execute();

 

*دقت شود که به جای اسم کلاس های “wgl-theme-header” و “footer” ، ممکن است لازم باشد اسم کلاس های منحصر به سایتتان را قرار دهید.

  • شما باید برای ارسال دیدگاه شوید
نمایش 1 نتیجه
پاسخ شما
اگر قبلاً حساب کاربری دارید با پر کردن فیلد های زیر یا به عنوان مهمان ارسال کنید.
نام*
ایمیل*
وب سایت