Как получить ссылку Webview iframe для запуска браузера?

Я использую WebView для отображения страницы, в которой html включает iframe, где src = "xxxxx.php".

Этот iframe загружается как изображение с базовой ссылкой. Если я нажму на это изображение (ссылку), он попытается загрузить новую страницу в исходном iframe (что мало показывает в этом небольшом пространстве). То, что я хочу сделать, – это щелкнуть ссылку, чтобы открыть указанную страницу в новом окне браузера, оставив мое приложение как есть.

Если я использую браузер Android для отображения исходной страницы и нажимаю на этот iframe, он загружает ссылку как новую страницу. Как получить такое же поведение с помощью WebView? Использование WebViewClient с shouldOverrideUrlLoading (), похоже, не вызвано ссылкой iframe.

Solutions Collecting From Web of "Как получить ссылку Webview iframe для запуска браузера?"

У меня была аналогичная проблема с рекламой google в источнике WebView, так как они загружаются также в iframe. Вот как я это решил:

Попробуйте это в своем WebViewClient, как правило, под вашим mustOverrideUrlLoading ()

@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()); } } } 

Я могу предложить одно исправление для предыдущего кода:

 @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(); } } }