折腾了大半天搞定.
使用H5plus的下载把文件下载下来之后竟然默认给了个_downloads/怎么也取不到具体路径.
1.H5plus官网说的很明白,只是不太好找,将_downloads转换绝对路径
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();
}