Redirigir la vista web de Android con el filtro de intenciones

Tengo una URL específica que deseo redirigir a una actividad específica de mi aplicación desde una vista web con un filtro de intenciones. Cómo implementar mi propio esquema de URI en Android describió cómo hacer esto para una página de navegador, pero este mismo filtro de intención no funciona cuando se accede a esa URL a través de la vista web. ¿Hay algo más que se debe agregar a este filtro de intenciones para capturar estos vínculos de webview?

<intent-filter> <action android:name="android.intent.action.VIEW"></action> <category android:name="android.intent.category.DEFAULT"></category> <category android:name="android.intent.category.BROWSABLE"></category> <data android:host="myurl.com/stuff" android:scheme="http"></data> </intent-filter>` 

No tengo filtros de intención y webviews para trabajar juntos sólo con declarar la intención en el manifiesto y creo que no se supone que. (Me pregunto por qué …) Creo que la forma de hacerlo es capturar urls cuando se trata de abrirlos en la webview y crear una intención entonces.

Entonces, para un registro de actividad como sigue en el manifiesto:

 <activity android:name=".PretendChat"> <intent-filter> <action android:name="android.intent.action.VIEW"></action> <category android:name="android.intent.category.DEFAULT"></category> <category android:name="android.intent.category.BROWSABLE"></category> <data android:host="chat" ></data> <data android:scheme="testing"></data> <data android:pathPattern=".*"></data> </intent-filter> </activity> 

Usted esperaría que la actividad que PretendChat abra al hacer clic en un vínculo como el siguiente: "testing: // chat" dentro de la webview. Para que esto suceda, necesitará el siguiente código en el cliente de vista web que está utilizando en la vista web. Suponga que la actividad que inicia la vista web se llama WebviewActivity.

 private class TestWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { try { Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse(url)); WebviewActivity.this.startActivity(intent); } catch(ActivityNotFoundException e) { Log.e(LOGTAG,"Could not load url"+url); } return super.shouldOverrideUrlLoading(view, url); } } 
  • Android Talkback no lee caracteres utf-8 en la vista Web usando html
  • ShouldOverrideUrlLoading se llama SOLAMENTE para ALGUNAS páginas web
  • Habilitación de la compatibilidad con WebGL para Android WebView
  • Webview no desplazamiento después de agregar setOnTouchListener
  • Cómo cargar o recuperar una página web en modo en línea y fuera de línea en la aplicación android?
  • Android 7 WebView con wrap_content
  • Android WebView impide la recarga de la página
  • ¿Por qué se detiene el Javascript cuando presiona mucho tiempo en un dispositivo Android o iOS?
  • Cómo ver la transmisión de vídeo RTSP a través de WebView en la aplicación para Android
  • Obtener el código HTML de WebView cargado
  • Chromium webview no parece funcionar con Android applyOverrideConfiguration
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.