1 阻止事件冒泡
//catchtap替換bindtap
<view bindtap='goDetails'>
<!-- catchtap:可阻止冒泡事件,這樣就不會(huì)同時(shí)執(zhí)行兩個(gè)事件 -->
<text class="btn" catchtap='btnClick'>點(diǎn)擊操作</text>
</view>
2 wx.previewImage點(diǎn)擊顯示大圖(放大黑屏解決)
//wxml
<view class="imgBox" >
<image wx:for="{{imagesList}}" wx:key="index" src='{{imgPprefix}}{{item}}' data-index="{{index}}" bindtap="previewImg" ></image>
</view>
async previewImg(e) {
let index = e.currentTarget.dataset.index; //獲取點(diǎn)擊圖片的index
const{imgPprefix,urls:imagesList}=this.data
await wx.previewImage({
urls:imagesList.map(url=>{return `${imgPprefix}${url}`}), //需要預(yù)覽的圖片http(https)鏈接列表,注意是數(shù)組,imgPprefix是后端返回圖片要拼的前綴
current: `${imgPprefix}${urls:imagesList[index]}`, // 當(dāng)前顯示圖片的http鏈接,默認(rèn)是第一個(gè),有index就從index開始
})
//點(diǎn)擊顯示大圖時(shí)圖片沒出來,一直轉(zhuǎn)圈,但打印路徑可以正常訪問可能原因:
//1: 后端返回的數(shù)據(jù)開頭可能有空格,但是用打印出來的鏈接瀏覽器忽略了造成的
//2: 給urls 加前綴時(shí),忽略了是個(gè)數(shù)組,直接拼接的
},
3 自動(dòng)填充input或textarea值
<textarea value="{{inputText}}"></textarea>
//只需要綁定一個(gè)value屬性,inputText是js文件中data內(nèi)需要填充的數(shù)據(jù)
4 發(fā)送給后端code 報(bào)錯(cuò)code無效
可能是前端的appId和后端的appId不一致造成,粗心忘了換的!在project.config.json 文件夾內(nèi)修改appid 和后端統(tǒng)一,如果是測試號(hào)開發(fā)的話,不要通過右上角詳情里去修改,因?yàn)槲揖统霈F(xiàn)了顯示修改成功,實(shí)則沒有修改


5 觸底加載沒反應(yīng)
1 、配置問題
2、加載列表外層盒子設(shè)置了高度,導(dǎo)致高度不夠觸底
6 綁定點(diǎn)擊事件沒有觸發(fā)
原因是綁定的函數(shù)后面多加了空格

<view >
<view class="button" bindtap="onCancelBtn">取消授權(quán)</view>
</view>
點(diǎn)擊事件使用bindtap 會(huì)事件冒泡,出現(xiàn)多個(gè)點(diǎn)擊事件,不需要的話可以改成catchtap
7 引入Vant 日歷組件點(diǎn)擊關(guān)閉按鈕不能隱藏
當(dāng)引入Vant日歷組件時(shí),出現(xiàn)了不選擇日期就不能隱藏日歷的問題,點(diǎn)擊關(guān)閉按鈕和背景模態(tài)框會(huì)回縮一點(diǎn)又彈出,原因是把組件代碼包裹在其它標(biāo)簽內(nèi),把代碼單獨(dú)拿出即可,給之前包裹的標(biāo)簽綁定事件即可實(shí)現(xiàn)選取隱藏.
7 小程序內(nèi)插入html代碼片段
//wxml文件
<rich-text nodes="這里放你要的html代碼"></rich-text>
8 使用getUserProfile接口報(bào)錯(cuò)原因
//報(bào)錯(cuò):wx.getUserProfile is not a function
使用要求:
1.開發(fā)者工具版本不低于 1.05.2103022
2.基礎(chǔ)庫版本不低于 2.10.4
原因: 開發(fā)者工具上基礎(chǔ)庫版本太低,修改一下即可

9 分享小程序給好友,朋友圈
在需要分享的頁面js的onLOad 或 onShow 生命周期內(nèi)調(diào)用 wx.showShareMenu() 開啟分享按鈕
wx.showShareMenu({
withShareTicket:true,
menus:['shareAppMessage','shareTimeline']
})
10 檢查手機(jī)號(hào)、郵箱格式是否正確
function examinePhone(phone){
if(!phone){
console.log("手機(jī)不能為空")
}else if(!/^1[3456789]\d{9}$/.test(phone)){
console.log("手機(jī)格式不正確")
}
},
function examineEmail(email){
let reg = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/ //驗(yàn)證郵箱正則
if(!reg.test(email)){
console.log('郵箱格式不正確!')
}
}
11 手機(jī)端預(yù)覽項(xiàng)目時(shí),請求沒有執(zhí)行,但是打開控制面板則請求執(zhí)行且成功
原因: 可能是沒有在公眾平臺(tái)配置域名導(dǎo)致的,之所以打開控制面板就能請求是因?yàn)殚_發(fā)者工具本地設(shè)置的不校驗(yàn)合法域名的原因
12 微信審核上線不通過,客服反饋的問題,體驗(yàn)版不能復(fù)現(xiàn)?
這個(gè)問題真的需要記錄一下,最近一個(gè)uniapp開發(fā)的項(xiàng)目需要審核上線,但每次都不允通過,反饋的問題都說登錄功能不符合規(guī)范要求;因?yàn)橹笆且贿M(jìn)入頁面就要求登錄;
后來調(diào)整代碼后,按照官方規(guī)范,體驗(yàn)完整流程后再自愿登錄;測試沒問題,發(fā)布版本,等待審核;
但每次都被駁回,理由是一進(jìn)頁面就要求登錄,就很氣,和同事測試過都沒問題,一度懷疑官方看的是舊版本代碼,或者有緩存,咨詢客服又說清空了緩存,換了設(shè)備,都是需要登錄;
后來經(jīng)過很長的測試,終于發(fā)現(xiàn),直接從發(fā)現(xiàn)欄進(jìn)入的首頁就是登錄頁;而掃碼進(jìn)入的是index頁面,真正的首頁;
我們測試時(shí)都是直接掃體驗(yàn)碼進(jìn)入的,沒問題,但是兩種情況的場景值不同,加上pages.json頁面,登錄頁放在第一位,就導(dǎo)致了從發(fā)現(xiàn)欄一打開就需要登錄的情況;
解決: 將pages.json頁面,首頁放在第一位即可;
總結(jié): 問題說大不大說小不小,卻浪費(fèi)了很多的時(shí)間,也算是長了一回見識(shí)了哈哈
13 使用fixed布局,安卓正常顯示,ios樣式消失
解決: 不要用fixed布局....爛娃兒ios; 不算解決方案哈哈,僅僅記錄踩坑的原因,因?yàn)闃邮揭呀?jīng)在代碼上運(yùn)用上了,就是沒效果,很懵
14 小程序監(jiān)聽用戶右上角的關(guān)閉行為
//app.js 文件 監(jiān)聽程序的關(guān)閉事件 通過獲取當(dāng)前頁面來判斷是否是你需要監(jiān)聽的頁面
onHide(e) {
let pages = getCurrentPages();
if (pages['0'].route == '想要知道是否為此頁面的關(guān)閉路徑') {
console.log('隱藏')
}
},