Skip to content

Commit

Permalink
add browser entry
Browse files Browse the repository at this point in the history
  • Loading branch information
duwen committed Sep 20, 2017
1 parent 05056a3 commit cda3cc9
Show file tree
Hide file tree
Showing 35 changed files with 542 additions and 457 deletions.
17 changes: 9 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ https://unpkg.com/flyio/dist/fly.umd.min.js
## 使用

```javascript
var fly=new Fly
var fly=require("flyio")
//定义公共headers
fly.config.headers={xx:5,bb:6,dd:7}
//设置超时
Expand Down Expand Up @@ -81,18 +81,18 @@ fly.ajax("../package.json",{hh:5},{

## Http engine

Http engine就是真正发起http请求的引擎,这在浏览器中一般都是XMLHttpRequest。而在node环境中,开发者可以使用任何自己喜欢的网络库,fly 中提供了engine模块,开发者只需要实现一个adapter即可. 下面是一个在app内嵌网页中,通过fly engine将所有请求重定向到Native中的例子。
Http engine就是真正发起http请求的引擎,这在浏览器中一般都是XMLHttpRequest。而在node环境中,开发者可以使用任何自己喜欢的网络库,fly 中提供了engine-wrapper模块,开发者只需要实现一个adapter即可. 下面是一个在app内嵌网页中,通过fly engine将所有请求重定向到Native中的例子。

```javascript
var engine = require("../src/engine")
var adapter = require("../src/adapter/dsbridge")
var Fly=require("../src/fly")
var fly = new Fly(engine)
var engineWrapper = require("flyio/dist/engine-wrapper")
var adapter = require("flyio/dist/adapter/dsbridge")
var Fly=require("flyio/dist/fly")
engineWrapper.setAdapter(adapter)
module.exports=new Fly(engineWrapper)
//使用dsbridge适配器,将会使fly实例发起的所有ajax请求通过dsbridge重定向到Native上
engine.setAdapter(adapter)

