微信小程序toast
Ⅰ 微信小程序的消息框
wxml
<import src="/dist/toast/index.wxml" />
<view class="container">
<view class="doc-title">顯示</view>
<view class="zan-btns" style="margin-top: 30vh;">
<button class="zan-btn" bindtap="showToast">
點擊顯示
</button>
</view>
</view>
<template is="zan-toast" data="{{ zanToast }}"></template>
js
var Zan = require('../../dist/index');
Page(Object.assign({}, Zan.Toast, {
data: {},
showToast() {
this.showZanToast('收費標准每小時3元...');
}
}));
效果是下面這樣
你可以在網上下一個小程序的ui框架,這樣方便很多
Ⅱ 關於微信小程序執行順序問題
//app.js
....
doLogin(){
if(!wx.getStorageSync("userid")&&!wx.getStorageSync("token")){
//登錄
wx.login({
success:res=>{
//自己的後台
http.post({
url:"/xxxxxx",
params:{
code:res.code
},
success:(data)=>{
this.globalData.userInfo=data.userInfo
wx.setStorageSync("userid",data.userid);
wx.setStorageSync("token",data.token);
},
error:(data)=>{
}
})
}
})
}
},
....
//這個方法就是,用個定時器,
afterLogin(that,call){
this.loading(that);//菊花圖loading組件
if(this.globalData.userInfo){
call()
}else{
varcount=0;
vart=setInterval(()=>{
if(this.globalData.userInfo){
clearInterval(t)
call();
}else{
if(count>=300){//30s未成功則登錄失敗
clearInterval(t)
this.loading(that);//菊花圖loading組件
//提示框方法
this.msg.showToast(that,"獲取登錄信息失敗")
}
count++;
}
},100)
}
},
....
//index.js
varapp=getApp()
...
onLoad:function(options){
app.afterLogin(this,()=>{
//這里放,你要在登錄後做的事
})
},
...
這樣能解決不?也是看別人的代碼,就是用計時器setInterval每隔100毫秒執行一次,看看登錄信息拿到沒有,拿到了,在進行後續操作。
Ⅲ 前端如何在微信小程序中將用戶頭像存為臨時文件路徑
你可以用wx.request把頭像的url發送到後台伺服器,由後台伺服器去獲取這個圖片。
比如說你回的後答台程序是php的,可以這樣(假定文件名為save_tx.php):
<?php
$fn=base_convert(time().mt_rand(0,9),10,36)."jpg";
file_put_contents($fn,file_get_contents($_GET['url']));
echo "頭像上傳為".$fn;
?>
這樣在微信小程序中就可以這樣(假定用戶頭像的url已保存到變數txUrl中):
wx.request({
url: '伺服器域名路徑/save_tx.php?url=' + encodeURIComponent(txUrl),
success: res => {
wx.showToast({
title: res,
icon: "none"
})
}
})
Ⅳ 微信小程序是在電腦微信開發嗎的最新相關信息
微信小程序是一種全新的應用形態,微信小程序平台不需要下載安裝即可使用應用的平台,微信小程序實現了應用「觸手可及」的夢想,用戶掃一掃或者搜一下即可打開應用。也體現了「用完即走」的理念,用戶不用關心是否安裝太多應用的問題。應用將無處不在,隨時可用,但又無需安裝卸載。下面一起看一下安下小編給大家帶來的微信小程序設計指南。 【微信小程序設計指南】 概要 基於微信小程序輕快的特點,我們擬定了小程序界面設計指南和建議。 設計指南建立在充分尊重用戶知情權與操作權的基礎之上。旨在微信生態體系內,建立友好、高效、一致的用戶體驗,同時最大程度適應和支持不同需求,實現用戶與小程序服務方的共贏。 友好禮貌 為了避免用戶在微信中使用小程序服務時,注意力被周圍復雜環境干擾,小程序在設計時應該注意減少無關的設計元素對用戶目標的干擾,禮貌地向用戶展示程序提供的服務,友好地引導用戶進行操作。 重點突出 每個頁面都應有明確的重點,以便於用戶每進入一個新頁面的時候都能快速地理解頁面內容,在確定了重點的前提下,應盡量避免頁面上出現其他干擾項影響用戶的決策和操作。 反例示意 此頁面的主題是查詢,卻添加了諸多與查詢不相關的業務入口,與用戶的預期不符,易造成用戶的迷失。 糾正示意 去掉任何與用戶目標不相關的內容,明確頁面主題,在技術和頁面控制項允許的前提下提供有助於用戶目標的幫助內容,比如最近搜索詞,常用搜索詞等。 反例示意 操作沒有主次,讓用戶無從選擇 糾正示意 首先要避免並列過多操作讓用戶選擇,在不得不並列多個操作時,需區分操作主次,減輕用戶的選擇難度。 流程明確 為了讓用戶順暢地使用頁面,在用戶進行某一個操作流程時,應避免出現用戶目標流程之外的內容而打斷用戶。 反例示意 用戶本打算進行搜索,在進入頁面時卻被突如其來的抽獎彈窗所打斷;對於抽獎沒有興趣的用戶是非常不友好的干擾; 而即便有部分用戶確實被「誘人」的抽獎活動所吸引,離開主流程去抽獎之後可能就遺忘了原本的目標,進而失去了對產品真正價值的利用和認識。 清晰明確 一旦用戶進入我們的小程序頁面,我們就有責任和義務清晰明確地告知用戶身在何處、又可以往何處去,確保用戶在頁面中游刃有餘地穿梭而不迷路,這樣才能為用戶提供安全的愉悅的使用體驗。 導航明確,來去自如 導航是確保用戶在網頁中瀏覽跳轉時不迷路的最關鍵因素。導航需要告訴用戶,我在哪,我可以去哪,如何回去等問題。首先在微信系統內的所有小程序的全部頁面,均會自帶微信提供的導航欄,統一解決我在哪,如何回去的問題。在微信層級導航保持體驗一致,有助於用戶在微信內形成統一的體驗和交互認知,無需在各小程序和微信切換中新增學習成本或改變使用習慣。 微信導航欄 微信導航欄,直接繼承於客戶端,除導航欄顏色之外,開發者無需亦不可對其中的內容進行自定義。但開發者需要規定小程序各個頁面的跳轉關系,讓導航系統能夠以合理的方式工作。 微信導航欄分為導航區域、標題區域以及操作區域。其中導航區控製程序頁面進程。目前導航欄分深淺兩種基本配色。 導航區(iOS) 導航區通常只有一個操作,即返回上一級界面。 導航區(Android) 同iOS一樣,導航區也只有一個返回上一級頁面的操作,而點擊安卓手機自帶的硬體返回鍵也起到相同作用。 微信導航欄自定義顏色規則(iOS和Android) 小程序導航欄支持基本的背景顏色自定義功能,選擇的顏色需要在滿足可用性前提下,和諧搭配微信提供的兩套主導航欄圖標。建議參考以下選色效果: 選色方案示例 頁面內導航 開發者可根據自身功能設計需要在頁面內添加自有導航。並保持不同頁面間導航一致。但是受限於手機屏幕尺寸的限制,小程序頁面的導航應盡量簡單,若僅為一般線性瀏覽的頁面建議僅使用微信導航欄即可。 開發者可選擇小程序頁面添加標簽分頁(Tab)導航。標簽分頁欄可固定在頁面頂部或者底部,便於用戶在不同的分頁間做切換。標簽數量不得少於2個,最多不得超過5個,為確保點擊區域,建議標簽數量不超過4項。一個頁面也不應出現一組以上的標簽分頁欄。 其中小程序首頁可選擇微信提供的原生底部標簽分頁樣式,該樣式僅供小程序首頁使用。開發時可自定義圖標樣式、標簽文案以及文案顏色等,具體設置項可參考開發文檔。 頂部標簽分頁欄顏色可自定義。在自定義顏色選擇中,務必注意保持分頁欄標簽的可用性、可視性和可操作性。 減少等待,反饋及時 頁面的過長時間的等待會引起用戶的不良情緒,使用微信小程序項目提供的技術已能很大程度縮短等待時間。即便如此,當不可避免的出現了載入和等待的時候,需要予以及時的反饋以舒緩用戶等待的不良情緒。 啟動頁載入 小程序啟動頁是小程序在微信內容一定程度上展現品牌特徵的頁面之一。本頁面將突出展示小程序品牌特徵和載入狀態。啟動頁除品牌標志(Logo)展示外,頁面上的其他所有元素如載入進度指示,均由微信統一提供且不能更改,無需開發者開發。 頁面下拉刷新載入 在微信小程序內,微信提供標準的頁面下拉刷新載入能力和樣式。 開發者可自定義需要通過下拉交互完成刷新的頁面,此類交互微信將提供標准能力和樣式。在樣式上,刷新圖標與下拉標示配色已捆綁,分為深淺兩套方案,開發者在使用時,應注意頭部文字、下拉標識與刷新圖標的和諧統一。當用戶在該類頁面做出下拉交互時,出現微信小程序頁面標准載入動畫。開發者無需自行開發樣式 深淺兩套下拉樣式 微信下拉提示用於給用戶明確的小程序歸屬者,防止造假與作弊。此處標示提供深淺兩套方案,文字顏色不可自定義,開發者在自定義背景色時,應注意保證下拉標示的辨識度。iOS和Android配色方案相同如下展示。 微信下拉標示錯誤使用案例 請避免以下錯誤使用情況,確保信息的可見性和頁面的可用性 頁面內載入反饋 開發者可在小程序里自定義頁面內容的載入樣式。建議不管是使用在局部還是全體,自定義載入樣式都應該盡可能簡潔,並使用簡單動畫告知用戶載入過程。 開發者也可以使用微信提供的,統一的頁面載入樣式,如圖中例所示。 模態載入 模態的載入樣式將覆蓋整個頁面的,由於無法明確告知具體載入的位置或內容將可能引起用戶的焦慮感,因此應謹慎使用。除了在某些全局性操作下不要使用模態的載入。 局部載入反饋 即只在觸發載入的頁面局部進行反饋,這樣的反饋機制更加有針對性,頁面改動小,是微信推薦的反饋方式。例如: 載入反饋注意事項 若載入時間較長,應提供取消操作,並使用進度條顯示載入的進度。 載入過程中,應保持動畫效果 ; 無動畫效果的載入很容易讓人產生該界面已經卡死的錯覺。 不要在同一個頁面同時使用超過1個載入動畫。 結果反饋 除了在用戶等待的過程中需予以及時反饋外,對操作的結果也需要予以明確反饋。根據實際情況,可選擇不同的結果反饋樣式。對於頁面局部的操作,可在操作區域予以直接反饋,對於頁面級操作結果,可使用彈出式提示(Toast)、模態對話框或結果頁面展示。 頁面局部操作結果反饋 對於頁面局部的操作,可在操作區域予以直接反饋,例如點擊多選控制項前後如下圖。對於常用控制項,微信設計中心將提供控制項庫,其中的控制項將提供完整操作反饋。 頁面全局操作結果——彈出式提示(Toast) 彈出式提示(Toast)適用於輕量級的成功提示,1.5秒後自動消失,並不打斷流程,對用戶影響較小,適用於不需要強調成功狀態的操作提醒。特別注意該形式不適用於錯誤提醒。 頁面全局操作結果——模態對話框 對於需要用戶明確知曉的操作結果狀態可通過模態對話框來提示,並可附帶下一步操作指引。 頁面全局操作結果—結果頁 對於操作結果已經是當前流程的終結的情況,可使用操作結果頁來反饋。這種方式最為強烈和明確的告知用戶操作已經完成,並可根據實際情況給出下一步操作的指引。 異常可控,有路可退 在設計任何的任務和流程時,異常狀態和流程往往容易被忽略,而這些異常場景往往是用戶最為沮喪和需要幫助的時候,因此需要格外注意異常狀態的設計,在出現異常時予以用戶必要的狀態提示,並告知解決方案,使其有路可退。 要杜絕異常狀態下,用戶莫名其妙又無處可去,卡在某一個頁面的情況。2.2中所提到的彈窗和結果頁面都可作為異常狀態的提醒方式。除此之外,在表單頁面中尤其是表單項較多的頁面中,還應明確指出出錯項目,以便用戶修改。 異常狀態——表單出錯 表單報錯,在表單頂部告知錯誤原因,並標識出錯誤欄位提示用戶修改 便捷優雅 從PC時代的物理鍵盤滑鼠到移動端時代手指,雖然輸入設備極大精簡,但是手指操作的准確性卻大大不如鍵盤滑鼠精確。為了適應這個變化,需要開發者在設計過程中充分利用手機特性,讓用戶便捷優雅的操控界面。 減少輸入 由於手機鍵盤區域小且密集,輸入困難的同時還易引起輸入錯誤,因此在設計小程序頁面時因盡量減少用戶輸入,利用現有介面或其他一些易於操作的選擇控制項來改善用戶輸入的體驗。 減少輸入,巧用介面 例如下圖中,在添加銀行卡時,採用攝像頭識別介面來幫助用戶輸入。除此之外微信團隊還對外開放例如地理位置介面等多種微信小程序介面 ,充分利用這些介面將大大提高用戶輸入的效率和准確性,進而優化體驗。 除了利用介面外,在不得不讓用戶進行手動輸入時,應盡量讓用戶做選擇而不是鍵盤輸入。一方面,回憶易於記憶,讓用戶在有限的選項中做選擇通常來說是容易於完全靠記憶輸入;另一方面,仍然是考慮到手機鍵盤密集的單鍵輸入極易造成輸入錯誤。 例如圖中,在用戶搜索時提供搜索歷史快捷選項將幫助用戶快速進行搜索,而減少或避免不必要是鍵盤輸入。 避免誤操作 因為在手機上我們通過手指觸摸屏幕來操控界面,手指的點擊精確度遠不如滑鼠,因此在設計頁面上需點擊的控制項時,需要充分考慮到其熱區面積,避免由於可點擊區域過小或過於密集而造成誤操作。當簡單的將原本在電腦屏幕上使用的界面不做任何適配直接移植到手機上時,往往就容易出現這樣的問題。由於手機屏幕解析度各不相同,因此最適宜點擊像素尺寸也不完全一致,但換算成物理尺寸後大致是在7mm-9mm之間。在微信提供的標准組件庫中,各種控制項元素均已考慮到了頁面點擊效果以及不同屏幕的適配,因此再次推薦使用或模仿標准控制項尺寸進行設計。 利用介面提升性能 微信設計中心已推出了一套網頁標准控制項庫,包括sketch設計控制項庫和Photoshop設計控制項庫,後續還將完善小程序組件,這些控制項都已充分考慮了移動端頁面的特點,能夠保證其在移動端頁面上的可用性和操作性能;同時微信開發團隊也在不斷完善和擴充微信小程序介面,並提供微信公共庫,利用這些資源不但能夠為用戶提供更加快捷的服務,而且對頁面性能的提高有極大作用,無形之中提升了用戶體驗。 統一穩定 除了以上所提到的種種原則,建議接入微信的小程序還應該時刻注意不同頁面間的統一性和延續性,在不同的頁面盡量使用一致的控制項和交互方式。 統一的頁面體驗和有延續性的界面元素都將幫助用最少的學習成本達成使用目標,減輕頁面跳動所造成的不適感。正因如此,小程序可根據需要使用微信提供的標准控制項,以達到統一穩定的目的。 視覺規范 為方便設計師進行設計,微信提供一套可供Web設計和小程序使用的基礎控制項庫;同時提供方便開發者調用的資源。 字體規范 微信內字體的使用與所運行的系統字體保持一致,常用字型大小為20, 18, 17, 16,14 13, 11(pt),使用場景具體如下: 字體顏色 主內容 Black 黑色,次要內容 Grey 灰色;時間戳與表單預設值 Light 灰色;大段的說明內容而且屬於主要內容用 Semi 黑; 藍色為鏈接用色,綠色為完成字樣色,紅色為出錯用色 Press與 Disable狀態分別降低透明度為20%與10%; 列表視覺規范 表單輸入視覺規范 按鈕使用原則 列表外按鈕上文字標准 按鈕高度為44px下使用: 顏色 #000000 / #353535 字型大小 18pt 可點狀態下文字調整透明度為60% 不可點狀態下文字調整透明度為30% 列表外按鈕上文字標准 按鈕高度為25px下使用: 顏色 #000000 / #353535 字型大小 14pt 頁面線性按鈕上文字標准 按鈕高度為35px下使用: 顏色 #09BB07 / #353535 字型大小 16pt 圖標使用原則
Ⅳ 微信小程序這個報錯是因為什麼啊
親我的也出現這個問題你的解決了沒有。
今天花了半天時間終於解決了。要到資料庫中去刪一個欄位到資料庫中刪掉表
lr_shopping_char中的buff系列化欄位就正常了。如果有什麼呼我
Ⅵ 小程序view嵌套點擊事件問題
在組件中綁定一個事件處理函數。
如bindtap,當用戶點擊該組件的時候會在該頁面對應的Page中找到相應的事件處理函數
<view bindtap="view"> <text bindtap="toast" class="journey">開啟小程序之旅 </text> </view>
子元素觸發父級元素也會觸發若要只觸發子元素使用catchtap代替bindtap
在相應的Page定義中寫上相應的事件處理函數,參數是event。
Page({ toast: function (event) { // wx.navigateTo({ // url: '../redirect/redirect' // }); wx.redirectTo({ url: '../redirect/redirect', }); // view:function(event){ // // 父級元素 // } }, /** * 生命周期函數--監聽頁面隱藏/並未關閉返回 */ onHide: function (event) { console.log(event) }, /** * 生命周期函數--監聽頁面卸載/ */ onUnload: function () { console.log(222) }, })
事件分類
冒泡事件:當一個組件上的事件被觸發後,該事件會向父節點傳遞。
非冒泡事件:當一個組件上的事件被觸發後,該事件不會向父節點傳遞。
WXML的冒泡事件列表:
類型 觸發條件 touchstart 手指觸摸動作開始 touchmove 手指觸摸後移動 touchcancel 手指觸摸動作被打斷,如來電提醒,彈窗 touchend 手指觸摸動作結束 tap 手指觸摸後馬上離開 longtap 手指觸摸後,超過350ms再離開
註:除上表之外的其他組件自定義事件如無特殊申明都是非冒泡事件,如<form/>的submit事件,<input/>的input事件,<scroll-view/>的scroll事件,(詳見各個組件官方文檔)
Ⅶ 微信小程序如何實現消息提示框
微信小程序開發中toast也是重要的消息提示方式.
提示框:
wx.showToast(OBJECT)
顯示消息提示框
OBJECT參數說明:
示例代碼:
?
12345
wx.showToast({ title:'成功', icon:'success', ration: 2000})
wx.hideToast()
隱藏消息提示框
?
123456789
wx.showToast({ title:'載入中', icon:'loading', ration: 10000}) setTimeout(function(){ wx.hideToast()},2000)
wx.showModal(OBJECT)
顯示模態彈窗
OBJECT參數說明:
示例代碼:
?
123456789
wx.showModal({ title:'提示', content:'這是一個模態彈窗', success:function(res) { if(res.confirm) { console.log('用戶點擊確定') } }})
wx.showActionSheet(OBJECT)
顯示操作菜單
OBJECT參數說明:
success返回參數說明:
示例代碼:
?
12345678
wx.showActionSheet({ itemList: ['A','B', 'C'], success:function(res) { if(!res.cancel) { console.log(res.tapIndex) } }})
設置導航條
<view>提示:{{tip}}</view>
<button type="default" bindtap="showModal">點擊我彈出modal對話框</button>
<view>
<modal title="modal對話框" hidden="{{modalHidden}}" confirm-text="確定" cancel-text="取消"
bindconfirm="modalBindaconfirm" bindcancel="modalBindcancel">您好,我是modal對話框</modal>
</view>
Page({
data:{
// text:"這是一個頁面"
tip:'',
buttonDisabled:false,
modalHidden:true,
show:false
},
showModal:function(){
this.setData({
modalHidden:!this.data.modalHidden
})
},
modalBindaconfirm:function(){
this.setData({
modalHidden:!this.data.modalHidden,
show:!this.data.show,
tip:'您點擊了【確認】按鈕!',
buttonDisabled:!this.data.buttonDisabled
})
},
modalBindcancel:function(){
this.setData({
modalHidden:!this.data.modalHidden,
tip:'您點擊了【取消】按鈕!'
})
}
})
wx.setNavigationBarTitle(OBJECT)
動態設置當前頁面的標題。
OBJECT參數說明:
示例代碼:
?
123
wx.setNavigationBarTitle({ title:'當前頁面'})
wx.showNavigationBarLoading()
在當前頁面顯示導航條載入動畫。
wx.hideNavigationBarLoading()
隱藏導航條載入動畫。
頁面跳轉:
wx.navigateTo(OBJECT)
保留當前頁面,跳轉到應用內的某個頁面,使用wx.navigateBack可以返回到原頁面。
OBJECT參數說明:
示例代碼:
?
123
wx.navigateTo({ url:'test?id=1'})
?
123456
//test.jsPage({ onLoad:function(option){ console.log(option.query) }})
注意:為了不讓用戶在使用小程序時造成困擾,我們規定頁面路徑只能是五層,請盡量避免多層級的交互方式。
wx.redirectTo(OBJECT)
關閉當前頁面,跳轉到應用內的某個頁面。
OBJECT參數說明:
示例代碼:
?
123
wx.redirectTo({ url:'test?id=1'})
wx.navigateBack(OBJECT)
關閉當前頁面,返回上一頁面或多級頁面。可通過 getCurrentPages()) 獲取當前的頁面棧,決定需要返回幾層。
OBJECT參數說明:
動畫:
wx.createAnimation(OBJECT)
創建一個動畫實例animation。調用實例的方法來描述動畫。最後通過動畫實例的export方法導出動畫數據傳遞給組件的animation屬性。
注意: export 方法每次調用後會清掉之前的動畫操作
OBJECT參數說明:
?
123456
var animation = wx.createAnimation({ transformOrigin:"50% 50%", ration: 1000, timingFunction:"ease", delay: 0})
animation
動畫實例可以調用以下方法來描述動畫,調用結束後會返回自身,支持鏈式調用的寫法。
樣式:
旋轉:
縮放:
偏移:
傾斜:
矩陣變形:
動畫隊列
調用動畫操作方法後要調用 step() 來表示一組動畫完成,可以在一組動畫中調用任意多個動畫方法,一組動畫中的所有動畫會同時開始,一組動畫完成後才會進行下一組動畫。step 可以傳入一個跟 wx.createAnimation() 一樣的配置參數用於指定當前組動畫的配置。
示例:
?
1
<viewanimation="{{animationData}}"style="background:red;height:100rpx;width:100rpx"></view>
?
0414243444546474849
Page({ data: { animationData: {} }, onShow:function(){ varanimation = wx.createAnimation({ ration: 1000, timingFunction:'ease', }) this.animation = animation animation.scale(2,2).rotate(45).step() this.setData({ animationData:animation.export() }) setTimeout(function() { animation.translate(30).step() this.setData({ animationData:animation.export() }) }.bind(this), 1000) }, rotateAndScale:function () { // 旋轉同時放大 this.animation.rotate(45).scale(2, 2).step() this.setData({ animationData:this.animation.export() }) }, rotateThenScale:function () { // 先旋轉後放大 this.animation.rotate(45).step() this.animation.scale(2, 2).step() this.setData({ animationData:this.animation.export() }) }, rotateAndScaleThenTranslate:function () { // 先旋轉同時放大,然後平移 this.animation.rotate(45).scale(2, 2).step() this.animation.translate(100, 100).step({ ration: 1000 }) this.setData({ animationData:this.animation.export() }) }})
wx.hideKeyboard()
收起鍵盤。