更新记录

1.0.0(2022-07-22)

初次发布,需要大文件上传 找了半天没有找到合适的 有也是没做到断点续传的 只能自己动手 丰衣足食了


平台兼容性

Android Android CPU类型 iOS
适用版本区间:5.0 - 11.0 armeabi-v7a:支持,arm64-v8a:未测试,x86:未测试 适用版本区间:9 - 15

原生插件通用使用流程:

  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原生插件配置”->”云端插件“列表中删除该插件重新选择


使用插件

  • 项目根目录 main.js 导入插件
if (plus.os.name.toLowerCase() == "android") {
    const obs = uni.requireNativePlugin("zyjw-obs_hw");
    Vue.prototype.$obs = obs
}
  • 初始化

app.$obs.init({
    'ak': self.accessKey,
    'sk': self.secretKey,
    'endPoint': self.endPoint,
    'key':'',   //文件唯一key 自己定义生成
},
(ret) => {
    console.log("初始化",ret)

})

ret: 

情况1 成功
{
    "code": 0, //0成功 1 失败
    "msg": "成功" 
}

情况2 失败
{
    "code": 1, //0成功 1 失败
    "msg": "请勿重复初始化" 
}
  • 上传文件
app.$obs.uploadFile({
    bucket: self.bucket, 
    key: self.key,          //文件key 自己定义生成
    path: self.path,        // 文件本地路径
    partSize: 1024*512,     //每个分片大小
    checkpointFile: "",     //记录上传进度的文件,只在断点续传模式下有效。当该值为空时,默认与待上传的本地文件同目录。
    enableCheckSum: false,  //是否校验待上传文件的内容,只在断点续传模式下有效。默认为false,表示不校验。
    progressInterval: 1024*1024  //每上传1MB数据反馈上传进度
}, ret => {
    console.log("上传完成",ret) 
});

ret:

上传完成后返回
{
"data": {
    "location": "/obs-cyc-auct-prod/test1000.mp4",
    "etag": "\"d48380162df1275d54ed769ea10eb35d-10\"",
    "requestId": "00000181CDD2C4564409F9D9ACAA47E6",
    "responseHeaders": {
        "x-reserved-indicator": "3",
        "server": "OBS",
        "content-type": "application/xml",
        "id-2": "32AAAUJAIAABAAAQAAEAABAAAQAAEAABCSU d1sCS2LSdr8b55ZrFLXdV55E 0HW",
        "request-id": "00000181CDD2C4564409F9D9ACAA47E6",
        "date": 1657015551000,
        "content-length": "327"
    },
    "objectKey": "test1000.mp4",
    "originalHeaders": {
        "x-reserved-indicator": "3",
        "x-obs-request-id": "00000181CDD2C4564409F9D9ACAA47E6",
        "x-obs-id-2": "32AAAUJAIAABAAAQAAEAABAAAQAAEAABCSU+d1sCS2LSdr8b55ZrFLXdV55E+0HW",
        "server": "OBS",
        "date": "Tue, 05 Jul 2022 10:05:51 GMT",
        "content-type": "application/xml",
        "content-length": "327"
    },
    "statusCode": 200,
    "objectUrl": "http://obs-cyc-auct-prod.obs.cn-south-2.myhuaweicloud.com:80/test1000.mp4",
    "bucketName": "obs-cyc-auct-prod"
},
"code": 0,
"msg": "上传完成"
}

//上传失败返回
{
"code": 1,
"msg": "错误信息"
}

//上传中 ios特有 安卓使用下面的获取进度getProgressStatus获取
{
    "msg": "成功",
    "data": {
        "totalBytesSent": 81132,
        "transferPercentage": 13.4, //上传进度百分比
        "bytesSent": 81132,
        "totalBytesExpectedToSend": 605420
    },
    "code": "2"
}
  • 获取当前进度 (安卓才有方法, ios进度在uploadFile 返回)
app.$obs.getProgressStatus({
    key: self.key   //文件key 对应上传时传入的key
}, ret => {
    console.log("上传中",ret)
})

ret:

{
    "data": {
        "transferPercentage": 10,           //上传进度百分比
        "newlyTransferredBytes": 524288,
        "averageSpeed": 32768000,           //上传平均速率
        "transferredBytes": 524288,
        "totalBytes": 5219275,
        "oldInstantaneousSpeed": 32768000,
        "instantaneousSpeed": -1
    },
    "code": 0,
    "msg": "成功"
}
  • 取消当前任务 (注意 取消任务后,如需继续上传,需要重新进行初始化)
app.$obs.cancel({
    key: self.key       //文件key 对应上传时传入的key
}, ret => {

})

ret:

{
    "code": 0,
    "msg": "成功"
}

{
    "code": 1,
    "msg": "key不能为空"
}

有任何bug问题 请评论或者联系wx (q2342234)说明

隐私、权限声明

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

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

插件不采集任何数据

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

暂无用户评论。

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