Попытка передать URL-адрес из веб-браузера в браузер
Я использую веб-представление высотой 60dp и передаю ему локальный HTML-файл, по умолчанию, когда я нажимаю на ссылку в веб-просмотре, он должен открыть браузер. Но, как ни странно, он открывает ссылки в веб-представлении, я также попробовал клиент веб-просмотра и пытался передать URL-адрес ответа в браузер по умолчанию через намерение, но тщетно.
мой фрагмент кода:
WebViewClient yourWebClient = new WebViewClient()
{
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
System.out.println("Inside WebViewClient the URL is....."+url);
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
return true;
}
};
WebView ad = (WebView) findViewById(R.id.webview1);
ad.getSettings().setJavaScriptEnabled(true);
ad.loadUrl(feed.getItem(position).getLink());
ad.getSettings().setLoadWithOverviewMode(true);
ad.getSettings().setUseWideViewPort(true);
ad.setInitialScale(100);
ad.setWebViewClient(yourWebClient);
ad.loadUrl("file:///android_asset/advertisement.htm");
1 ответ
Решение
Остановить текущую загрузку веб-просмотра. Так как реклама является объектом WebView, попробуйте сделать это следующим образом:
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
System.out.println("Inside WebViewClient the URL is....."+url);
ad.stopLoading();
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
return true;
}
Также добавьте это при добавлении настроек для вашего WebView:
ad.getSettings().setSupportMultipleWindows(false);
Редактировать:
Попробуйте связать клиент Chrome с вашим веб-представлением, а затем проверьте:
ad.setWebChromeClient(new MyWebChromeClient());
Надеюсь, что это работает для вас.