1. 程式人生 > >WeToast:微信小程式toast增強外掛

WeToast:微信小程式toast增強外掛

WeToast for 微信小程式 toast增強外掛

Github:https://github.com/kiinlam/wetoast

概述

WeToast 是仿照微信小程式提供的 showToast 功能,提供視覺一致的增強外掛,彌補小程式showToast功能上的不足(如只能顯示successloading兩種icon,且icon不可去除,持續時間最大10秒等)。

預覽

下載WeToast專案(https://github.com/kiinlam/wetoast/archive/master.zip),用微信web開發者工具(https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html)開啟專案根目錄

demo capture

如何使用

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(),不傳入配置項表示隱藏提示。

回撥函式引數補充說明:

successfailcomplete執行時均會回傳配置引數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目前僅支援顯示successloading兩種圖示,不夠用,且在某些場景下,最大值10秒也不夠用。

在官方未提供更豐富配置的情況下,有必要在官方UI規範的框架下提供一套功能更實用的備選方案。

同時我也希望各開發者能夠達成共識,在實現自身需求時,儘量以官方UI規範為指導,避免出現各種花樣的彈層效果。

問:是否會出現“串頁”問題?

答:此處“串頁”是指上一頁的程式碼在當前頁執行。在navigate跳轉的情況下,由於頁面不是被關閉,因此程式碼還在執行,一些涉及全域性的操作會被帶入當前頁。

在開發本外掛的時候,充分考慮了這一點,採用例項化toast物件並附加到當前的Page物件上,在切換Page後仍然指向上一頁的Page物件,不會出現“串頁”問題。

TODO
  • 增加預定義ICON
  • 增加可自定義動畫功能
License

The MIT License

請自由地享受和參與開源

貢獻

如果你有好的意見或建議,歡迎給我提issue或pull request。

相關推薦

WeToast程式toast增強外掛

WeToast for 微信小程式 toast增強外掛 Github:https://github.com/kiinlam/wetoast 概述 WeToast 是仿照微信小程式提供的 showToast 功能,提供視覺一致的增強外掛,彌補小程式showToas

程式wx.request和wx.uploadFile中傳引數的區別

微信小程式中通過元件<form>提交表單的時候,在js中通過e.detail.value得到所提交表單的json格式資料。一般提交表單我們都是通過wx.request請求,提交表單資料,通過引數data傳資料, wx.request({ url: 'test.php', //僅為示例,

銷售寶程式的價值是什麼?

早上被微信應用號(官方稱為微信小程式)的訊息給刷屏了,似乎一個顛覆性的時刻又要來臨。做為這個世界一部分,有著豐富的被改變經驗,對這一切已經產生免疫了。在所有人都對微信應用號看多的時候,持著一些看空的觀點,不吐不快。 在微信應用號之前,其實之前騰訊做過一款應用平臺性質的東西,叫Qplus,

銷售寶程式為什麼沒有火?

因為能把小程式做大的線上網際網路企業,微信不想讓它做大。 不支援模糊搜尋、不支援掃手機內部二維碼、也不支援分享到網頁、朋友圈,也不支援儲存小程式二維碼到相簿以便後用。而微信想讓小程式打通線下,可是線下實體店卻沒能力做好這個網際網路功能。所以就尷尬了。 很明顯,小程式是為了打通線上線下

新坑程式

為啥最近的工作那麼像前端呢,算了,別管什麼工作都還是要做的。之前從未想過會開發微信小程式這玩意,結果就遇到了不少問題。 0x1 初識小程式 得到這個要求之後我第一時間看了下微信的api,恩,都是類似於ajax一類的,看起來不算很難,不過,和其他的東西有點不太一樣的是,原生的小程式有三

卜若的程式碼筆記系列-程式系列-第二章程式獲得srpingboot返回的json資料-4002

1.微信端向伺服器傳送上傳請求 wx.chooseImage({ success: function (res) { var tempFilePaths = res.tempFilePaths console.log(tempFi

木魚程式開發模板化,一鍵生成程式

為了節省企業商家的開發小程式時間和成本,「木魚小鋪」為企業商家提供了高階新零售小程式定製開發模板化,幫助各行業的企業商家迅速開發自己的小程式!  一、教育培訓小程式模板 二、智慧家居商城小程式模板 三、品牌服裝電商小程式模板 四、食品小程式模板

求解程式的setData陣列動態賦值

資料編寫在utils目錄下的util裡面: function getGoods(){ var goods = new Array(); var good = new Object(); good.id = '1000';//商品唯一識別符號 good.pic =

程式(一)程式與伺服器的簡單鏈接

生活無趣且不易,一起找點樂子吧。歡迎評論,和文章無關的東西也沒關係。 最近在寫小程式,有些問題,搜尋不到太有價值的東西(可能是我對關鍵字的理解不好),這裡總結下我遇到各種問題,可能看來會比較可笑,但對新手來說也許會有些幫助,我會盡量去注重具體的實現。  這篇文章來

程式程式外掛使用

小編推薦:Fundebug專注於JavaScript、微信小程式、微信小遊戲,Node.js和Java實時BUG監控。真的是一個很好用的bug監控費服務,眾多大佬公司都在使用。 前不久的一個微信小程式專案中,需要使用到視訊播放的功能。 首先想到的是使用小程式的video元件,但

初級篇一程式介紹、商業變現

從這篇文章你可以學到: 1、微信小程式是什麼 2、目前微信小程式是怎麼變現的 3、個人開發者可以做出大流量的小程式嗎?   一、微信小程式是什麼 微信小程式類似於手機上安裝的App,只是區別在於App是安裝在手機作業系統中的,而微信小程式是不

程式聯盟程式之獲取並解密使用者資料(獲取openId、unionId)

前言在實際的小程式開發中,往往需要使用者授權登陸並獲取使用者的資料,快速對接使用者系統。openId : 使用者在當前小程式的唯一標識 unionId : 如果開發者擁有多個移動應用、網站應用、和公眾帳號(包括小程式),可通過unionid來區分使用者的唯一性,因為只要是同一

初級篇二程式申請、工具、常用網址

從這篇文章你可以學到: 1、個人或公司申請小程式 2、小程式管理工具、資料助手等工具 3、小程式開發者常用的網址   一、個人或公司如何申請小程式 小程式和公眾號是同一個入口: https://mp.weixin.qq.com/ 點選左上

純乾貨程式開發 初級篇

2019年1月份第一個系列 就講一下微信小程式開發的入門知識, 然後再穿插寫一些其他技術或思考的文章;   關於微信小程式的一些產品或商業的應用,我會在其他的文章中再做介紹。本文就從技術教程的角度給大家說一下初級篇系列的規劃,後面會持續將文章更新上來。

與張龍同行程式開發

與張小龍同行:微信小程式開發 概要 基於微信小程式輕快的特點,我們擬定了小程式介面設計指南和建議。 設計指南建立在充分尊重使用者知情權與操作權的基礎之上。旨在微信生態體系內,建立友好、高效、一致的使用者體驗,同時最大程度適應和支援不同需求,實現使用者與小程式服務方的共贏。 友好禮貌

程式】佈局外掛wxgrid

微信小程式釋出,web端的外掛基本都用不了。接下來應該會有不少微信小程式外掛出現吧…… 微信小程式其實是C/S思想,純web前端開發人員應該不大喜歡它的寫法。 前端開發最重要的就是佈局的編寫,C/S佈局最方便的應該就是“表格”佈局,參考.NET的WPF裡面

絕對乾貨程式有哪些模式能夠讓你快速盈利?

今年是小程式的爆發元年,火爆程度可想而知。從1月份公開課資料爆出後,引發國內震驚,發展至今小程式也越來越成熟,現在日活已經3億使用者,上線超過200萬小程式,這些絕不是運氣索然。那麼小程式盈利模式有哪些呢? 一、小程式創業 對現有產品的功能進行延伸,開發一個與現有ap

程式程式中遮罩層的滾動穿透問題

1.如果彈出層沒有滾動事件,就直接在蒙板上加catchtouchmove=”move” move:function(){}; wxml <view class='mask' catchtouchmove="move"></view>

程式(一)程式申請註冊與開發流程

本文主要用於介紹微信小程式開發過程中的注意點,查閱過程請結合微信的開發者文件一同觀看。 本文基於微信小程式公測版,IDE:微信開發者工具 0.10.102800 本文件用於幫助公司內部初學者,如有感覺拖沓請見諒 AppID申請 A

直擊根源程式中web-view再次重新整理後頁面需要退兩次

背景 在上一章(直擊根源:vue專案微信小程式頁面跳轉web-view不重新整理)解決了vue在小程式回退不重新整理的問題之後,會引出了一個重新整理的頁面需要點選返回兩次才能返回上一個頁面 問題描述 在A頁面從B頁面帶了引數返回之後,A頁面會重新整理,直接導致了,A頁面返回上一個頁面需要點選兩次,其中點