Wie bekomme ich Webview iframe Link, um den Browser zu starten?

Ich benutze ein WebView, um eine Seite anzuzeigen, in der die HTML enthält ein iframe mit src = "xxxxx.php".

Dieses iframe lädt als Anzeigenbild mit einem zugrunde liegenden Link. Wenn ich auf dieses Bild klicke (Link), versucht es, die neue Seite in original iframe zu laden (was in diesem kleinen Platz nicht viel zeigt). Was ich passieren möchte, klickt auf den Link, um die Seite in einem neuen Browserfenster zu öffnen und meine App zu verlassen.

Wenn ich den Android-Browser benutzt, um die Original-Seite anzuzeigen und auf diesen iframe zu klicken, lädt er den Link als neue Seite. Wie bekomme ich das gleiche Verhalten mit einem WebView? Mit einem WebViewClient mit shouldOverrideUrlLoading () scheint nicht von der iframe-Verbindung aufgerufen zu werden.

  • SwipeRefreshLayout + WebView, wenn die Bildlaufposition oben ist
  • Android - Laden und Installieren von apk-Datei in Webview
  • TLS 1.1, 1.2 in WebView für Android <= 4.3
  • Wie man HTML-Inhalte von WebView mit Http Post abruft und modifiziert
  • Android - CoordinatorLayout / NestedScrollView / Hide-Show Symbolleiste / Ausgabe mit WebView
  • So erhalten Sie Selected Text in WebView Android
  • (Wie) kann ich die Kontingentgrenze von LocalStorage in Android WebView erhöhen
  • Autosuggestion auf WebView deaktivieren?
  • 2 Solutions collect form web for “Wie bekomme ich Webview iframe Link, um den Browser zu starten?”

    Ich hatte ein ähnliches Problem mit Google-Anzeigen in einer WebView-Quelle, da sie auch in einem iframe laden. So habe ich es gelöst:

    Versuchen Sie dies in Ihrem WebViewClient, in der Regel unter Ihrem 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()); } } } 

    Ich kann ein Update vor dem vorherigen Code vorschlagen:

     @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(); } } } 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.