更新记录
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 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
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(); //需刷新任务列表;