WeToast:微信小程序toast增强插件 - CSDN博客
http://blog.csdn.net/qq_38125123/article/details/69948373
WeToast:微信小程序toast增强插件
WeToast for 微信小程序 toast增强插件
Github:https://github.com/kiinlam/wetoast
概述
WeToast 是仿照微信小程序提供的 showToast 功能,提供视觉一致的增强插件,弥补小程序showToast功能上的不足(如只能显示success、loading两种icon,且icon不可去除,持续时间最大10秒等)。
预览
下载WeToast项目(https://github.com/kiinlam/wetoast/archive/master.zip),用微信web开发者工具(https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html)打开项目根目录
如何使用
WeTaost插件源码位于src目录下,包含3个文件。
- wetoast.js: 脚本代码
- wetoast.wxml: 模板结构
- wetoast.wxss: 样式
使用时只需要加入以上3个文件即可,使用方法可参考本项目示范。
推荐方案
Step1、在项目的app.js中引入wetoast.js,并注册到小程序上,小程序所有Page页面均可使用,无需再次引入
let {WeToast} = require('src/wetoast.js') // 返回构造函数,变量名可自定义
App({
WeToast // 后面可以通过app.WeToast访问
})
Step2、在项目的app.wxss中引入wetoast.wxss
@import "src/wetoast.wxss";
Step3、引入WeToast模板结构,
方式一,在单独页面使用
<!-- 文件 index.wxml 中 -->
<import src="../../src/wetoast.wxml"/>
<template is="wetoast" data="{{...__wetoast__}}"/>
方式二,创建公用包含文件,将所有公用模板放在一起
<!-- 文件 footer.wxml 中 -->
<import src="src/wetoast.wxml"/>
<template is="wetoast" data="{{...__wetoast__}}"/>
<!-- 其他xxoo模板 -->
<template is="wexxoo" data="{{...wexxoo}}"/>
然后通过include引入
<!-- Page文件 index.wxml 底部 -->
<include src="footer.wxml"/>
API
WeToast()
构造函数,返回WeToast实例对象,该操作会在当前Page上创建一个名为wetoast的引用,在Page中可通过this.wetoast访问。通常在Page的onLoad中调用,可重复使用。
示例
// 创建可重复使用的WeToast实例,并附加到Page上,通过this.wetoast访问
new app.WeToast()
// 也可创建变量来保存
let mytoast = new app.WeToast()
WeToast.prototype.toast(Object)
控制toast的显示、隐藏,接收一个可选的对象作为配置参数。不提供参数时,表示隐藏toast。
Object参数说明:
参数类型必填说明
·img
String 可选* 提示的图片,网络地址或base64
·imgClassName
String 自定义图片样式时使用的class
·imgMode
String 参考小程序image组件mode属性
·title
String 可选* 提示的内容
·titleClassName
String 自定义内容样式时使用的class
·duration
Number 提示的持续时间,默认1500毫秒
·success
Function 提示即将隐藏时的回调函数
·fail
Function 调用过程抛出错误时的回调函数
·complete
Function 调用结束时的回调函数
可选表示至少设置 img 或 title 中的一个
img参数补充说明
提示的图片设置尺寸为55px * 55px,建议使用原始大小为110px * 110px的图片。使用图片时,优先选择base64形式,保证实时显示。
title参数补充说明
提示框的宽度设置了最小宽度为8.4em,最大宽度为屏幕的70%,超过时会换行。
duration参数补充说明
当duration设置为0时,将不自动隐藏提示层,直到下次再次调用wetoast.toast(),不传入配置项表示隐藏提示。
回调函数参数补充说明:
success、fail、complete执行时均会回传配置参数Object。无论成功或失败,complete都会执行。
示例
// 只显示图标,不显示文字
wetoast.toast({
img: 'https://raw.githubusercontent.com/kiinlam/wetoast/master/images/cross.png'
})
// 只显示文字,不显示图标
wetoast.toast({
title: 'WeToast'
})
// 显示文字、图标,执行回调函数
wetoast.toast({
img: 'https://raw.githubusercontent.com/kiinlam/wetoast/master/images/star.png',
title: 'WeToast',
success (data) {
console.log(Date.now() + ': success')
},
fail (data) {
console.log(Date.now() + ': fail')
},
complete (data) {
console.log(Date.now() + ': complete')
}
})
// 自定义显示持续时间
wetoast.toast({
title: 'WeToast',
duration: 5000
})
问答
问:个人开发者怎么体验小程序?
答:可参考此文个人开发者体验小程序的方法。原理很简单,只要能扫码进入微信web开发者工具,就能创建小程序项目,所以问题变为如何成为开发者。
个人成为开发者最简单的方式就是申请微信订阅号,完成后即可进入开发者工具。
问:为什么做这个插件?
答:微信小程序提供的showToastAPI目前仅支持显示success、loading两种图标,不够用,且在某些场景下,最大值10秒也不够用。
在官方未提供更丰富配置的情况下,有必要在官方UI规范的框架下提供一套功能更实用的备选方案。
同时我也希望各开发者能够达成共识,在实现自身需求时,尽量以官方UI规范为指导,避免出现各种花样的弹层效果。
问:是否会出现“串页”问题?
答:此处“串页”是指上一页的代码在当前页执行。在navigate跳转的情况下,由于页面不是被关闭,因此代码还在执行,一些涉及全局的操作会被带入当前页。
在开发本插件的时候,充分考虑了这一点,采用实例化toast对象并附加到当前的Page对象上,在切换Page后仍然指向上一页的Page对象,不会出现“串页”问题。
TODO
- 增加预定义ICON
- 增加可自定义动画功能
License
The MIT License
请自由地享受和参与开源
贡献
如果你有好的意见或建议,欢迎给我提issue或pull request。
相关文章推荐
-
微信小程序之『自定义toast』
一、微信官方默认toasttoast最常见了,几乎每个App都有这样的特效,先看下小程序自带的toast效果,立马想死的心都有了~~微信自带toast的效果: js文件:wx.showToast...![qq_31383345 qq_31383345]()
- qq_31383345
- 2016年12月12日 22:01
- 3489
-
微信小程序之『自定义toast』
一、微信官方默认toast toast最常见了,几乎每个App都有这样的特效,先看下小程序自带的toast效果,立马想死的心都有了~~ 微信自带toast的效果: js文件: ...![sinat_17775997 sinat_17775997]()
- sinat_17775997
- 2016年12月13日 11:47
- 5312
![]()
-
程序员,27岁,该转型AI吗?
据数据统计,今年有38%左右的程序员开始转向人工智能开发,那么到底是不是每一个程序员都适合转型?90%的人这么说...
-
目前为止最全的微信小程序项目实例
wx-gesture-lock 微信小程序的手势密码 WXCustomSwitch 微信小程序自定义 Switch 组件模板 WeixinAppBdNovel 微信小程序demo:百度小...![zuoliangzhu zuoliangzhu]()
- zuoliangzhu
- 2016年12月24日 21:10
- 98229
-
目前为止最全的微信小程序项目实例
wx-gesture-lock 微信小程序的手势密码 WXCustomSwitch 微信小程序自定义 Switch 组件模板 WeixinAppBdNovel 微信小程序de...![aaa333qwe aaa333qwe]()
- aaa333qwe
- 2017年09月26日 11:32
- 353
-
【微信小程序】布局插件:wxgrid
微信小程序发布,web端的插件基本都用不了。接下来应该会有不少微信小程序插件出现吧……...![wowkk wowkk]()
- wowkk
- 2016年10月05日 17:19
- 6665
![]()
-
个人开发者如何通过人工智能盈利?
个人如何开发一款人工智能应用?个人如何利用免费的人工智能工具与平台赚钱?
-
Delphi7高级应用开发随书源码
- 2003年04月30日 00:00
- 676KB
- 下载
-
用sublime开发微信小程序的快捷插件
因为sublime只是敲代码的地方,最终运行结果还是得看官方的IDE,所以使用sublime开发微信小程序的流程是这样的: 创建小程序项目,直接将整个项目文件夹拖入sublime,即可在sublim...![a31017799 a31017799]()
- a31017799
- 2017年02月19日 15:07
- 4426
-
微信小程序自定义Toast
实现类似于Android的Toast提示 index.js: var timer; var inputinfo = ""; var app = getApp() Page({ data: { ...![Happy__EveryDay Happy__EveryDay]()
- Happy__EveryDay
- 2017年01月18日 11:03
- 1662
-
微信小程序之『自定义toast』
小程序之自定义toast![laokdidiao laokdidiao]()
- laokdidiao
- 2016年12月12日 18:51
- 1406
-
微信小程序之toast等弹框提示
微信小程序中toast消息提示框只有两种显示的效果,就是成功和加载,使用wx.showToast(OBJECT)。 看下有关参数说明: 代码很简单: wx.showToast({ ...![hedong_77 hedong_77]()
- hedong_77
- 2017年02月09日 16:19
- 10621
-
微信小程序 wx.showToast()
var pageObject = { onLoad: function () { wx.showToast({ title: '成功', //标题 icon: '...![xiaochun365 xiaochun365]()
- xiaochun365
- 2017-04-10 13:55
- 3548
-
微信小程序之scroll-view
scroll-view 可滚动视图区域。 使用竖向滚动时,需要给一个固定高度,通过 WXSS 设置 height。 实例代码如下: 垂直滑动 <scroll-view scroll-y...![hedong_77 hedong_77]()
- hedong_77
- 2017-01-23 10:52
- 3297
-
微信小程序之自定义toast实例 —— 微信小程序实战系列(6)
微信提供了一个toast的api wx.showToast() 相关连接:https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-react.html#w...![michael_ouyang michael_ouyang]()
- michael_ouyang
- 2017-03-08 10:24
- 5530
-
安卓-封装实用的Toast工具类
大家好,Toast这个提示框大家都晓得,显示一段时间后自动消失,不能获得焦点。但是在使用中有些问题: 1)需要弹出一个新的Toast时,上一个Toast还没有显示完 2)可能重复弹出相同的信息 ...![wwt831208 wwt831208]()
- wwt831208
- 2017-01-25 15:57
- 1645
-
仿微信弹出框的实现(PopupWindow)
最近公司项目需要实现类似微信的![zxl881209 zxl881209]()
- zxl881209
- 2014-05-23 01:01
- 3848
-
消息提示类控件使用之Toast(吐司)的简单使用
(一)概述 Android用于提示信息的一个控件——Toast(吐司)!Toast是一种很方便的消息提示框,会在 屏幕中显示一个消息提示框,没任何按钮,也不会获得焦点一段时间过后自动消失! 非常常用...![MakeYourChance MakeYourChance]()
- MakeYourChance
- 2016-06-28 10:23
- 1265
-
微信小程序把玩(二十四)toast组件
toast消息提示框,可用在提示一些信息,比如清楚缓存给用户一个友好的提示!或操作一些请求不想让用户有什么操作,toast也可以做到因为toast显示时其他操作是无效的主要属性:wxml 点击显示to...![u014360817 u014360817]()
- u014360817
- 2016-09-26 16:32
- 7089
-
微信小程序-消息提示框实例
做Android的时候对toast是很熟悉的.微信小程序开发中toast也是重要的消息提示方式. 提示框: wx.showToast(OBJECT) 显示消息提示框 OBJECT参数说...![zgmu zgmu]()
- zgmu
- 2016-12-02 15:25
- 12169
-
微信小程序实例:开发showToast消息提示接口
相信在学习小程序文档或者已经创建项目的开发员们,都很清楚小程序的wx.showToast接口只提供了两种icon【success和loading】展示形式,那假如我想要的是不要图标只要存粹的文字提醒呢...![eadio eadio]()
- eadio
- 2017-01-24 11:24
- 8821
在线课程
-
讲师:钟钦成
-
讲师:宋宝华






浙公网安备 33010602011771号