下载

从服务器下载文件到设备上

[!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,不存在false
    • isDirectory(Boolean) --目录是否存在,存在:true,不存在false
    • name(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 //未修改
    • 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方法PUTPOST,默认POST
  • mimeType(DOMString) --要上传的数据的MIME类型,默认为image/jpeg
  • params(Object) --在HTTP请求中传递的一组可选键/值对,key/value-DOMString
  • headers(Object) --标题名称/标题值的映射,使用数组来制定多个值。在iOSAndroid上,如果存在名为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
}

results matching ""

    No results matching ""