0

在我的应用程序中,我有一个显示图像的 web 视图。我想拦截对图像的点击并在浏览器中打开图像的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 对象应该包含什么?

4

1 回答 1

0

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

每次加载资源(如 css 文件、js 文件等)时都会调用 shouldInterceptRequest... 当即将打开新页面时调用 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;
}
于 2013-09-20T10:25:02.767 回答