¿Cómo obtener el enlace webview iframe para iniciar el navegador?
Estoy utilizando un WebView para mostrar una página en la que el html incluye un iframe donde src = "xxxxx.php".
Este iframe se carga como una imagen de anuncio con un enlace subyacente. Si hago clic en esa imagen (enlace), intenta cargar la nueva página dentro del iframe original (que no muestra mucho en ese pequeño espacio). Lo que quiero suceder es hacer clic en el enlace para abrir la página en una nueva ventana del navegador, dejando mi aplicación como está.
- Vista web de Android: borra completamente el caché
- Muxing vista previa de la cámara h264 codificado flujo elemental con MediaMuxer
- ¿Cómo desactivo mi diálogo de progreso después de cargar la vista web?
- Android studio designer preview: cómo incluir el marco del dispositivo?
- Cómo mover caché webView a SD?
Si utilizo el navegador de Android para mostrar la página original y hacer clic en este iframe, carga el enlace como una nueva página. ¿Cómo obtengo el mismo comportamiento con un WebView? El uso de un WebViewClient con shouldOverrideUrlLoading () no parece ser llamado por el enlace iframe.
- WebView no mostrar el sitio web cuando está fuera de línea
- Android webView shouldOverrideUrlLoading para iframes
- 101 maneras de borrar una caché de WebView - todas las cuales no funcionan
- ¿Alguien ha limitado con éxito el tamaño de la caché de su WebView?
- Android Web-View: Inyectar el archivo Javascript local a la página web remota
- Nexus 4 aspecto de vista previa de la cámara ¿La relación siempre requiere una vista de superficie 16x9? Por qué
- Gestión de iframe haga clic en Android WebView
- Versión no compatible de major.minor 52.0 al renderizar en Android Studio
Tuve un problema similar con los anuncios de Google en un origen de WebView, ya que cargar en un iframe también. Así es como lo resolví:
Pruebe esto en su WebViewClient, por lo general bajo su shouldOverrideUrlLoading ()
@Override public void onLoadResource (WebView view, String url) { if (url.contains("googleads")) { if(view.getHitTestResult().getType() > 0){ view.getContext().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url))); view.stopLoading(); Log.i("RESLOAD", Uri.parse(url).toString()); } } }
Puedo proponer una corrección al código anterior:
@Override public void onLoadResource (WebView view, String url) { if (url.contains("googleads")) { if(view.getHitTestResult() != null && (view.getHitTestResult().getType() == HitTestResult.SRC_ANCHOR_TYPE || view.getHitTestResult().getType() == HitTestResult.SRC_IMAGE_ANCHOR_TYPE)){ view.getContext().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url))); view.stopLoading(); } } }