uni-app知识点整理(5)- 网络请求、数据缓存、图片上传和预览

目录

一、网络请求

1.1 发送get请求

二、数据缓存

2.1 uni.setStorage(OBJECT)

2.2 uni.setStorageSync(KEY,DATA)

2.3 uni.getStorage(OBJECT)

2.4 uni.getStorageSync(KEY)

2.5 uni.removeStorage(OBJECT)

2.6 uni.removeStorageSync(KEY)

2.7 案例练习

三、图片上传和预览

3.1 uni.chooseImage(OBJECT)

3.2 uni.previewImage(OBJECT)

3.3 案例练习


一、网络请求

在uni中可以调用uni.request方法进行网络请求

需要注意的是:小程序中网络相关API在使用前需要配置域名白名单

uni-app官方文档 - 发起网络请求

1.1 发送get请求

用 express创建api服务器( 接口 )用于测试 uni-app 中的 get请求

express创建api服务器 可查看笔记:AJAX知识点整理 - 第一节和第二节内容

server.js

// 1. 引入express
const express = require('express');
 
// 2. 创建应用对象
const app = express();
 
// 3. 创建路由规则
// request 是对请求报文的封装
// response 是对响应报文的封装
app.get('/server', (request,response)=>{
    // 设置响应头 设置允许跨域
    response.setHeader('Access-Control-Allow-Origin','*');
 
    // 设置响应体
    response.send('HELLO AJAX');
    
});
 
// 4. 监听端口启动服务
app.listen(8000, ()=>{ 
    console.log('服务已经启动, 8000端口监听中');
});

在 detail.vue 页面中为按钮配置点击事件,并点击按钮后发送get请求

<template>
	<view>
		<button @click="sendGet">发送Get请求</button>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				
			}
		},
		methods: {
			sendGet(){
				uni.request({
					// method不写的话,默认为GET请求
					method:"GET",
					url:"http://127.0.0.1:8000/server",
					success(res) {
						console.log(res);
					}
				})
			}
		}
	}
</script>

由图示可看出,点击按钮后成功向服务器发送了get请求 

二、数据缓存

uni-app官方文档 - 数据缓存

2.1 uni.setStorage(OBJECT)

将数据存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个异步接口

OBJECT 参数说明
参数名类型必填说明
keyString本地缓存中的指定的 key
dataAny需要存储的内容,只支持原生类型、及能够通过 JSON.stringify 序列化的对象
successFunction接口调用成功的回调函数
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

2.2 uni.setStorageSync(KEY,DATA)

将 data 存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个同步接口

参数说明
参数类型必填说明
keyString本地缓存中的指定的 key
dataAny需要存储的内容,只支持原生类型、及能够通过 JSON.stringify 序列化的对象

2.3 uni.getStorage(OBJECT)

从本地缓存中异步获取指定 key 对应的内容

OBJECT 参数说明
参数名类型必填说明
keyString本地缓存中的指定的 key
successFunction接口调用的回调函数,res = {data: key对应的内容}
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)
success 返回参数说明
参数类型说明
dataAnykey 对应的内容

2.4 uni.getStorageSync(KEY)

从本地缓存中同步获取指定 key 对应的内容

参数说明
参数类型必填说明
keyString本地缓存中的指定的 key

2.5 uni.removeStorage(OBJECT)

从本地缓存中异步移除指定 key

OBJECT 参数说明
参数名类型必填说明
keyString本地缓存中的指定的 key
successFunction接口调用的回调函数
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行

2.6 uni.removeStorageSync(KEY)

从本地缓存中同步移除指定 key

参数说明
参数名类型必填说明
keyString本地缓存中的指定的 key

2.7 案例练习

在 detail.vue 页面中 设置三个按钮,分别用于 将 data 存储在本地缓存中、取指定 key 对应的内容、移除指定 key

