weex stream 方法封裝
阿新 • • 發佈:2017-12-28
定義 lap 處理 req message gpo else turn console
1.封裝
api.js
// 配置API接口地址 const baseUrl = ‘http://www.kuitao8.com/‘; // 引入 彈窗組件 var modal = weex.requireModule(‘modal‘); // 引入 請求數據組件 var stream = weex.requireModule(‘stream‘); // 身份驗證 import jwtdecode from ‘jwt-simple‘; // 自定義判斷元素類型JS function toType (obj) { return ({}).toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase() } // 參數過濾函數 function filterNull (o) { for (var key in o) { if (o[key] === null) { delete o[key] } if (toType(o[key]) === ‘string‘) { o[key] = o[key].trim() } else if (toType(o[key]) === ‘object‘) { o[key] = filterNull(o[key]) } else if (toType(o[key]) === ‘array‘) { o[key] = filterNull(o[key]) } } return o } // 工具方法 function toParams(obj) { var param = "" for(const name in obj) { if(typeof obj[name] != ‘function‘) { param += "&" + name + "=" + encodeURI(obj[name]) } } return param.substring(1) }; /** * 接口處理函數 */ function apiStream (method, url, params, success, failure) { // 過濾參數 if (params) { params = filterNull(params) } /*** stream ***/ if(method === ‘GET‘){ // GET 方法 stream.fetch({ method: ‘GET‘, type: ‘text‘, url: baseUrl + url + toParams(params) }, function(res) { if (res.ok) { // 解密 let currentData = jwtdecode.decode(res.data, ‘michahzdee2016‘, ‘HS256‘); success(currentData); }else { modal.toast({ message: ‘請求失敗,請檢查網絡!‘, duration: 2 }) } }) }else if(method === ‘POST‘){ // POST 方法 stream.fetch({ method: ‘POST‘, type: ‘text‘, url: baseUrl + url, headers: {‘Content-Type‘:‘application/x-www-form-urlencoded‘}, body: toParams(params) }, function(res) { if (res.ok) { // 解密 let currentData = jwtdecode.decode(res.data, ‘michahzdee2016‘, ‘HS256‘); success(currentData); }else { modal.toast({ message: ‘請求失敗,請檢查網絡!‘, duration: 2 }) } },function(progress) { // }) } }; // 返回在vue模板中的調用接口 export default { get: function (url, params, success, failure) { return apiStream(‘GET‘, url, params, success, failure) }, post: function (url, params, success, failure) { return apiStream(‘POST‘, url, params, success, failure) }, put: function (url, params, success, failure) { return apiStream(‘PUT‘, url, params, success, failure) }, delete: function (url, params, success, failure) { return apiStream(‘DELETE‘, url, params, success, failure) } }
2.entry.js 全局註冊
import api from ‘./api‘ // 將API方法綁定到全局 Vue.prototype.$api = api
3.頁面調用
let params = { catid:10, pagesize:20 } /*請求數據*/ this.$api.get(‘webservice/Api/List?‘,params,function(data) { console.log(JSON.stringify(data)); })
.
weex stream 方法封裝