UNPKG

hm-react-cli

Version:

Create a Huimei React project by module

122 lines (110 loc) 2.41 kB
const HTTP_OK_CODE = 200; const JSON_TYPE_STRING = 'json'; import { noop } from 'react-core/util'; // 上传 export function uploadFile({ url, filePath, // 小米不支持 name, header, // 小米不支持 formData, success = noop, fail = noop, complete = noop }) { var request = require('@system.request'); var data = []; Object.keys(formData).map(key => { let value = formData[key]; let item = { value, name: key }; data.push(item); }); function successForMi({ code: statusCode, data }) { success({ statusCode, data }); } request.upload({ url, header, data, files: [{ uri: filePath, name: name }], success: successForMi, fail, complete }); } // 下载 export function downloadFile({ url, header, success = noop, fail = noop, complete = noop }) { // 小米回调函数参数形式和微信不一致,故进行兼容 function downloadSuccess({ uri: tempFilePath }) { success({ statusCode: HTTP_OK_CODE, tempFilePath }); } // 小米需要通过 token 来监听下载进度 function downloadTaskStarted({ token }) { request.onDownloadComplete({ token, success: downloadSuccess, fail, complete }); } var request = require('@system.request'); request.download({ url, header, success: downloadTaskStarted, fail, complete }); } // 网络请求 export function request({ url, data, header, method, dataType = JSON_TYPE_STRING, // 小米不支持设置 responseType // responseType, success = noop, fail = noop, complete = noop }) { const fetch = require('@system.fetch'); function onFetchSuccess({ code: statusCode, data, headers }) { if (dataType === JSON_TYPE_STRING) { try { data = JSON.parse(data); } catch (error) {} } success({ statusCode, data, headers }); } fetch.fetch({ url, data, header, method, success: onFetchSuccess, fail, complete }); }