vue+uniapp 项目中一些常用知识

摘要:
1、uniapp上拉加载,下拉刷新onPullDownRefresh(){//下拉的生命周期this.init()},onReachBottom(){//上拉的生命周期this.init()},2、h5页面与android(WebViewJavascriptBridge)/ios(window.webkit.messageHandlers)交互详细、uni.getSystemInfo成功回调中的r

1、uniapp上拉加载,下拉刷新

onPullDownRefresh() {
	//下拉的生命周期
	this.init()
},
onReachBottom() {
	//上拉的生命周期
	this.init()
},	    

2、h5页面与android(WebViewJavascriptBridge) / ios(window.webkit.messageHandlers)交互详细、uni.getSystemInfo 成功回调中的res.model判断设备机型

uni.getSystemInfo({
		success: (res) => {
			switch (type) {
				case "share":
					if (res.model === "iPhone") {
						window.webkit.messageHandlers.share.postMessage(
							JSON.stringify(params)
						);
					} else {
						window.android.share(JSON.stringify(params));
					}
					break;
				case "wechatLogin":
					if (res.model === "iPhone") {
						window.webkit.messageHandlers.wxLogin.postMessage(
							JSON.stringify(params)
						);
					} else {
						window.android.wxLogin(JSON.stringify(params));
					}
					break;
				case "QQLogin":
					if (res.model === "iPhone") {
						window.webkit.messageHandlers.qqLogin.postMessage(
							JSON.stringify(params)
						);
					} else {
						window.android.qqLogin(JSON.stringify(params));
					}
					break;
				case "saveImage":
					if (res.model === "iPhone") {
						window.webkit.messageHandlers.saveImage.postMessage(
							JSON.stringify(params)
						);
					} else {
						window.android.saveImage(JSON.stringify(params));
					}
					break;
				case "takePhoto":
					if (res.model === "iPhone") {
						window.webkit.messageHandlers.takePhoto.postMessage(
							JSON.stringify(params)
						);
					} else {
						window.android.takePhoto(JSON.stringify(params));
					}
					break;
				case "choosePhoto":
					if (res.model === "iPhone") {
						window.webkit.messageHandlers.choosePhoto.postMessage(
							JSON.stringify(params)
						);
					} else {
						window.android.choosePhoto(JSON.stringify(params));
					}
					break;
					case "captureScreen":
						if (res.model === "iPhone") {
							window.webkit.messageHandlers.captureScreen.postMessage(
								JSON.stringify(params)
							);
						} else {
							window.android.captureScreen(JSON.stringify(params));
						}
						break;
				default:
					break;
			}
		},
	});

3、处理键盘抬起(手机输入法-软键盘 )这里需要根据各自的页面进行判断 如下:键盘抬起和放下数值不同(num不同)

this.$nextTick(() => {
	const height = document.body.clientHeight;
	uni.onWindowResize((res) => {
		let num = Math.abs(height - res.size.windowHeight);
		console.log("num", num);
		this.isShowBottom = num < 45;
	});
});

4、uniapp弹框uni.showToast、uni.showModal

uni.showToast({
	title: "意见未填写",
	icon: "none",
})
icon  的值: success、error、loading、none

duration属性为弹框显示时间
duration: 2000  



uni.showModal({
    title: '提示',
    content: '这是一个模态弹窗',
    success: function (res) {
        if (res.confirm) {
            console.log('用户点击确定');
        } else if (res.cancel) {
            console.log('用户点击取消');
        }
    }
});

showCancel  是否显示取消按钮
cancelText  取消按钮的文字,默认为"取消",最多 4 个字符
cancelColor   取消按钮的文字颜色,默认为"#000000"
confirmText  确定按钮的文字,默认为"确定",最多 4 个字符
confirmColor 确定按钮的文字颜色,H5平台默认为"#007aff",微信小程序平台默认为"#576B95",百度小程序平台默认为"#3c76ff"

5、上传图片后预览图片

uni.previewImage({
	urls: [url],
})

6、h5 input password 密码自动回填

input输入框加入属性    autocomplete="new-password"

7、@click 与 @click.stop 使用

<view   @click="tipClick()">
     <view @click.stop="stopTap()"></view>
</view>
应用场景:点击说明框以外 提示框隐藏
vue+uniapp 项目中一些常用知识第1张

8、uniapp 从某个页面点击导航栏的返回按钮直接返回到首页

onBackPress() {
	uni.switchTab({
	     url: '../home/index'
        })
	return true
},

9、随机生成字符串

Math.random().toString(32).split('.')[1]   // 'ppo5157739'  ...

------- 持续更新 ------

免责声明:文章转载自《vue+uniapp 项目中一些常用知识》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇服务网关Ocelot 入门Demo系列(01-Ocelot极简单Demo及负载均衡的配置)设计模式——责任链模式下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

使用 @Query 注解实现查询

2")ListfindByPriceRange;/***参数绑定@Param注解注入参数*/@QueryPersonreadPersonByLastNameAndEmailThroughName;//使用like@Query("selectpfromPersonpwherelastNamelike?...

Flutter——数组以符号隔开转字符串

///数组转换为字符串StringgetTaskScreen(Listlist){ListtempList=List();Stringstr='';List.forEach((f){tempList.add(f.title);});临时列表。forEach((f){if(str==“”){str=“$f”;}否则{str=“$str”,“$f”;}});re...

可用的rtmp互联网地址

Rtmp:vlc使用ffmpeg获取Rtmp网络流。代码文件路径:vlc-2.2.1 modulesassesavio。hvlc-2.2.1模块。c在模块的开放回调函数OpenAvio中,使用以下代码打开rtmp网络流。avio_打开(&amp;avio_FLAG_READ);//或者这个avio_open2(&amp;sys-&gt...

国产操作系统——银河麒麟V10 SP1使用小结

几天前,我看了国内操作系统Galaxy Kirin有了新更新的新闻,于是我开始了一个新系统=============================================个人评价:这个系统是一个国产操作系统。尽管使用了大量的Ubuntu和Windows设计,使用了Linux内核,但这是国产操作系统从无到有的开始,其意义和价值远远大于其使用价值。总之...

【工具技巧】:sublime notepad++ 多行编辑

将光标定位到一行-˃ctrl+shift+↑↓, 上下移动一行。选择-˃ctrl+shift后+↑↓, 上下移动所选区域。再次按6:Ctrl+Shift+Enter在光标前插入一行。...

Python-正则

,三:量词*重复0次或多次{0,}+重复一次或多次{1,}?重复0或1次{1,0}{n}重复n次{n}{n,}重复n次,或更多次{n,m}将n次重复到m次Escape:如果字符串中有特殊字符要匹配,请在常规字符和字符串前面添加r。如果特殊字符在字符组中,则它们是匹配的特殊字符,但为了记忆,匹配时会转义所有特殊字符。...