shouldInterceptRequest在浏览器中打开链接

时间:2013-09-20 10:18:54

标签: android android-webview

在我的应用程序中,我有一个显示图像的webview。我想拦截图像上的点击,并在浏览器中打开图像的 href 属性指向的URL。 我正在使用WebViewClient中的 shouldInterceptRequest 方法,但我不确定该返回什么作为该方法的响应。 我想做的事情看起来像:

public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
            final Intent browserIntent = new Intent (Intent.ACTION_VIEW, Uri.parse(url));
            startActivityForResult(browserIntent);
            return null;     
}

实现这个的正确方法是什么? 我的WebResourceResponse对象应该包含什么?

1 个答案:

答案 0 :(得分:0)

如果你想拦截href点击,你应该使用这个shouldOverrideUrlLoading: http://developer.android.com/reference/android/webkit/WebViewClient.html#shouldOverrideUrlLoading(android.webkit.WebView,java.lang.String)

每次加载资源时都会调用shouldInterceptRequest,如css文件,js文件等... 在即将打开新页面时调用shouldOverrideUrlLoading

这是你想要做的:

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
    Intent i = new Intent(Intent.ACTION_VIEW);
    i.setData(Uri.parse(url));
    startActivityForResult(i);
    return true;
}