1.0.15 • Published 6 years ago

react-native-requests v1.0.15

Weekly downloads
1
License
ISC
Repository
-
Last release
6 years ago

react-native-requests

安装

//install
npm install react-native-requests

//link
react-native link react-native-requests

使用说明

import Requests, { 
	TASK_TYPE_DOWNLOAD,		//下载任务类型
	TASK_TYPE_UPLOAD,		//上传任务类型
	TASK_TYPE_NORMAL,		//普通任务,暂不支持。
	SESSION_TYPE_DEFAULT,	//*ios, NSURLSession类型
	SESSION_TYPE_EPHEMERAL,	//*ios, NSURLSession类型
	SESSION_TYPE_BACKGROUND, //*ios, NSURLSession类型
}

NSURLSession类型参见文档

Requests类

负责Download/Upload实例的创建,负责维护IOS下sessionId、后台任务等。

主要方法如下:

  • 构造
  • addListener //增加监听
  • removeListener //移除监听
  • isValidSession //判断sessionId是否匹配。
  • init //初始化
  • getTasks //*ios,获取任务列表
  • createDownloadTask //创建下载任务
  • createUploadTask //创建上传任务

示例:

const requests = new Requests('sessionId', SESSION_TYPE_DEFAULT);
requests.addListener({		//事件监听
	onError: (key, err) => {},
	onComplete: (key) => {},
	onPaused: (key) => {},
	onResumed: (key) => {},
	onSystemPaused:(key) => {},
	onCancelled: (key) => {},
	onProgress: (key) => {},
	onCreated: (key) => {},
});

requests.init();

//ios下,调用init方法之后可获取任务列表,android返回空数组。
requests.getTasks(taskDesc => {
	console.log(taskDesc);
});

//Download相关方法见Download类说明。
const downloadTask = requests.createDownloadTask('http://www.xxxx.com/1.mp3', {
	path: '/path/to/storage'
});
Download类

下载类,用于创建下载任务。该类提供如下接口:

  • constructor 构造
  • start 启动任务
  • pause 暂停任务
  • resume 继续任务
  • cancel 取消任务
  • key 获取task key
  • cbError 设置错误回调
  • cbComplete 设置完成回调
  • cbCreated 设置创建成功回调
  • cbPaused 设置暂停回调
  • cbResumed 设置继续回调
  • cbCancelled 设置取消回调
  • cbProgress 设置进度回调

构造方法 新版本已不提供构造方法,使用Requests.createDownloadTask创建下载类实例,参数同。

  1. url 资源地址
  2. options 选项,包括:headers(http头信息,非必填), path(文件下载路径,必填),key(task key,如果需要调用resume方法则必填);

回调设置方法

以上方法中,cb前缀相关方法为回调设置方法,接收一个function类型参数。与全局事件监听不同的是,系统不会为回调方法传递task key参数,只有相关该任务的事件系统才会调用。

示例:

const task = requests.createDownloadTask('http://www.xxxx.com/1.mp3', {
	path: '/path/to/storage'
});

task.cbComplete(() => {
	console.log('task done.');
});

task.start();
Upload类

上传类方法同Download,不提供pause/resume方法,如果调用会抛出异常。

构造方法 新版本已不提供构造方法,使用Requests.createUploadTask创建上传类实例,参数如下:

  1. url 资源地址
  2. options 选项,包括:headers(http头信息,非必填), multipart(上传相关信息,必填),params(其他表单信息,非必填);

options.multipart

multipart结构示例如下:

const multipart = [
	{
		name: 'resource',
		filename: '/file/path/to/upload',
		mime: 'image/jpg'
	}
];

//其中filename字段为必填字段。

示例:

const multipart = [
    {
        name: 'file',
        // filename: '/data/data/1.mp4'
        filename: '/Users/lcg/Downloads/57946a902e4c2.mp4'
    }
];

const params = {
	count: 10,
	size: 100
}

const task = requests.createUploadTask('http://www.xxx.com/upload', {multipart, params});

task.cbComplete(() => {
	console.log('upload done.');
});

task.start();

TODO:

  • 清理临时文件相关方法。
1.0.15

6 years ago

1.0.14

6 years ago

1.0.13

6 years ago

1.0.12

7 years ago

1.0.11

7 years ago

1.0.10

7 years ago

1.0.9

7 years ago

1.0.8

7 years ago

1.0.7

7 years ago

1.0.6

7 years ago

1.0.5

7 years ago

1.0.4

7 years ago

1.0.3

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago