کلیدستان

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

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

کد پی‌اچ‌پی:
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 شروع می‌شوند در برنامه جدید(مانند کروم) باز نکند که این قسمت از کد درست کار می‌کند.
سلام.
بنده حدس می زنم زمانی باید cache را پاک کنید که صفحه کاملا بارگذاری (load) شده باشد :

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


منبع :

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

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

کد پی‌اچ‌پی:
@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 را باز می‌کند)