2012-12-07 13 views
9

Mam WebView, w którym ładuję stronę z niestandardowym łączem (jak app: // action). Zarejestrowałem schematy adresów URL w pliku manifestu i po kliknięciu linku metoda onResume() mojej aktywności jest wywoływana z poprawnymi danymi i działa poprawnie.Jak przechwytywać obciążenia adresu URL w WebView (Android)?

Mój problem polega na tym, że WebView nadal próbuje załadować łącze, a mój WebView kończy się, aby wyświetlić komunikat "Strona niedostępna". Nie chcę tego.

Jak mogę zapobiec ładowaniu adresu URL przez WebView?

Oto mój kod:

WebView banner = ... 
banner.setWebViewClient(new WebViewClient() { 

    @Override 
    public void onLoadResource(WebView view, String url) { 

     if (url.startsWith("app://")) { 

      Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url), getContext(), Main.class); 
      //startActivity(i); 
     } 
    } 
} 

banner.loadUrl("url_to_the_banner"); 

Odpowiedz

6

Ale musi to return false w przeciwnym razie tak:

@Override 
public boolean shouldOverrideUrlLoading(WebView view, String url){ 
    if(url.startsWith(myString){ 
     // handle by yourself 
     return true; 
    } 
    // ... 
    return false; 
} 
Powiązane problemy