gpt4 book ai didi

java - Android - 获取用户在webview中点击的链接

转载 作者:行者123 更新时间:2023-12-01 19:04:46 33 4
gpt4 key购买 nike

如何获取用户在 webview 中点击的链接?示例:我的 webview 将用户带到列出信息和 PDF 的网站,如果用户单击 PDF,我想获取用户单击的 PDF 文件的链接并将其放入 Google 的在线查看器中。我的代码不起作用,因为它不会拦截单击的链接。有什么想法吗?

这是我所拥有的:

webview.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// do your handling codes here, which url is the requested url
// probably you need to open that url rather than redirect:
if (url.startsWith("tel:")) {
startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse(url)));
} else if (url.startsWith("mailto:")) {
url = url.replaceFirst("mailto:", "");
url = url.trim();
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("plain/text").putExtra(Intent.EXTRA_EMAIL,
new String[] { url });
startActivity(i);

} else if (url.startsWith("geo:")) {
try {
} catch (Exception e) {
System.out.println(e);
}

} else if (url.endsWith("pdf")) {
try{
String pdf = (url);
webview.loadUrl("http://docs.google.com/viewer?url=" + pdf);
}
catch (ActivityNotFoundException e)
{
Toast.makeText(atcFaa.this, "No PDF Viewer Installed", Toast.LENGTH_LONG).show();
}

}

else {
view.loadUrl(url);
}
return true;
// then it is not handled by default action
}
});
webview.loadUrl("http://www.somewebsite.com/publications/");
}

最佳答案

我认为你想要重写的方法是 WebViewClient.shouldInterceptRequest(WebView view, String url)

public WebResourceResponse shouldInterceptRequest (WebView view, String url)
  • 通知主机应用程序资源请求并允许应用程序返回数据。如果返回值为空,则WebView 将继续照常加载资源。否则,将使用返回响应和数据。注意:该方法被调用网络线程,因此客户端访问时应谨慎私有(private)数据。参数

参见webview shouldinterceptrequest example

关于java - Android - 获取用户在webview中点击的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10525188/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com