//发起网络请求
fly.get()....
fly.get(url)...
```


Expand All @@ -112,6 +112,7 @@ function (request, responseCallBack)
method:"",//请求方法, GET 、POST ...
headers:{},//请求头
url:"",//请求地址
timeout:"",//超时时间
data:""//请求数据,GET请求时为null
}
```
Expand Down
4 changes: 3 additions & 1 deletion build.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@ if (env !== "dev") {
plugins.push(new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: true
}
},
sourceMap: true
}))
if(env==="umd") {
output.libraryTarget = "umd"
Expand All @@ -39,6 +40,7 @@ if (env !== "dev") {
var config= {
entry: entry,
output: output,
devtool: env !== "dev"? '#source-map': false,
module: {
rules: [
{
Expand Down
2 changes: 1 addition & 1 deletion demon/demo.html
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
console.log("post result:",d)
}).catch((e) => console.log("error", e))

fly.ajax("../package.json",{hh:5},{
fly.request("../package.json",{hh:5},{
method:"post"
}).then(d=>{
console.log("ajax result:",d)
Expand Down
24 changes: 13 additions & 11 deletions demon/engine.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,29 +5,31 @@
<title>fly ajax-engine</title>
<meta name="viewport" content="width=device-width,initial-scale=0.5,user-scalable=no"/>
<script src="../dist/fly.min.js"></script>
<script src="../dist/engine.min.js"></script>
<script src="../dist/engine-wrapper.min.js"></script>
<script src="https://cdn.bootcss.com/axios/0.16.2/axios.js"></script>
<script>
var log=console.log;
AjaxEngine.setAdapter(function (request,responseCallback) {
console.log(request)
var engine= EngineWrapper(function (request,responseCallback) {
responseCallback({
statusCode:0,
errMsg:"exception"
statusCode:200,
responseText:"你变或者不变,我都不变😜。",
extraFeild:"自定义字段"
})
})
fly.engine=AjaxEngine;
XMLHttpRequest=AjaxEngine
fly.engine=engine;
//
// fly.post("../package.json",{aa:8,bb:9,tt:{xx:5}}).then((d) => {
// console.log("get result:",d)
// }).catch((e) => console.log("error", e))

// var formData = new FormData();
// formData.append('username', 'Chris');
// axios.post("../package.json",formData).then(log).catch(log)
// var formData = new FormData();
// formData.append('username', 'Chris');
// axios.post("../package.json",formData).then(log).catch(log)
// fly.post("../package.json",formData).then(log).catch(log)
fly.post("../package.json")
fly.get("../package.json").then(d=>{
log(d.data)
log(d.extraFeild)
})
axios.post("../package.json")


Expand Down
74 changes: 58 additions & 16 deletions demon/nodeTest.js
Original file line number Diff line number Diff line change
@@ -1,23 +1,65 @@
var fly = require("../src/node")
var log=console.log;

var FormData = require('form-data');
var form = new FormData();
var util = require("../src/utils")
var log = console.log;
var fs = require("fs")
//设置超时
fly.config.timeout=5000;
fly.config.timeout = 5000;

//设置基地址
fly.config.baseURL="http://localhost:63341/Fly/"
fly.config.baseURL = "http://localhost:63341/Fly"


//get请求
fly.get("package.json",{wd:"xxx"}).then(d=>{
console.log("get请求成功",d.data)
}).catch((e)=>{
log(`get请求失败,错误码:${e.status}, 错误信息:${e.message}`);
})

//post请求
fly.post("http://localhost/ds/test",{xx:"xxx",aa:{bb:5}}).then(d=>{
console.log("post请求成功",d.data)
}).catch((e)=>{
log(`post请求失败,错误码:${e.status}, 错误信息:${e.message}`);
})
// fly.get("package.json",{wd:"xxx"}).then(d=>{
// console.log("get请求成功",d.data)
// }).catch((e)=>{
// log(`get请求失败,错误码:${e.status}, 错误信息:${e.message}`);
// })


// 文件下载
// fly.download("http://localhost:8089/static/v.png", "./v.png")
// .then(d => {
// log(d)
// }).catch(log)

// var formData = {
// name:"v.png",
// avatar: fs.createReadStream('./v.png'),
// resume: fs.createReadStream('./resume.docx'),
// attachments:[
// fs.createReadStream('./file1.zip'),
// fs.createReadStream('./file2.zip')
// ]
// }

var formData={
name:"xxx",
file: fs.createReadStream('./v.png'),
}
fly.upload("http://localhost/ds/test", formData)
.then(d => {
log(d)
}).catch(log)


// fly.request("http://localhost:8089/static/v.png",null,{requestType:"stream"}).then(d=>{
// // d.stream.pipe(fs.createWriteStream('doodle.png'))
//
// })

// fly.request("package.json",null,{
// formData:{xx:5}
// }).then(d=>{
// log(d)
// })

//
// //post请求
// fly.post("http://localhost/ds/test",{xx:"xxx",aa:{bb:5}}).then(d=>{
// console.log("post请求成功",d.data)
// }).catch((e)=>{
// log(`post请求失败,错误码:${e.status}, 错误信息:${e.message}`);
// })
61 changes: 17 additions & 44 deletions demon/test.js
Original file line number Diff line number Diff line change
@@ -1,50 +1,23 @@
/**
* Created by du on 16/12/10.
*/
var engineWrapper = require("../src/engine-wrapper")
var adapter = require("../src/adapter/dsbridge")
var Fly=require("../src/fly")
engineWrapper.setAdapter(adapter)

//由nfly发起的网络请求将会全部通过dsbridge转发到端上
window.nfly= new Fly(engineWrapper)

//由fly发起的请求将会使用浏览器默认XMLHttpRequest
window.fly=new Fly

//定义公共headers
fly.config.headers={xx:5,bb:6,dd:7}

fly.interceptors.request.use((config,promise)=>{
//可以通过promise.reject/resolve直接中止请求
console.log("interceptors.request", config)
config.headers["X-Tag"]="fly.js";
return config;
})

fly.interceptors.response.use(
(response,promise) => {
console.log("interceptors.response", response)
return response.data
},
(err,promise) => {
//promise.resolve("ssss")
}
)

fly.get("../package.json",{aa:8,bb:9,tt:{xx:5}}).then((d) => {
console.log("get result:",d)
}).catch((e) => console.log("error", e))

fly.post("../package.json",{aa:8,bb:9,tt:{xx:5}}).then((d) => {
console.log("post result:",d)
}).catch((e) => console.log("error", e))

fly.ajax("../package.json",{hh:5},{
method:"post"
}).then(d=>{
console.log("ajax result:",d)
})
var fly=require("../dist/fly")


//
// fly.get("../package.json",{aa:8,bb:9,tt:{xx:5}}).then((d) => {
// console.log("get result:",d)
// }).catch((e) => console.log("error", e))
//
// fly.post("../package.json",{aa:8,bb:9,tt:{xx:5}}).then((d) => {
// console.log("post result:",d)
// }).catch((e) => console.log("error", e))
//
// fly.request("../package.json",{hh:5},{
// method:"post"
// }).then(d=>{
// console.log("ajax result:",d)
// })



11 changes: 6 additions & 5 deletions dist/adapter/dsbridge.js
Original file line number Diff line number Diff line change
Expand Up @@ -73,12 +73,12 @@ return /******/ (function(modules) { // webpackBootstrap
/******/ __webpack_require__.p = "";
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 1);
/******/ return __webpack_require__(__webpack_require__.s = 4);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */,
/* 1 */
/******/ ({

/***/ 4:
/***/ (function(module, exports) {

function KEEP(_,cb){cb();}
Expand All @@ -105,5 +105,6 @@ KEEP("!build", function () {
});

/***/ })
/******/ ]);

/******/ });
});
1 change: 1 addition & 0 deletions dist/adapter/dsbridge.js.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion dist/adapter/dsbridge.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit cda3cc9

Please sign in to comment.