2017-02-10 3 views
1

Я не мог найти никакого намека на эту тему. Я написал простое приложение для загрузки моего веб-сайта в webView. Сайт содержит много ссылок, а некоторые из них являются внешними. WebView отлично подходит для просмотра. Но я хочу иметь возможность контролировать, что делают эти ссылки. Например, используйте определенную ссылку внутри webView для воспроизведения музыкального файла, например. У меня нет кода, так как мне нечего было попробовать. У меня есть код для моего приложения и webView, но я не понимаю, почему это актуально.Переопределить ссылки в андроиде webview

ответ

2

набор Webview клиента к вашему WebView, вы можете получить каждый нажал ссылку на shouldOverrideUrlLoading() метод с URL

YourWebView.setWebViewClient(new WebClientClass()); 

Вот ваш WebClientClass

public class WebClientClass extends WebViewClient { 

     @Override 
     public void onPageStarted(WebView view, String url, Bitmap favicon) { 
      super.onPageStarted(view, url, favicon); 

     } 

     @Override 
     public boolean shouldOverrideUrlLoading(final WebView view, final String url) { 
      // You have clicked link url here, do what you want here 
      return true; 
     } 

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

     } 

    } 
1

добавление к @Divyang ответ

shouldOverrideUrlLoading(WebView view,String url) устарел в Android N, поэтому используйте ниже двух методов:

@SuppressWarnings("deprecation") 
@Override 
public boolean shouldOverrideUrlLoading(WebView view, String url) { 
    final Uri uri = Uri.parse(url); 
    return true; 
} 

@TargetApi(Build.VERSION_CODES.N) 
@Override 
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { 
    final Uri uri = request.getUrl(); 
    return true; 
} 
Смежные вопросы