加载中 ...
首页 > 新闻资讯 > 小程序 正文

微信小程序api拦截器

2019-07-31 09:30:09 来源:沈阳小程序开发 作者:沈阳软件开发

这里介绍微信小程序api拦截器,微信小程序api拦截器与原始的小程序项目和小程序api的原始调用模式完全兼容。

21708-1P52Q42225L0.jpg

完全兼容原生小程序项目完美使用小程序api原始呼叫模式,无痛迁移小程序api完全Promise和axios相同的请求方法小程序api自定义拦截调用参数并返回结果强大的异步拦截快速启动安装npm install wxapp-api-interceptors - -save使用mpvue和其他项目从'wxapp-api-interceptors'导入wxApiInterceptors; wxApiInterceptors(); //必须在调用小程序api

之前调用本机小程序项目 下载项目并将移动文件夹dist中的wxApiInterceptors.js和runtime.js文件解压缩到您自己的项目中,如示例所示。

Const wxApiInterceptors=require('./wxApiInterceptors'); wxApiInterceptors(); //在调用小程序api之前调用小程序api调用

没有必要传递成功,完整和失败的参数。 ️注意:本机小程序项目不支持Promise.finally功能异步调用方法:

wx.showLoading({title:'Login .'})。then(wx.login).then(data=> wx.request.post('/login',{data}))。then(()=> wx.showToast({title:'登录成功'}))。catch(()=> wx.showToast({title:'login failed'}))。finally(wx.hideLoading);也兼容原生呼叫模式(不方便维护):wx.showLoading({title:'登录.',成功:()=> {wx.login({success:(data)=> {wx.request({url:'/login',数据,成功:()=> wx.showToast({title:'登录成功'}),失败:()=> wx.showToast({title:'登入失败'}),完成: wx.hideLoading,});},});},});自定义拦截器

用法和参数:wxApiInterceptors({[api]: {[request](params): params,[response](res): res}})例如,截取wx.showModal的默认值confirmColor为红色,通话成功并被截获。调用成功返回的结果。

wxApiInterceptors({showModal: {request(params){if(params.confirmColor===undefined){params.confirmColor='red';} return params;},response(res){res='call successful'; return res ;},}}); wx.showModal({title:'test'})。then(console.log); //受控输出:默认情况下,调用成功拦截请求api,请求api以类似的方式打包axios

调用wx.request [method](url,[config])发送axios请求。

默认GET请求

Wx.request('https://test.com/banner')。then(({data})=> {console.log(data);})其他请求方法wx.request.post('https://test.com',{ data: {userName:'test'}})。then(({data})=> {console.log(data);})当然,你可以继续拦截请求api

例如,为请求api设置默认主机:

wxApiInterceptors({request: {request(params){const host='https://test.com'if(!/^(http | \/\ /)/。test(params.url)){params.url=host + params .url;} return params;},},});

您甚至可以阻止您的业务状态代码:

wxApiInterceptors({request: {response(res){const {data: {code}}=res; //如果数据中的代码等于-1,则响应失败if(code===-1){ return Promise.reject(res);} return res;},},});强大的异步拦截器

例如,在调用请求api时,将在标头中获取本地存储的令牌。如果没有,则从服务器获取:

wxApiInterceptors({request: {async request(params){if(params.header===undefined){params.header={};} let token=wx.getStorageSync('token'); if(!token){( {data: token}=await wx.request('/getToken')); wx.setStorageSync('token',token);} params.header.token=token; return params;},},});

< 汇海(www.hvihi.com)是国内知名的商城系统和商城网站建设提供商,其中汇海技术小程序系统提供小程序商城开发,小程序配送系统,微分配系统,商城系统,电子商务网站建设, 微信发行系统,小程序商城及其他多端商场和电子商务行业解决方案>

确认:这个文件和图像源网络编辑器的网站部分,如果有侵权及时通信删除。 汇海hvihi.com网站原创文章,请注明出处。

“沈阳软件公司”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与

我们联系删除或处理,客服QQ:55506560,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同

其观点或证实其内容的真实性。