更新记录

1.0.3(2024-07-23)

1、优化android后台下载; 2、优化iOS 断点续传,后台下载功能;

1.0.2(2023-10-08)

1、修复iOS崩溃问题; 2、修复iOS断点续传问题;

1.0.1(2023-03-13)

1、支持ios

查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 12.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 适用版本区间:11 - 17

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


多文件后台下载sdk说明文档

特征 1、支持后台下载; 2、支持多任务多线程下载文件; 3、支持断点续传; 4、支持通知栏提醒; ​ 5、支持下载速度提示;

ios 需配置后台运行能力,processing,remote-notification

引入插件;

const fetchSdk=uni.requireNativePlugin("CL-FetchSdk");

//初始化插件

fetchSdk.initSdk({"limit":4}); //设置并行下载最大数量;放在APP.vue

 onLaunch: function() {
         fetchSdk.initSdk({"limit":4});
         console.log('App Launch')
    },
//监听任务下载进度;
        //监听进度;

             fetchSdk.addListenProgress(data=>{

                    const{taskId,progress,speed}=data;
                        console.log("下载回调"+JSON.stringify(data));
                     let index=this.dataAr.findIndex(function(e){
                            return e.taskId==taskId;
                     });

                     if(index!=-1)
                     {
                             let item=this.dataAr[index];
                             if(item["status"]!=2)
                             {
                                  item["status"]=2;
                             }
                             item["progress"]=progress*100;
                             item["speed"]=this.getSpeedString(speed);
                             this.dataAr.splice(index,item);

                     }

             })

//监听任务下载状态;
    fetchSdk.addListenState(data=>{
                    const{taskId,status}=data;
                    console.log("状态回调"+JSON.stringify(data));
                     let index=this.dataAr.findIndex(function(e){
                            return e.taskId==taskId;
                     }); 
                     console.log("对象找到没有"+index);
                     if(index!=-1)
                     {
                             let item=this.dataAr[index];
                             item["status"]=status;
                             this.dataAr.splice(index,item);         
                     }

            });

//取消监听
 fetchSdk.removeListen();

//获取下载任务列表数据
fetchSdk.loadTasks(result=>{

              //返回的数据任务列表;

         });

 //创建下载任务,下载任务自动开始
 //文件名不能重复;
      let time=Date.now();
         let item={url:"http://172.16.30.43/aaaa.mp4",
                            fileName:time+"aaaa.mp4",
                            taskId:"",
                            status:0,
                            progress:0,
                            speed:0
                    };

            fetchSdk.creatTask({
                        url:item["url"],
                        fileName:data["fileName"]
                        },taskId=>{
                          //创建成功后,会返回任务id;
                             console.log("添加结果"+JSON.stringify(taskId));
                           item["taskId"]=taskId;
                             this.dataAr.push(data);
                    }); 

//暂停任务,
fetchSdk.pauseTaskWithId(’任务id‘,result=>{

                        console.log("结果"+JSON.stringify(result))

        });

//删除任务
fetchSdk.removeTaskWithId(’任务id‘,result=>{
                     const{code}=result;
                             if(code==1)
                             {
                                    this.dataAr.splice(index,1);
                             }      
                    console.log("结果"+JSON.stringify(result))
    });

//任务下载失败,重试
fetchSdk.retryTaskWidthId(’任务id‘,result=>{

                    console.log("结果"+JSON.stringify(result))

    })

//任务暂停后,继续下载
fetchSdk.resumeTaskWithId(’任务id‘,result=>{

                console.log("结果"+JSON.stringify(result))

        })

//暂停所有任务
fetchSdk.pauseAllDownloadTask(); 
//开始所有任务
fetchSdk.resumeAllDownloadTask();
//删除所有任务
fetchSdk.removeAllTask(); //需刷新任务列表;

隐私、权限声明

1. 本插件需要申请的系统权限列表:

Android: android.permission.WRITE_EXTERNAL_STORAGE android.permission.READ_EXTERNAL_STORAGE

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问