是否可以从我的应用程序启动Web浏览器并返回点击的URL?
我想知道是否可以从我的应用程序启动Web浏览器,并且当用户单击遵循特定模式的URL时,它会返回该URL。是否可以从我的应用程序启动Web浏览器并返回点击的URL?
例子:
http://domain.top-level-domain/download-folder/file-to-download.its-extension
我wan't要做到这一点,因为我在做一个应用程序与集成下载系统,我希望用户能够选择要下载的文件中一个简单的方法(只需点击URL)。这个过程是这样的:
- 您登录到您的个人网页上的网站。
- 你浏览你的个人档案。
- 你选择一个你想下载的文件。
- 当您点击文件的URL时,该应用会自动下载并存储它。
第4步是我目前正在研究的步骤,并不能真正解决。
凭借外部浏览器,该过程将看起来是这样的:
- 您登录到您的个人页面在网站上。
- 你浏览你的个人档案。
- 你选择一个你想下载的文件。
- 您复制该URL。
- 将其粘贴到应用程序中。
这个过程看起来可能并不复杂,但我仍然想这样做。
编辑:我发现该页面上的下载链接是一行JavaScript文件发送给用户。是否有可能在页面上执行该代码行并检索文件?
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.contains("your_pattern")) {
// Your stuff...
return true;
}
return false;
}
});
从官方文档:
您可以通过使用自定义WebViewClient
拦截任何类型的URI在你的WebView
public boolean shouldOverrideUrlLoading (WebView view, String url)
给主机应用程序有机会接管当一个新的 url即将被加载到当前WebView中时的控件。如果未提供WebViewClient ,默认情况下,WebView将要求活动管理器为URL选择合适的处理程序 。如果提供了WebViewClient,则返回 true表示主机应用程序处理url,而返回false 表示当前WebView处理该url。对于使用POST“方法”的请求,此方法不称为 。
您也可以考虑方法shouldInterceptRequest()。
如果您管理与链接的网页,你可以使用自定义网址意图 https://developer.chrome.com/multidevice/android/intents
此功能是依赖于浏览器,Chrome会做的,但也许其他浏览器没有达到这个... :(
这里有一些例子
Android Respond To URL in Intent
Launch custom android application from android browser
我最后一次尝试正在对浏览的50/60% rs,所以......