当前位置: 首页 > news >正文

全局弹窗:uniapp之app可覆盖原生组件的全局调用弹窗

目录

  • Tips
  • 实现步骤
  • 属性方法说明
  • 更多前端知识

Tips

  1. 该弹窗适合全局调用,并覆盖所有原生组件,结合vuex实现。
  2. 全局弹窗是不属于单纯的组件,使用之前先下载示例运行测试,看看是否满足自己的需求。
  3. 使用的开发者,需要对照步骤一步步将示例代码中的部分代码插入自己的项目中,需要仔细点,其中一步错误,就可能走不下去。
  4. store下面的结构,最好是和我的示例保持一样,我的store下面做了模块化,如果开发者的目录没用该模式,建议改用该模式或者能力足够的自己改源码实现。
  5. 由于小程序自身不支持自定义动画,所以目前暂时无法用该方式实现全局弹窗。
  6. 该插件只适用于uniapp打包的app项目中(推荐app-nvue、app-vue)。
  7. 该插件已上传到uniapp的插件市场:https://ext.dcloud.net.cn/plugin?id=5408

实现步骤

1. 下载示例,使用页面:

使用示例中的pages/lipan-popup/lipan-popup页面,将该页面放入自己的项目中(图中路径仅供参考):

image

2. 注册页面:

在自己的项目page.json中注册步骤1中的页面:

{
	"path": "pages/lipan-popup/lipan-popup",
	"style": {
		"disableScroll": true,
		"app-plus": {
			"backgroundColorTop": "transparent",
			"background": "transparent",
			"titleNView": false,
			"scrollIndicator": false,
			"popGesture": "none",
			"animationType": "fade-in",
			"animationDuration": 300
		}
	}
}

注意: 注册页面的属性和值要和这里的代码最好保持一致,否则会出现预想不到的问题。

3. 使用popup.js:

建议将store整个目录复制到自己的项目中,如果不这样,就需将store/modules/popup.js的popup.js放到自己的项目中,根据vuex规则去修改实现,具体的根据自己的需求和源码研究。(popup.js中利用vuex管理全局弹窗的参数、函数等):

image

注意: store文件夹里面的结构,最好是和我的示例保持一样,我的store下面做了模块化,如果开发者的目录没用该模式,建议改用该模式或者能力足够的自己改源码实现。

4. 根据步骤1或2中的页面路径修改popup.js中的页面路径:

根据自己的需求修改popup.js中的页面路径:

image

5. 全局挂载store:

将store引入APP.vue中挂载到全局变量中globalData: {store}(这样做的目的: 方便js中也可以直接使用)。

image

6. 一般使用方法:

一般在vue中的使用方式,在js中使用的方式参考步骤7

this.$store.dispatch('popup/open', {
  showCancel: true,
  title: '温馨提示哈哈哈',
  content: '我就是内容呀我就是内容呀我就是内容呀我就是内容呀我就是内容呀11',
  confirmText: '好的',
  cancelText: '知道了',
  confirmColor: 'red',
  cancelColor: '#2878ff',
  btnType: 2,
  maskClick: true,
  confirm(res) {
  	console.log('点击确定回调:', res)
  },
  cancel(res) {
  	console.log('点击取消回调:', res)
  }
});

7. 在js中的使用方法:

这种使用方式,需要完成步骤5才能实现

getApp().globalData.store.dispatch('popup/open', {
	showCancel: true,
	title: '我是js中打开的弹窗',
	content: '我是js中打开的弹窗内容内容内容内容内容内容内容内容内容内容内容',
	confirmText: '好的',
	cancelText: '知道了',
	confirmColor: 'red',
	cancelColor: '#2878ff',
	btnType: 1,
	maskClick: true,
	confirm(res) {
		console.log('点击确定回调:', res)
	},
	cancel(res) {
		console.log('点击取消回调:', res)
	}
});

属性方法说明

名称类型是否必填默认值可选值说明
titleString按需不填就不显示标题部分
titleColorString‘#222’按需标题颜色:支持类似’pink’,16进制颜色
contentString按需弹窗内容
contentColorString‘#222’按需内容颜色:支持类似’pink’,16进制颜色
showCancelBooleantruetrue/false是否显示取消按钮
confirmTextString‘确认’按需确认按钮文字
cancelTextString‘取消’按需取消按钮文字
confirmColorString‘#2878ff’按需确认按钮颜色
cancelColorString‘#222’按需取消按钮文字
btnTypeNumber1/21-取消在左,确认在右;2-反之
maskClickBooleantruetrue/false是否允许点击蒙层关闭
@confirmEventHandle确认回调
@cancelEventHandle取消回调

此插件也是本人在项目中所写,感兴趣的可以先体验我们的安卓项目APP‘原创力文档’中的所有弹窗。

有任何问题欢迎大家在评论区讨论。开源不易,希望觉得不错的可以点个赞哟~~~

更多前端知识

如果有任何疑问可以留言,更多相关技术也可以加QQ群交流:568984539

更多前端、uniapp、nodejs等相关知识可关注我个人博客:https://blog.csdn.net/qq_42961150?spm=1011.2124.3001.5343

相关文章:

  • Caused by: Unable to locate parent package [json-package] for [class com.you.action.ColumnAction] -
  • 防抖和节流的理解
  • switch中的break和return的区别
  • 测试Js权限
  • uniapp开发:uni.request基于async+await的二次封装,兼容vue2、vue3、及多端
  • 自定义Property属性动画
  • 阿里iconfont图标ttf转换为base64【非常详细】
  • 浏览器输入url以后所经历的过程
  • linux中DNS原理详解
  • 原型链的简单理解【关系到结论】
  • Qt中实现渐变动画效果
  • DOM树的理解【面试常问】
  • h5适配的解决方案【1】
  • class命名及前端部分规范【解决命名的疑问】
  • 小程序中使用彩色图标(阿里iconfont)
  • CAP理论的例子讲解
  • C语言笔记(第一章:C语言编程)
  • JSDuck 与 AngularJS 融合技巧
  • Logstash 参考指南(目录)
  • mysql 5.6 原生Online DDL解析
  • springMvc学习笔记(2)
  • V4L2视频输入框架概述
  • 编写符合Python风格的对象
  • 坑!为什么View.startAnimation不起作用?
  • 蓝海存储开关机注意事项总结
  • 聊聊hikari连接池的leakDetectionThreshold
  • 前端_面试
  • 悄悄地说一个bug
  • 一个JAVA程序员成长之路分享
  • 移动端解决方案学习记录
  • 在Docker Swarm上部署Apache Storm:第1部分
  • elasticsearch-head插件安装
  • 阿里云ACE认证学习知识点梳理
  • 如何正确理解,内页权重高于首页?
  • ​比特币大跌的 2 个原因
  • ​水经微图Web1.5.0版即将上线
  • #Linux(make工具和makefile文件以及makefile语法)
  • (3)(3.5) 遥测无线电区域条例
  • (C)一些题4
  • (Java数据结构)ArrayList
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .Net Memory Profiler的使用举例
  • .net 按比例显示图片的缩略图
  • .NET 中让 Task 支持带超时的异步等待
  • .NET6实现破解Modbus poll点表配置文件
  • // an array of int
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • @SuppressLint(NewApi)和@TargetApi()的区别
  • [ 第一章] JavaScript 简史
  • [.NET]桃源网络硬盘 v7.4
  • [20171106]配置客户端连接注意.txt
  • [Android]竖直滑动选择器WheelView的实现
  • [C++][数据结构][算法]单链式结构的深拷贝