我想知道是否可以从我的应用中启动网络浏览器,当用户点击跟随特定模式的网址时,它会返回该网址。
示例:的
http://domain.top-level-domain/download-folder/file-to-download.its-extension
我不想这样做,因为我正在使用集成的下载系统制作应用程序,我希望用户能够以简单的方式选择要下载的文件(只需单击URL)。过程是这样的:
步骤4是我目前正在进行的步骤,并不能真正解决 使用外部浏览器,该过程看起来像这样:
这个过程可能看起来并不复杂,但无论如何我都想这样做。
编辑:我发现该页面上的下载链接是一行javascript,它将文件发送给用户。是否可以在页面上执行该行代码并检索文件?
答案 0 :(得分:2)
如果您使用链接管理WebPage,则可以使用Custom Url Intent实现此目的
https://developer.chrome.com/multidevice/android/intents
这个功能它取决于浏览器,所以Chrome会做,但也许其他浏览器不会... :(
这里有一些例子
Android Respond To URL in Intent
Launch custom android application from android browser
我最后一次尝试使用50/60%的浏览器,所以......
答案 1 :(得分:1)
您可以使用自定义WebViewClient
拦截WebView
中的任何类型的URI:
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.contains("your_pattern")) {
// Your stuff...
return true;
}
return false;
}
});
来自官方文件:
public boolean shouldOverrideUrlLoading (WebView view, String url)
让主机应用程序有机会在新的时候接管控件 url即将加载到当前的WebView中。如果是WebViewClient 未提供,默认情况下WebView将要求活动管理器选择 url的正确处理程序。如果提供了WebViewClient,则返回 true表示宿主应用程序处理url,而返回false 表示当前WebView处理URL。不调用此方法 对于使用POST"方法"。
的请求
您还可以考虑方法shouldInterceptRequest()。