انجمن سایت کلیدستان


رتبه موضوع:
  • 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
پردازش روی url صفحه بارگیری شده در Webview ، در برنامه اندروید

پردازش روی url صفحه بارگیری شده در Webview ، در برنامه اندروید

#1
با سلام
چگونه می‌توان روی آدرسی که در Web view در حال اجرا است و به صورت String تعریف نشده و ممکن است هر لینکی باشد، دستورات خاصی را اجرا کرد؟
مثلا اگر google.com باز بود کش را دخیره نکند و اگر از طریق گوگل سایت‌های تصادفی دیگر باز شد کش را ذخیره کند.
 

 
پاسخ

پردازش روی url صفحه بارگیری شده در Webview ، در برنامه اندروید

#2
در حال حاضر کد من به صورت زیر است:

کد پی‌اچ‌پی:
mWebView.setWebViewClient(new WebViewClient() {
           public 
boolean shouldOverrideUrlLoading(WebView viewString url) {
                if (
url != null && url.startsWith("http://google.com")) {
                     return 
false;
                } 
                if (
url.startsWith("http://google.com")){mWebView.clearCache(true); return true;}
                else{
                     
view.getContext().startActivity( new Intent(Intent.ACTION_VIEWUri.parse(url)));
                               
                    return 
true;
                }
            }
           @
Override
           
public void onReceivedError(WebView viewint errorCodeString descriptionString failingUrl) {
                
mWebView.loadUrl("file:///android_asset/network-error.html");
            } 
        }); 

در کد بالا من قصد دارم کش گوگل را دخیره نکنم و با هر بار باز شدن اطلاعات دوباره دریافت شوند اما در بقیه صفحات که از طریق گوگل باز می‌شود(مانند سایت کلیدستان) کش را ذخیره کند. اما کد به درستی کار نمی‌کند و کش گوگل را دخیره می‌کند. همچنین در کد بالا من قابلیتی را اضافه نموده‌ام که لینک‌هایی با google.com شروع می‌شوند در برنامه جدید(مانند کروم) باز نکند که این قسمت از کد درست کار می‌کند.
پاسخ

پردازش روی url صفحه بارگیری شده در Webview ، در برنامه اندروید

#3
سلام.
بنده حدس می زنم زمانی باید cache را پاک کنید که صفحه کاملا بارگذاری (load) شده باشد :

کد پی‌اچ‌پی:
@Override
public void onPageFinished(WebView viewString url) {
     
super.onPageFinished(viewurl);
     
view.clearCache(true);


منبع :

http://stackoverflow.com/questions/75377...1#10701961

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط salar1298

پردازش روی url صفحه بارگیری شده در Webview ، در برنامه اندروید

#4
ضمن تشکر از پاسختان،کدی که قرار دادید درست کار می‌کند اما من در اجرا کردن دستورات شرطی با مشکل مواجه می‌شوم. من کد را به شکل زیر تغییر دادم:

کد پی‌اچ‌پی:
@Override
           
public void onPageFinished(WebView viewString url) {
                
super.onPageFinished(viewurl);
                if(
url.startsWith("http://google.com")){
                
mWebView.clearCache(true);}
                else{
mWebView.clearCache(false);}

           } 

اما کد به درستی کار نمی‌کند و با آزمایشی که انجام دادم مشخص شد کش تمامی صفحات را پاک می‌کند.(در مثال بالا WebView به صورت پیش‌فرض google.com را باز می‌کند)
پاسخ
 سپاس شده توسط شماره مجازی امارات


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان