English|中文简体
一个支持所有JavaScript运行环境的基于Promise的、支持请求转发、强大的http请求库。可以让您在多个端上尽可能大限度的实现代码复用。
✔ | ✔ | ✔ | ✔ | ✔ | > 8 |
|
|
|
|
|
|
目前Fly.js支持的平台包括:Node.js 、微信小程序 、Weex 、React Native 、Quick App 和浏览器,这些平台的 JavaScript 运行时都是不同的。更多的平台正在持续添加中,请保持关注。
Fly.js 是一个基于 promise 的,轻量且强大的Javascript http 网络库,它有如下特点:
- 提供统一的 Promise API。
- 浏览器环境下,轻量且非常轻量 。
- 支持多种JavaScript 运行环境
- 支持请求/响应拦截器。
- 自动转换 JSON 数据。
- 支持切换底层 Http Engine,可轻松适配各种运行环境。
- 浏览器端支持全局Ajax拦截 。
- H5页面内嵌到原生 APP 中时,支持将 http 请求转发到 Native。支持直接请求图片。
Fly 的定位是成为 Javascript http请求的终极解决方案。也就是说,在任何能够执行 Javascript 的环境,只要具有访问网络的能力,Fly都能运行在其上,提供统一的API。
详细的文档请移步:Flyio官网文档 。 官网http请求使用的正是fly,为了方便大家验证fly功能特性,官网对fly进行了全局引入,您可以在官网页面打开控制台直接验证。
使用NPM
npm install flyio
使用CDN(浏览器中)
<script src="https://unpkg.com/flyio/dist/fly.min.js"></script>
UMD(浏览器中)
https://unpkg.com/flyio/dist/umd/fly.umd.min.js
不同JavaScript运行时的入口文件不同 ,请查看文档后面相应平台的引入方式,但在浏览器、Node、React Native中引入的方式是一样的,下面是不同平台下的引入的方式:
-
浏览器、Node、React Native中引入
//引入fly实例 var fly=require("flyio")
上面方式引入的是Fly的默认实例(浏览器、Node、React Native中相同),你也可以自己创建Fly实例:
// 浏览器和React Native var Fly=require("flyio/dist/npm/fly") // Node 入口 // var Fly=require("flyio/src/node") var fly=new Fly;
-
在微信小程序中引入
var Fly=require("flyio/dist/npm/wx") var fly=new Fly
如果您的微信小程序项目没有使用
npm
来管理依赖,您可以直接下载源码到您的小程序工程,下载链接wx.js 或 wx.umd.min.js .下载任意一个,保存到本地工程目录,假设在“lib”目录,接下来引入:var Fly=require("../lib/wx") //wx.js为您下载的源码文件 var fly=new Fly; //创建fly实例
-
在支付宝小程序中引入
var Fly=require("flyio/dist/npm/ap") var fly=new Fly
如果您的支付宝小程序项目没有使用
npm
来管理依赖,您可以直接下载源码到您的小程序工程,下载链接ap.js 或 ap.umd.min.js .下载任意一个,保存到本地工程目录,假设在“lib”目录,接下来引入:var Fly=require("../lib/ap") //ap.js为您下载的源码文件 var fly=new Fly; //创建fly实例
-
快应用中引入
快应用 中Fly依赖
fetch
模块,需要先在manifest.json
中添加引用:"features": [ ... {"name": "system.fetch"} ]
然后创建fly实例
//依赖快应用中的fetch模块,需要在 var fetch = require("@system.fetch") var Fly=require("flyio/dist/npm/hap") var fly=new Fly(fetch)
-
Weex中引入
var Fly=require("flyio/dist/npm/weex") var fly=new Fly
引入之后,您就可以对fly实例进行全局配置、添加拦截器、发起网络请求了。
下面示例如无特殊说明,则在所有支持的平台下都能执行。
//通过用户id获取信息,参数直接写在url中
fly.get('/user?id=133')
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
//query参数通过对象传递
fly.get('/user', {
id: 133
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
fly.post('/user', {
name: 'Doris',
age: 24
phone:"18513222525"
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});