<template>
	<view>
		<button @click="sendGet">发送Get请求</button>
		<button type="primary" @click="setStorage">存储数据</button>
		<button type="primary" @click="getStorage">获取数据</button>
		<button type="primary" @click="removeStorage">移除数据</button>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				
			}
		},
		methods: {
			sendGet(){
				// 异步
				uni.request({
					// method不写的话,默认为GET请求
					method:"GET",
					url:"http://127.0.0.1:8000/server",
					success(res) {
						console.log(res);
					}
				})
			},
			setStorage(){
				// 异步
				uni.setStorage({
					key:'id',
					data:'No.9527',
					success:function(){
						console.log('存储数据成功');
					}
				})
				
				// 同步
				// uni.setStorageSync('id','No.9527')
			},
			getStorage(){
				// 异步
				uni.getStorage({
					key:'id',
					success:function(res){
						console.log('获取数据成功',res.data);
					}
				})
				
				// 同步
				// const res = uni.getStorageSync('id')
				// console.log(res);
			},
			removeStorage(){
				// 异步
				uni.removeStorage({
					key:"id",
					success:function(){
						console.log('移除数据成功');
					}
				})
				
				// 同步
				// uni.removeStorageSync('id')
			}
		}
	}
</script>

三、图片上传和预览

uni-app官方文档 - 媒体 - 图片

3.1 uni.chooseImage(OBJECT)

从本地相册选择图片或使用相机拍照

OBJECT 参数说明
参数名类型必填说明平台差异说明
countNumber最多可以选择的图片张数,默认9见下方说明
sizeTypeArray<String>original 原图,compressed 压缩图,默认二者都有App、微信小程序、支付宝小程序、百度小程序
extensionArray<String>根据文件拓展名过滤,每一项都不能是空字符串。默认不过滤。H5(HBuilder X2.9.9+)
sourceTypeArray<String>album 从相册选图,camera 使用相机,默认二者都有。如需直接开相机或直接选相册,请只使用一个选项
cropObject图像裁剪参数,设置后 sizeType 失效
successFunction成功则返回图片的本地文件路径列表 tempFilePaths
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)
crop 参数说明
参数名类型必填说明
qualityNumber取值范围为1-100,数值越小,质量越低(仅对jpg格式有效)。默认值为80。
widthNumber裁剪的宽度,单位为px,用于计算裁剪宽高比。
heightNumber裁剪的高度,单位为px,用于计算裁剪宽高比。
resizeBoolean是否将width和height作为裁剪保存图片真实的像素值。默认值为true。注:设置为false时在裁剪编辑界面显示图片的像素值,设置为true时不显示

3.2 uni.previewImage(OBJECT)

预览图片

OBJECT 参数说明
参数名类型必填说明平台差异说明
currentString/Number详见下方说明详见下方说明
urlsArray<String>需要预览的图片链接列表
indicatorString图片指示器样式,可取值:"default" - 底部圆点指示器; "number" - 顶部数字指示器; "none" - 不显示指示器。App
loopBoolean是否可循环预览,默认值为 falseApp
longPressActionsObject长按图片显示操作菜单,如不填默认为保存相册App 1.9.5+
successFunction接口调用成功的回调函数
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

current 参数说明

可直接查看 uni-app官方文档 - 媒体 - 图片,更为细致

3.3 案例练习

  • 在 message.vue 页面添加上传图片按钮,并配置点击事件
  • 上传图片后,图片会显示出来
  • 点击图片可以预览图片

message.vue

<template>
	<view>
		message页面
		<button type="primary" @click="chooseImg">上传图片</button>
		<img v-for="img in imgArr" :src="img" @click="previewImg(img)">
	</view>
</template>

<script>
	export default {
		data() {
			return {
				imgArr:[]
			}
		},
		methods: {
			chooseImg(){
				uni.chooseImage({
					count:9,
					success: (res) => {
						console.log(res);
						this.imgArr = res.tempFilePaths;
					}
				})
			},
			previewImg(current){
				console.log(current);
				uni.previewImage({
					current,
					urls:this.imgArr
				})
			}
		}
	}
</script>

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JHY97

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值