我正在使用高度为60dp的webview,我正在将一个本地html文件传递给它,默认情况下,当我点击webview中的链接时,它必须打开浏览器。但奇怪的是它在webview中打开了链接,我也尝试了webview客户端并试图通过意图将响应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");
答案 0 :(得分:1)
停止当前的webview加载。由于广告是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());
希望这适合你。