H5Plus下载文件并获文件取绝对路径

折腾了大半天搞定.

使用H5plus的下载把文件下载下来之后竟然默认给了个_downloads/怎么也取不到具体路径.

1.H5plus官网说的很明白,只是不太好找,将_downloads转换绝对路径

HTML5+ API Reference

convertLocalFileSystemURL

将本地URL路径转换成平台绝对路径

String plus.io.convertLocalFileSystemURL( url );

说明:

绝对路径符合各平台文件路径格式,通常用于Native.JS调用系统原生文件操作API,也可以在前面添加“file://”后在html页面中直接使用。

参数:

  • url: ( String ) 必选 要转换的文件或目录URL地址

    URL地址必须是合法的路径,如果地址不合法则返回null。

返回值:

String : 转换后在平台路径,在不同平台或者不同设备返回的值可能存在差异,如输入url为“_doc/a.png”: Android平台转换后的路径为“/storage/sdcard0/Android/data/io.dcloud.HBuilder/.HBuilder/apps/HBuilder/doc/a.png”; 在iOS平台转换后的路径为“/var/mobile/Containers/Data/Application/757966CF-345C-4348-B07F-EEF83CF9A369/Library/Pandora/apps/HBuilder/doc/a.png”。

示例:

<!DOCTYPE html>
<html>
	<head>
	<meta charset="utf-8">
	<title>File Example</title>
	<script type="text/javascript">
// 扩展API加载完毕后调用onPlusReady回调函数 
document.addEventListener( "plusready", onPlusReady, false );
// 扩展API加载完毕,现在可以正常调用扩展API
function onPlusReady(){
	var url="_www/index.html";
	var path=plus.io.convertLocalFileSystemURL(url);
	alert(path);
}
	</script>
	</head>
	<body>
		convertLocalFileSystemURL
	</body>
</html>

2.使用H5plus中的createDownload将文件下下来

https://www.html5plus.org/doc/zh_cn/downloader.html#plus.downloader.Download

createDownload

新建下载任务

Download plus.downloader.createDownload(url, options, completedCB);

说明:

请求下载管理创建新的下载任务,创建成功则返回Download对象,用于管理下载任务。

参数:

  • url: ( String ) 必选 要下载文件资源地址

    要下载文件的url地址,仅支持网络资源地址,支持http或https协议。 允许创建多个相同url地址的下载任务。 注意:如果url地址中包含中文或空格等,需要进行urlencode转换。

  • options: DownloadOptions ) 可选 下载任务的参数

    可通过此参数设置下载任务属性,如保存文件路径、下载优先级等。

  • completedCB: DownloadCompletedCallback ) 可选 下载任务完成回调函数

    当下载任务下载完成时触发,成功或失败都会触发。

返回值:

Download : 新建的下载任务对象

示例:


// 创建下载任务
function createDownload() {
	var dtask = plus.downloader.createDownload("http://www.abc.com/a.doc", {}, function(d, status){
		// 下载完成
		if(status == 200){ 
			console.log("Download success: " + d.filename);
		} else {
			 console.log("Download failed: " + status); 
		}  
	});
	//dtask.addEventListener("statechanged", onStateChanged, false);
	dtask.start(); 
}
    

3.两者结合后demo

var importClassAndroidDownload=function(){
						var dtask = plus.downloader.createDownload("http://192.168.8.X:8080/5.PDF", {}, function(d, status){
							// 下载完成
							if(status == 200){
							var newurl = plus.io.convertLocalFileSystemURL(d.filename);
							plus.nativeUI.toast(newurl);
							} else {
								 plus.nativeUI.toast("Download failed: " + status);
							}
						});
						//dtask.addEventListener("statechanged", onStateChanged, false);
						dtask.start();


					}

 

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值