下载
从服务器下载文件到设备上
[!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) --到源的URL
target
(String) --到目标的URL
http_status
(Number) --HTTP
状态码。该属性仅在从HTTP
连接接收到相应代码时可用body
(String) --响应body
。该属性仅在从HTTP连接收到相应时可用exception
(String) --异常信息
options
参数为一个fileUploadOptions
对象,其属性包含以下一项或多项:
fileKey
(DOMString) --表单元素的名称,默认为file
fileName
(DOMString) --在服务器上保存文件时使用的文件名,默认为image.jpg
httpMethod
(DOMString) --要使用的HTTP
方法PUT
或POST
,默认POST
mimeType
(DOMString) --要上传的数据的MIME类型,默认为image/jpeg
params
(Object) --在HTTP
请求中传递的一组可选键/值对,key/value-DOMString
headers
(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
}