• uniapp 学集 (第四章)常用API续


    写在前面:分享技术,共同进步,有不足请见谅,相关意见可评论告知 ~

    有道无术,术尚可求;
    有术无道,终止于术!

    多端运行,架式简化;
    编程路漫,学无止尽!

    数据缓存

    官方文档参考
    在这里插入图片描述
    在这里插入图片描述
    代码编写

    <template>
    	<view>
    		<button type="default" @click="setData">异步set</button>
    		<button type="default" @click="setDataSync">同步set</button>
    		<button type="default" @click="getData">异步get</button>
    		<button type="default" @click="getDataSync">同步get</button>
    		<button type="default" @click="removeData">异步remove</button>
    		<button type="default" @click="removeDataSync">同步remove</button>
    	</view>
    </template>
    
    <script>
    	export default {
    		data() {
    			return {
    
    			}
    		},
    		methods: {
    			setData() {
    				console.log("调用前")
    				uni.setStorage({
    					key: "token",
    					data: "56678484113483212",
    					success(e) {
    						console.log("set成功", e)
    					}
    				})
    				console.log("调用后")
    			},
    			setDataSync() {
    				console.log("调用前")
    				uni.setStorageSync("username", "张三")
    				console.log("调用后")
    			},
    			getData() {
    				console.log("调用前")
    				uni.getStorage({
    					key: "token",
    					success(e) {
    						console.log("get成功", e)
    					}
    				})
    				console.log("调用后")
    			},
    			getDataSync() {
    				const data = uni.getStorageSync("username", "")
    				console.log(data)
    			},
    			removeData() {
    				console.log("调用前")
    				uni.removeStorage({
    					key:"username",
    					success(e) {
    						console.log("删除成功!", e)
    					}
    				})
    				console.log("调用后")
    			},
    			removeDataSync() {
    				uni.removeStorageSync("token")
    			}
    		}
    	}
    </script>
    
    <style>
    
    </style>
    
    

    在这里插入图片描述

    位置

    官方文档参考

    uni.getLocation

    uni.chooseLocation

    在这里插入图片描述

    视频组件控制

    官方文档参考

    uni.createVideoContext

    在这里插入图片描述

    创建并返回 video 上下文 videoContext 对象。在自定义组件下,第二个参数传入组件实例this,以操作组件内 <video> 组件。

    平台差异说明

    App H5 微信小程序 支付宝小程序 百度小程序 字节跳动小程序 QQ小程序
    基础库版本>=1.10.0

    videoContext 对象的方法列表

    方法 参数 说明 平台差异说明
    play 播放
    pause 暂停
    seek position 跳转到指定位置,单位 s
    stop 停止视频 微信小程序
    sendDanmu danmu 发送弹幕,danmu 包含两个属性 text, color
    playbackRate rate 设置倍速播放,支持的倍率有 0.5/0.8/1.0/1.25/1.5。微信基础库2.6.3 起支持 2.0 倍速
    requestFullScreen 进入全屏,可传入{direction}参数,详见 video 组件文档
    exitFullScreen 退出全屏
    showStatusBar 显示状态栏,仅在iOS全屏下有效 微信小程序、百度小程序、QQ小程序
    hideStatusBar 隐藏状态栏,仅在iOS全屏下有效 微信小程序、百度小程序、QQ小程序

    danmu-list 对象属性

    字段 说明
    text 弹幕文本
    color 弹幕颜色
    time 弹幕时间
    • app-nvue 平台 2.2.5+ 支持 uni.createVideoContext(videoId, this)
    • app-nvue 平台 2.2.5以下使用本API,需同时设置组件属性id和ref <video id="video1" ref="video1"></video>,或者直接使用 ref,例如 this.$refs.video1
    <template>
    	<view>
    		<video class="video" @play="play" id="myVideo" :enable-danmu="true" :danmu-list="danmu" :src="url" controls></video>
    		<input type="text" v-model="content" placeholder="请输入弹幕内容" />
    		<button type="default" @click="sendDanmu">点我发送弹幕</button>
    	</view>
    </template>
    
    <script>
    	export default {
    		data() {
    			return {
    				content: '',
    				video: null,
    				danmu: [{
    						text: "尽志无悔",
    						color: "#063ea5",
    						time: 1
    					},
    					{
    
    						text: "深思慎取",
    						color: "#FFF",
    						time: 4
    					}
    				],
    				url: "https://ydsmarkdown.oss-cn-beijing.aliyuncs.com/video/a88711e041b5492ba2d1609723e6c008.mp4"
    			}
    		},
    		methods: {
    			play() {
    				this.video = uni.createVideoContext("myVideo")
    			},
    			sendDanmu() {
    				this.video.sendDanmu({
    					text: this.content,
    					color: "#FFF"
    				})
    				// 清除内容
    				this.content = ''
    				console.log(this.danmu)
    			}
    		}
    	}
    </script>
    
    <style>
    	.video {
    		 750rpx;
    	}
    </style>
    
    

    在这里插入图片描述

    交互

    官方文档参考
    在这里插入图片描述

    交互反馈

    代码实操

    <template>
    	<view>
    		<button type="default" @click="showToast">消息提示框</button>
    		<button type="default" @click="showLoad">显示加载框</button>
    		<button type="default" @click="showModal">显示模态框</button>
    	</view>
    </template>
    
    <script>
    	export default {
    		data() {
    			return {
    				
    			}
    		},
    		methods: {
    			showToast() {
    				uni.showToast({
    					title:"操作成功"
    				})
    			},
    			showLoad() {
    				uni.showLoading({
    					title:"加载中..."
    				})
    				setTimeout(()=>{
    					uni.hideLoading()
    				}, 2000)
    			},
    			showModal() {
    				uni.showModal({
    					title:"提示",
    					content:"冲冲冲!!",
    					success(e) {
    						if(e.confirm) {
    							uni.showToast({
    								title:"操作成功"
    							})
    						}
    						if(e.cancel) {
    							uni.showToast({
    								title:"用户已取消"
    							})
    						}
    					}
    				})
    			}
    		}
    	}
    </script>
    
    <style>
    
    </style>
    
    

    在这里插入图片描述
    在这里插入图片描述

    页面通讯

    组件交互
    在这里插入图片描述
    注意:nvue中不能同上述操作与vue进行交互
    解法:
    在这里插入图片描述

    uni.$on(eventName, callback)

    监听全局的自定义事件。事件可以由 uni.$emit 触发,回调函数会接收所有传入事件触发函数的额外参数。

    属性 类型 描述
    eventName String 事件名
    callback Function 事件的回调函数
    		onLoad(e) {
    			uni.$on("method2", () => {
    				console.log("事件被调用了")
    			})
    		},
    

    在这里插入图片描述

  • 相关阅读:
    vue 动态生成 el-checkbox-group,动态绑定v-model的解决方法
    vue 弹窗内scrollTop取值为0的问题
    软件工程课程学习心得
    《软件工程》学习总结及获奖感言
    软件工程课程心得及小黄衫获奖感想
    Prometheus + Alertmanager 实现企业微信告警
    二进制安装Prometheus
    zabbix机器人告警配置流程
    c++不同平台崩溃解析总结
    c++跨平台开发技术总结
  • 原文地址:https://www.cnblogs.com/lzhCreate/p/13771145.html
Copyright © 2020-2023  润新知