下载
从服务器下载文件到设备上
[!TIP|labelVisibility:hidden|iconVisibility:hidden] download(source,successCallback,errorCallback,trustAllHosts,options)
支持平台:
- Android
- iOS
参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| source | String | 是 | 服务器上的文件URL,例如:http和https |
| successCallback | Function | 否 | 下载成功时的回调函数 |
| errorCallback | Function | 否 | 下载失败时的回调函数 |
| trustAllHosts | Boolean | 否 | 默认为false,设置为true则接受所有的安全证书(Android会拒绝自签名的安全证书) |
| options | Object | 否 | fileUploadOptions对象,仅支持headers属性(如授权(基本认证)等) |
successCallback返回参数说明:
fileEntry(对象) -- 下载成功FileEntry对象,其属性包含以下一项或多项:isFile(Boolean) --文件是否存在,存在:true,不存在falseisDirectory(Boolean) --目录是否存在,存在:true,不存在falsename(String) --文件名称fullPath(String) --文件的绝对路径(不含file:///)filesystem(String) --文件系统nativeURL(String) --文件本地路径(含file:///)
errorCallback返回参数说明:
fileTransferError(对象) -- 错误结果FileTransferError对象,其属性包含以下一项或多项:code(Number) --错误代码之一:- 1 =
FileTransferError.FILE_NOT_FOUND_ERR//找不到文件 - 2 =
FileTransferError.INVALID_URL_ERR//无效的URL - 3 =
FileTransferError.CONNECTION_ERR//连接错误 - 4 =
FileTransferError.ABORT_ERR//连接已中止 - 5 =
FileTransferError.NOT_MODIFIED_ERR//未修改
- 1 =
source(String) --到源的URLtarget(String) --到目标的URLhttp_status(Number) --HTTP状态码。该属性仅在从HTTP连接接收到相应代码时可用body(String) --响应body。该属性仅在从HTTP连接收到相应时可用exception(String) --异常信息
options参数为一个fileUploadOptions对象,其属性包含以下一项或多项:
fileKey(DOMString) --表单元素的名称,默认为filefileName(DOMString) --在服务器上保存文件时使用的文件名,默认为image.jpghttpMethod(DOMString) --要使用的HTTP方法PUT或POST,默认POSTmimeType(DOMString) --要上传的数据的MIME类型,默认为image/jpegparams(Object) --在HTTP请求中传递的一组可选键/值对,key/value-DOMStringheaders(Object) --标题名称/标题值的映射,使用数组来制定多个值。在iOS和Android上,如果存在名为Content-Type的标头,则不会使用多部分表单数据
示例代码
// 引用js
<script src='supconit://hcmobile.js'></script>
<script>
// 监听’deviceready‘事件
document.addEventListener('deviceready', onDeviceReady, false)
function onDeviceReady(){
var fileTransfer = new FileTransfer();
var source = encodeURI("https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=1078861629,3747050294&fm=26&gp=0.jpg");
fileTransfer.download(source,function(entry) {
alert(JSON.stringify(entry))
},
function(error) {
alert(JSON.stringify(error))
},true,{
headers: {
"Authorization": "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA=="
}
}
);
}
</script>
响应成功示例代码:
{
"isFile": true,
"isDirectory": false,
"name": "300000839764127060614318218_950.jpg",
"fullPath": "/com.supconit.hcmobile.ios/other/300000839764127060614318218_950.jpg",
"filesystem": "<FileSystem: cache>",
"nativeURL": "file:///var/mobile/Containers/Data/Application/98D08FD3-6B3B-410C-A9E2-C9394B0ED2FA/Library/Caches/com.supconit.hcmobile.ios/other/300000839764127060614318218_950.jpg"
}
响应失败示例代码:
{
"code": 3,
"source": "https://ss1.bdstatic.com/FvXSh_Q1YnxGkpoWK1HF6hhy/it/u=1078861629,3747050294&fm=26&gp=0.jpg",
"target": "file:///var/mobile/Containers/Data/Application/BE95F695-F32F-408B-9F67-3AC3448D444C/Library/Caches/com.supconit.hcmobile.ios/images/u=1078861629,3747050294&fm=26&gp=0.jpg",
"http_status": 504,
"body": "Gateway Timeout",
"exception": null
}