java - 在浏览器中加载 URL 时更改 URL - Android Studio
问题描述
我创建了一个应用程序,它将从我的服务器加载链接到 webview。但是,我还写了一个意图,在用户的浏览器中打开链接,以便他们可以下载文件。我希望链接在浏览器中加载时有所改变。
IE:
这是链接:https://www.example/v/file
我的应用程序应将“v”更改为“f”并加载到用户的浏览器中。
像这样:https://www.example/f/file
我的代码:
private void initWebDowload(String s){
webView.loadUrl(s);
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(s));
startActivity(i);
}
解决方案
有点复杂,但您需要将自定义 WebViewClient 附加到您的 WebView 以便您可以更改 URL 加载行为。
举个例子:
webView.setWebViewClient(new CustomWebViewClient());
private class CustomWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// right here you are given the chance to change the [url] ^
view.loadUrl(url.replace("/v/file", "/f/file")); // replace v with f
return true;
}
}
}
推荐阅读
- python - 子类层次结构中的链方法执行以获得层次结构中所有方法执行的联合
- svn - 在 Jenkins 管道脚本中签出子文件夹时缺少 SVN 外部
- arrays - 为什么某些元素类型似乎不存在 contains(_ element: Element)?
- angularjs - angularJS,ng 选项。将列表设为小写并在客户端使用
- python - TypeError: 'str' 对象不能用 driver.current_url() (Python 3.6)(Selenium) 调用
- php - Symfony 4:调用安装了 composer 的供应商(没有命名空间)
- apache-kafka - Clickhouse Kafka Engine:物化视图的好处
- performance - Redis 发布/订阅最佳实践
- php - curl登录到网站,然后在登录时浏览不同的链接
- jsf - jsf 表单不应在 ajax 事件上提交