Skip to main content
版本:v3

TransferFile

API_LEVEL 3.0 开始支持,API 兼容性请参考 API_LEVEL

文件传输。

方法

getInbox

获取接收文件对象

getInbox(): Inbox

Inbox

属性类型说明API_LEVEL
getNextFile() => FileObject返回 FileObject 接收文件对象3.0
on(eventName: InboxEventName, callback: () => void) => void监听事件,事件名称参考 InboxEventName3.0

FileObject

属性类型说明API_LEVEL
sessionIdnumber传输文件的会话标识3.0
fileNamestring文件名3.0
filePathstring文件路径3.0
paramsobject用户传递参数3.0
fileSizenumber传输文件大小3.0
readyStateReceiveFileState接收文件的状态值,见 ReceiveFileState3.0
cancel() => void取消传输文件任务3.0
on(eventName: FileEventName, callback: ChangeCallback|ProgressCallback) => void监听文件传输任务事件,事件名参考 FileEventName3.0

InboxEventName

类型说明API_LEVEL
NEWFILEstring刚接收到文件的事件3.0
FILEstring完成接收文件的事件3.0

ReceiveFileState

类型说明API_LEVEL
pendingstring等待3.0
transferringstring传输中3.0
transferredstring传输完成3.0
errorstring错误3.0
canceledstring取消3.0

FileEventName

类型说明API_LEVEL
changestringreadyState 转变状态时候发生的事件名,对应 ChangeCallback 回调函数3.0
progressstring文件传输进度发生变化时的事件,对应 ProgressCallback 回调函数3.0

ChangeCallback

类型说明
(event: ChangeEvent) => voidreadyState 转变状态时候发生的事件回调函数

ChangeEvent

属性类型说明API_LEVEL
type'readyStateChanged'事件类型,值为 readyStateChanged 字符串3.0
dateChangeEventData事件数据对象,类型见 ChangeEventData3.0
timestampnumber事件发生时的 UTC 时间戳,单位毫秒3.0

ChangeEventData

属性类型说明API_LEVEL
readyStatestring传输文件任务状态3.0

ProgressCallback

类型说明
(event: ProgressEvent) => void当文件传输进度变化时的事件回调函数

ProgressEvent

属性类型说明API_LEVEL
type'progress'事件类型,值为 progress 字符串3.0
dateProgressEventData事件数据对象,类型见 ProgressEventData3.0
timestampnumber事件发生时的 UTC 时间戳3.0

ProgressEventData

属性类型说明API_LEVEL
fileSizenumber文件大小,单位字节3.0
loadedSizenumber已经传输的文件大小,单位字节3.0

getOutbox

获取发送文件对象

getOutbox(): Outbox

Outbox

属性类型说明API_LEVEL
enqueueFile(fileName: string, params?: object) => getInbox.FileObject返回 FileObject 文件发送对象,fileName 为文件路径,params 则是自定义文件传输对象,在接收端的 FileObject 中获取,getInbox.FileObject 类型参考上文3.0

代码示例

// Receiving File
import TransferFile from "@zos/ble/TransferFile"

const transferFile = new TransferFile()
const inbox = transferFile.getInbox()

Page({
onInit() {
inbox.on('NEWFILE', function() {
const fileObject = inbox.getNextFile()
fileObject.on('progress', (event) => {
console.log("progress total size", event.data.fileSize)
console.log("progress total size", event.data.loadedSize)
})

fileObject.on('change', (event) => {
if (event.data.readyState === 'transferred') {
console.log('transfered file success')
} else (event.data.readyState === 'error') {
console.log('error')
}
})
})
}
})

// Send File
import TransferFile from "@zos/ble/TransferFile"

const transferFile = new TransferFile()
const outbox = transferFile.getOutbox()

Page({
onInit() {
const fileObject = outbox.enqueueFile("assets://logo.png", { test: 1})

fileObject.on('progress', (event) => {
console.log("progress total size", event.data.fileSize)
console.log("progress total size", event.data.loadedSize)
})

file.on('change', (event) => {
if (event.data.readyState === 'transferred') {
console.log('transfered file success')
} else (event.data.readyState === 'error') {
console.log('error')
}
})
}
})