Deshabilitar vínculos de WebView funciona en el emulador pero no en el dispositivo

Deseo desactivar los vínculos de una página que estoy cargando en mi objeto WebView. Mi código funciona perfectamente en mi emulador con api 25, pero no en mi teléfono con 23 api.

Este es el código que bloquea los enlaces de mi WebView:

public class NoLinksWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { return true; } } 

Estoy fijando mi WebViewClient para ser un objeto del tipo NoLinksWebViewClient. Hace el truco en el emulador pero no en mi teléfono real.

¿Cómo resolver esto?

Mi código funciona perfectamente en mi emulador con api 25, pero no en mi teléfono con 23 api.

Creo que la diferencia crucial no es emulador vs dispositivo, pero diferentes niveles de API. Si observa la documentación de WebViewClient , notará que hay dos métodos similares pero diferentes:

 // since API 24 boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) // before API 24, now deprecated boolean shouldOverrideUrlLoading(WebView view, String url) 

Como ha reemplazado sólo el método más reciente, en su dispositivo anterior funciona la lógica predeterminada. Esto ocurre porque obviamente el dispositivo API 23 no podía saber que en API 24 el método será reemplazado por otro diferente, por lo que todavía llama al método antiguo (ahora obsoleto).

Creo que para solucionar el problema sólo debe anular ambos métodos.

El método shouldOverrideUrlLoading (WebView view, String url) está obsoleto en la API 24 y se agrega el método shouldOverrideUrlLoading (WebView view, WebResourceRequest request) en la API 24.

  @SuppressWarnings("deprecation") @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { return true; } @TargetApi(Build.VERSION_CODES.N) @Override public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { return true; } 

Espero que esto te ayude.

¿Es javafx.scene.Node.setDisable(boolean arg0) una opción? De esta manera puede bloquear elementos de ser utilizado

Documentación

  • Determinar el ancho de una cadena en una fuente determinada
  • Java.lang.IllegalStateException Necesita utilizar un tema Theme.AppCompat (o descendente) con esta actividad
  • Cómo obtener el texto ellipsizado en un TextView
  • Informe Leakcanary de pérdida de memoria usando Otto
  • Mediante la consulta Sqlite, obtenga una fecha de milisegundos almacenados
  • Body.setTransform no funciona dentro del oyente de contacto (andEngine y box2d)
  • Determinar la existencia de la función Streetview de Google
  • Error de segmentación en la biblioteca nativa cuando se ejecuta bajo Android antes de 4.0.3
  • Analiza el formato de fecha de JSON en String usando GSON en Android
  • FQL Query para obtener cumpleaños de amigos de Facebook en los próximos 30 días con Android
  • La carga de archivos zip por FTP está dañada a veces
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.