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=

随便看看

利用adb实时查看应用日志

出现乱码解决办法:就是通过chcp命令改变代码页,UTF-8的代码页为65001,输入命令:,执行该操作后,代码页就被变成UTF-8了。...

Spark 数据读取与保存(输入、输出)

SaveAsTextFile(字符串)scala&gt:importsscala.util.parsing.json.json(2)将json文件上载到HDFS[lxl@hadoop102spark]$hadoopfs投入。/示例/src/main/resources/people。json/(3)读取文件scala&gt;...

页面加载时自动执行(加载)js的几种方法

Js调用onload方法window.onload=function(){func1();func2();func3();}二、JQ方法1.整个页面的document全部加载完成以后执行。不幸的这种方式不仅要求页面的DOMtree全部加载完成,而且要求所有的外部图片和资源全部加载完成。更不幸的是,如果外部资源,例如图片需要很长时间来加载,那么这个js方法执行...

WPF 制作圆角按钮

在程序对应坐置插入以下代码,或是先拖一个按钮控件到窗体中,再替换对应的代码。...

安装gulp教程(整理)

所以安装nodejs。...

iReport制作报表,字数过多换行问题

1.当字段中显示的数据太长而无法放入表中时,需要自动换行。选择要更改的表(显示动态内容的字段),并将Stretchwithoverflow属性设置为选中。未选中前:选中后:2.然而,桌子坏了,非常难看。此时,我们需要设置一个属性,使同一行中的其他字段保持与换行字段相同的高度。此时,我们需要框选要显示在整行中的动态字段和表;将属性StretchType设置为R...