android webview应用,android-Webview应用程序:如何在Webview应用程...

我想在android webview应用程序中下载特定文件(尽管它们是从外部链接而不是从我的webview应用程序URL),并且所有外部链接都应在webview应用程序外部打开,这意味着电话浏览器.

我使用下面的代码来做到这一点.

wv.setWebViewClient(new WebViewClient(){

public boolean shouldOverrideUrlLoading(WebView view, String url) {

boolean value = true;

String extension = MimeTypeMap.getFileExtensionFromUrl(url);

if (extension != null) {

MimeTypeMap mime = MimeTypeMap.getSingleton();

String mimeType = mime.getMimeTypeFromExtension(extension);

if (mimeType != null) {

if (mimeType.toLowerCase().contains("pdf")

|| extension.toLowerCase().contains("ppt")

|| extension.toLowerCase().contains("doc")

|| extension.toLowerCase().contains("rar")

|| extension.toLowerCase().contains("rtf")

|| extension.toLowerCase().contains("exe")

|| extension.toLowerCase().contains("apk")

|| extension.toLowerCase().contains("jpeg")

|| extension.toLowerCase().contains("png")

|| extension.toLowerCase().contains("xls")

|| extension.toLowerCase().contains("zip")

|| extension.toLowerCase().contains("jpg")) {

DownloadManager mdDownloadManager = (DownloadManager)getSystemService(Context.DOWNLOAD_SERVICE);

DownloadManager.Request request = new DownloadManager.Request(

Uri.parse(url));

String name= URLUtil.guessFileName(url,null,MimeTypeMap.getFileExtensionFromUrl(url));

File destinationFile = new File(Environment.getExternalStorageDirectory(),name);

request.setDescription("Downloading...");

request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);

// request.setDestinationUri(Uri.fromFile(destinationFile));

request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS,name);

mdDownloadManager.enqueue(request);

//value = false;

}

}

if (value) {

view.loadUrl(url);

}

if (!url.contains("my site url")) { // Could be cleverer and use a regex

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));

startActivity(intent);

return true;

}

return false;

}

return false;

}

@Override

public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {

wv.loadUrl(mypage_error);

}

}

当我单击包含上述扩展名的任何链接时,该文件开始在webview应用程序内部下载(可以),但同时该链接会自动打开到我的移动浏览器中.我知道这是由于此代码而发生的.

if (!url.contains("my site url")) { // Could be cleverer and use a regex

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));

startActivity(intent);

return true;

}

return false;

现在,

首先,解决方案我想知道如何在webview应用程序中下载包含上述扩展名的文件,而所有不包含上述扩展名的链接应在我的webview应用程序外部打开,这意味着移动浏览器.

其次解决

如果不可能,请告诉我,当我单击链接时如何每次显示警报/弹出窗口(浏览器选择选项).正如我提到的,与其显示浏览器,还没有选择警报链接,而是自动打开了我的手机浏览器.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值