uniapp及微信小程序封装全局网络请求,弹框和hint提示

这篇具有很好参考价值的文章主要介绍了uniapp及微信小程序封装全局网络请求,弹框和hint提示。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

今天分享一下uniapp项目的网络请求如何封装,不知道大家开发微信小程序项目是用什么开发工具,我个人更喜欢用uniapp,无论是从项目扩展方向还是开发效率来说,uniapp都是首选。

1:创建一个项目工具库,http.js

//提示
	hint(title, duration, mask, icon) {
		uni.showToast({
			title: title,
			duration: duration ? duration : 2000,
			mask: mask,
			icon: icon == 'success' ? 'success' : icon == 'error' ? 'error' : icon == 'fail' ? 'fail' :
				icon == 'exception' ? 'exception' : icon == 'loading' ? 'loading' : 'none',
		});
	},
	//加载弹框
	loading(title, mask) {
		uni.showLoading({
			title: title,
			mask: mask
		});
	},
	//隐藏加载弹框
	hideLoading() {
		uni.hideLoading();
	},
	//模拟弹窗
	modal(content, showCancel, confirm, cancel, cancelText) {
		uni.showModal({
			title: '提示',
			content: content,
			showCancel: !showCancel,
			cancelText: cancelText ? cancelText : '取消',
			success: function(res) {
				if (res.confirm) {
					confirm()
				} else if (res.cancel) {
					cancel()
				}
			}
		});
	},
	
	//因为开发时是在浏览器开发,涉及到跨域,所以要做条件判断,浏览器做跨域处理,手机直接使用地址
	reqAddress() {
		// #ifdef H5
		return "/api"
		// #endif
		// #ifndef H5
		return "http://xxxxx"//替换成自己的地址
		// #endif
	},
	// 设置token
	setToken(data) {
		uni.setStorageSync('token', data)
	},
	
	// 获取token
	getToken() {
		return uni.getStorageSync('token')
	},
	//数据请求
	request(url, method, data, Loading, isToken,isData, isForm ) {
		if (!Loading) {
			http.loading('加载中', true)
		}
		return new Promise((resolve, reject) => {
			uni.request({
				url: http.reqAddress() + url,
				data: data,
				method: method,
				header: {
					'content-type': isForm ? 'application/x-www-form-urlencoded' :
						'application/json',
					'Authorization': isToken ? '' :http.getToken(),
				},
				dataType: 'json',
				success(res) {
					if (!Loading) {
						http.hideLoading()
					}
					if(isData){
						resolve(res)
					}else{
						if (res.data.code == 200) {
							resolve(res.data)
						} else if (res.data.code == 401) {
							http.hint("请重新登录")
							uni.reLaunch({
								url: '/pages/login/login-phone/login-phone'
							})
						} else if (res.data.code == 500) {
							resolve(res.data)
							http.hint(res.data.msg)
						} else {
							resolve()
						}
					}
				},
				fail(rej) {
					if (!Loading) {
						http.hideLoading()
					}
					http.hint("网络不给力,请稍后再试~")
					reject(rej)
				}
			})
		})
	}
}
export default http

在vite.config.js文件中配置跨域

server: {
		port: 3000,
		proxy: {
			'/api': {
				target:'http:xxxxxx', 
				changeOrigin: true,
				rewrite: path => path.replace(/^\/api/, ''),
			}
		}
	}

这样,一个全局网络请求工具就完成了,含有content-type字段判断,200,401,500状态码提示信息等功能,微信小程序的话只需要用hbuilder工具编译到微信小程序即可,谢谢观看,欢迎指正!文章来源地址https://www.toymoban.com/news/detail-735042.html

到了这里,关于uniapp及微信小程序封装全局网络请求,弹框和hint提示的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【微信小程序】挂载网络请求到全局this对象

    《工欲善其事,必先利其器》 有一些常用的东西,如 http 请求、弹窗、错误处理等等,如果在每个页面都引用一遍,会增加不必的代码量,我们可以在 app.js 中对 Page 对象进行简单地封装,从而让 Page 的能力更强。 一、封装原生网络请求 request.js : 二、app.js 引入网络请求,

    2024年02月07日
    浏览(43)
  • uniapp 微信小程序 封装axios 包含请求拦截、响应拦截、无感刷新令牌功能

    前言: 1、为什么不适用uniapp自带的请求功能? 答:uniapp自带的请求功能,再刷新了令牌后,重新请求返回的数据无法返回给发起请求的方法。也就是说,刷新令牌后重新发起的请求和第一次发起请求的方法是割裂的。 2、封装文件中,我设置了无感刷新令牌功能。我后台的

    2024年02月03日
    浏览(66)
  • 微信小程序基于Promise封装发起网络请求

         

    2024年02月17日
    浏览(56)
  • 微信小程序封装网络请求设置超时5min不生效

    背景: 开发微信小程序时,由于有些业务场景特殊,接口返回时间较长,因此使用flyio封装网络请求时将timeout设置为5min。 问题: 设置timeout为5min,发现请求时长超过1min后请求自动断开了。 解决方案: 除了在网络请求那设置,还需要在app.json中设置networkTimeout中的request属性

    2024年01月17日
    浏览(57)
  • 【7 微信小程序学习 - 小程序的系统API调用,网络请求封装】

    请求数据,保存数据 需要封装为单独的函数,不然不是异步的 (推荐,可配置不同基础URL的多个实例)

    2024年02月09日
    浏览(44)
  • 微信小程序(二)--- 数据绑定,事件绑定,全局配置window,tabBar,网络数据请求,request合法域名,GET,POST

    目录 一、WXML模板语法 1、数据绑定 (1)Mustache语法 2、事件绑定  (1)常用事件  (2)属性列表  (3)target和currentTarget的区别  (4)bindtap语法格式  (5)在事件处理函数中为data中的数据赋值 (6)事件传参 (7)bindinput的语法格式 (8)实现文本框(input)和data之间的数

    2024年02月04日
    浏览(49)
  • 微信小程序全局封装防抖节流函数

    什么是防抖节流? 防抖:  简单来说就是指触发事件后在  n  秒内函数只能执行一次(输入框搜索自动补全事件、频繁点赞和取消点赞、提交事件等等) 节流:  简单来说就是指连续触发事件但是在  n  秒中只执行一次函数(发送验证码、表单验证、鼠标移动事件等等)

    2024年01月25日
    浏览(45)
  • 微信小程序封装请求

    封装请求 解决的问题 很多页面中请求的 url 前半部分都是一样的,重复书写导致页面代码冗余复杂同时逻辑容易不清晰,所以采用单独将请求封装成一个文件(模块)使得这些问题得到解决。 前期基础知识 uni.request(wx.request) Promise 具体步骤 创建文件夹及文件 在根目录下

    2024年02月11日
    浏览(45)
  • UniApp转微信小程序之全局组件

    1.全局注册组件 两种方法推荐使用easycom 注册,easycom可以大规模注册组件 2.全局插入组件 1.下载插件 2.配置vue.config.js文件 没有这个文件的话,新建一个vue.config.js文件 3.注册全局组件 和uniapp中注册全局组件操作一样 4.配置pages.json文件

    2024年02月03日
    浏览(59)
  • 微信小程序 封装request请求

    创建 utils 文件夹后创建 api 文件夹创建 request.js 创建 index.js

    2024年02月15日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包