成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

微信小程序中使用Fly 發起http請求

移動開發
微信小程序的 javascript運行環境和瀏覽器不同,頁面的腳本邏輯是在JsCore中運行,JsCore是一個沒有窗口對象的環境,所以不能在腳本中使用window,也無法在腳本中操作組件,JsCore中也沒有 XmlhttpRequest對象,所以jquery 、zepto、axios這些在小程序中都不能用,而此時,正是 fly 大顯身手的時候。

微信小程序的 javascript運行環境和瀏覽器不同,頁面的腳本邏輯是在JsCore中運行,JsCore是一個沒有窗口對象的環境,所以不能在腳本中使用window,也無法在腳本中操作組件,JsCore中也沒有 XmlhttpRequest對象,所以jquery 、zepto、axios這些在小程序中都不能用,而此時,正是 fly 大顯身手的時候。

您需要在 https://unpkg.com/flyio/dist/ 或 https://github.com/wendux/fly/tree/master/dist 下載wx.js(未壓縮) 或 wx.umd.min.js(已壓縮,12k)任意一個, 然后將其拷貝到您的工程目錄下。

[[207726]]

使用

 

  1. var Fly=require("../lib/wx.js") //wx.js為您下載的源碼文件 
  2. var fly=new Fly();創建fly實例 
  3. ... 
  4. Page({ 
  5.   //事件處理函數 
  6.   bindViewTap: function() { 
  7.     //調用 
  8.     fly.get("http://10.10.180.81/doris/1/1.0.0/user/login",{xx:6}).then((d)=>{ 
  9.       console.log(d.data) 
  10.     }).catch(err=>{ 
  11.       console.log(err.status,err.message) 
  12.     }) 
  13.   }) 
  14. }) 
  15.  
  16.  
  17. 作者:lazydu 
  18. 鏈接:http://www.jianshu.com/p/2d0a1ad94ed5 
  19. 來源:簡書 
  20. 著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。 

如果您只是單純的使用者,不用往下看了,到這里就可以了,先別急著關啊,來,star一下再走 https://github.com/wendux/fly 。 如果你對原理感興趣,下面介紹一下背后的原理。

原理

Fly對小程序的支持實際上是通過自定義 http engine的方式,我們來看一下wx.js源碼:

 

  1. //微信小程序入口 
  2. var  Fly=require("../dist/fly"
  3. var EngineWrapper = require("../dist/engine-wrapper"
  4. var adapter = require("../dist/adapter/wx") //微信小程序adapter 
  5. var wxEngine = EngineWrapper(adapter) 
  6. module.exports=function (engine) { 
  7.     return new Fly(engine||wxEngine); 
  8.  
  9.  
  10. 作者:lazydu 
  11. 鏈接:http://www.jianshu.com/p/2d0a1ad94ed5 
  12. 來源:簡書 
  13. 著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。 

可以看出,關鍵代碼就在adapter/wx中,我們看看微信小程序的adapter代碼:

 

  1. //微信小程序適配器 
  2. module.exports=function(request, responseCallback) { 
  3.     var con = { 
  4.         method: request.method, 
  5.         url: request.url, 
  6.         dataType: request.dataType||"text"
  7.         header: request.headers, 
  8.         data: request.body||{}, 
  9.         success(res) { 
  10.             responseCallback({ 
  11.                 statusCode: res.statusCode, 
  12.                 responseText: res.data, 
  13.                 headers: res.header, 
  14.                 statusMessage: res.errMsg 
  15.             }) 
  16.         }, 
  17.         fail(res) { 
  18.             responseCallback({ 
  19.                 statusCode: res.statusCode||0, 
  20.                 statusMessage: res.errMsg 
  21.             }) 
  22.         } 
  23.     } 
  24.     //調用微信接口發出請求 
  25.     wx.request(con) 
  26.  
  27.  
  28. 作者:lazydu 
  29. 鏈接:http://www.jianshu.com/p/2d0a1ad94ed5 
  30. 來源:簡書 
  31. 著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。 

這就是所有的實現,很簡單!通過這個例子,可以幫助您理解 “fly正是通過不同的adpter來支持不同的環境” 這句話,至于其它的環境,我們完全可以照貓畫虎。

責任編輯:未麗燕 來源: 簡書
相關推薦

2016-09-27 20:36:23

微信HttpWeb

2020-03-11 09:15:25

微信asyncawait

2016-11-04 10:48:37

信小程序

2017-05-08 15:03:07

微信小程序開發實戰

2016-10-20 21:02:12

微信小程序javascript

2017-01-09 10:01:49

微信小程序

2017-06-09 10:06:54

微信小程序架構分析

2017-06-09 10:40:00

微信小程序架構分析

2017-06-09 12:58:20

微信小程序架構分析

2016-09-28 18:10:59

微信程序MINA

2016-11-04 10:31:49

微信程序指南

2016-11-22 11:23:52

微信小程序騰訊微信

2016-09-27 15:40:58

微信程序前端

2016-11-04 10:49:48

微信小程序

2016-09-27 16:38:24

JavaScript微信Web

2021-06-10 10:51:27

程序基礎架構

2016-11-19 18:06:44

微信小程序張小龍

2017-01-09 09:51:08

微信小程序

2021-03-05 06:25:19

fiddler微信公眾號小程序

2017-06-27 10:53:32

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日日夜夜天天干 | 欧美日韩在线一区二区 | 在线观看成年视频 | 国产这里只有精品 | 国产一二区视频 | 伊人久久精品一区二区三区 | 在线日韩在线 | 91电影| 9999精品视频 | 日韩二三区 | 九色在线视频 | 久久久久久久久久久久久9999 | 精精国产xxxx视频在线 | 成人综合视频在线观看 | 亚洲精品久久国产高清情趣图文 | 成人在线观看免费 | 精品久久一区 | 日韩中文字幕免费在线 | 99热在线观看精品 | www.三级| 日韩欧美在 | 久久99精品久久久水蜜桃 | 午夜一区二区三区在线观看 | 亚洲免费视频在线观看 | 中文字幕在线观看精品 | 国产成人99久久亚洲综合精品 | 亚洲成人福利在线观看 | 欧美成人二区 | 欧美日韩国产一区二区三区 | 亚洲国产伊人 | 亚洲视频不卡 | 一区二区三区日韩精品 | 91亚洲国产成人精品一区二三 | 在线免费观看毛片 | 亚洲欧美视频一区二区 | 久久精品国产v日韩v亚洲 | 国产精品永久久久久久久www | 一区二区三区四区在线视频 | 精品1区 | 久久久www成人免费精品张筱雨 | 欧美精品一区二区免费 |