微信小程序開發(fā)有哪些坑(微信小程序開發(fā)的坑)
今天給各位分享微信小程序開發(fā)有哪些坑的知識,其中也會對微信小程序開發(fā)的坑進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!
本文目錄一覽:
- 1、小程序有哪些缺點或弊端?
- 2、微信小程序開發(fā)-服務(wù)端session值取不到;小程序res.header['Set-Cookie']隱藏的坑
- 3、微信小程序開發(fā)中遇到的坑及解決辦法
小程序有哪些缺點或弊端?
小程序有哪些缺點或弊端?
相信大家對于小程序都并不陌生吧,它不僅使用方便,而且無需下載,只需上滑微信即可輕松使用,深受用戶的喜愛!企業(yè)商家們也正是看中了這一點,都開始了小程序商城的搭建:
小程序商城可以說是目前一個十分有效的營銷手段了,但它并不是百利的,它同樣也有著一些缺點弊端,那么小程序商城缺點弊端都有哪些呢?下面小編就來為大家列舉一二:
1、小程序不支持收藏。如果是安卓用戶,可以添加到手機桌面。當(dāng)然也可以將小程序表問星標(biāo),這樣小程序就能出現(xiàn)在列表頂部。
2、小程序所占的空間非常小但是同樣的,小程序它的體積只有 2 MB(相當(dāng)于一張照片的大小),弊端:不能開發(fā)過于復(fù)雜的系統(tǒng)。首次打開會消耗一定的流量,打開需要時間。緩存后再次打開速度快,節(jié)省流量。
3、有的小程序為和APP一樣很多小程序是需要用戶授權(quán)才能提供完整的服務(wù)。小程序里提取到的用戶信息也僅限于頭像、昵稱、openID,其他資料需要用戶主動填寫。
4、不能跳轉(zhuǎn)外鏈網(wǎng)址,限制了小程序的開放性。
5、小程序不能直接分享到朋友圈,可通過二維碼分享朋友圈。
6、小程序需要微信審核上架,微信對于小程序的內(nèi)容、上線、審核、發(fā)布規(guī)則擁有解釋權(quán),因相關(guān)規(guī)則的更改,小程序內(nèi)容、功能需要逐步修改。
7、小程序商城僅允許微信商戶收款,收取一定的手續(xù)費,如果你借用平臺收取費用,那么手續(xù)費也是一筆不菲的支出。
8、小程序的技術(shù)層面弱于APP或者HTML5,未能取代其位置。
當(dāng)然,小程序的缺點弊端是有很多,但我們依然無法否認(rèn)其強大的變現(xiàn)轉(zhuǎn)化能力,所以說目前搭建一個小程序商城依然是拓展線上營銷渠道的有利方式之一!
微信小程序開發(fā)-服務(wù)端session值取不到;小程序res.header['Set-Cookie']隱藏的坑
問題:本地服務(wù)器存取session沒有問題。通過小程序,比如發(fā)驗證碼,服務(wù)器端將驗證碼存為session。校驗驗證碼的時候重新取session,提示session值不存在。
根源:微信小程序不能保存Cookie,導(dǎo)致每次wx.request到服務(wù)端都會創(chuàng)建一個新的會話,從而當(dāng)前會話不再是之前存驗證碼的那個會話,自然也就取不到session值了。
解決方法:(由于本人很懶,直接參考、引用大神的文章,文末有原文鏈接,原文板塊比較好看一點。我這里重點在于記錄微信小程序的另一個坑。)
普通的Web開發(fā),都是把sessionid保存在cookie中傳遞的。
不管是java還是php,服務(wù)端的會在response的header中加上Set-Cookie
例如:
瀏覽器的請求也會在header中加上
例如:
通過這個sessionid就能使瀏覽器端和服務(wù)端保持會話,使瀏覽器端保持登錄狀態(tài)。但是,微信小程序不能保存Cookie,導(dǎo)致每次wx.request到服務(wù)端都會創(chuàng)建一個新的會話,小程序端就不能保持登錄狀態(tài)了。
一個比較簡單的辦法就是在小程序端把cookie保存到storage里,后續(xù)請求的時候再讀storage,把cookie添加到請求頭里,這樣做的好處就是,服務(wù)端不用做任何改動
具體操作如下:
1.把服務(wù)端response的Set-Cookie中的值保存到Storage中
2.wx.request再從Storage中取出Cookie,封裝到header中
我在這里還遇到了另外一個問題,當(dāng)服務(wù)器響應(yīng)多個Set-Cookie時,小程序通過wx.request 回調(diào)取res.header['Set-Cookie']所取到的Set-Cookie值是把它們用逗號拼接在一起,從而產(chǎn)生的錯誤的Cookie,這樣請求后臺的時候還是取不到相應(yīng)的session。而真正需要的是用分號拼接多個Set-Cookie值。例如:
服務(wù)器響應(yīng):
小程序通過res.header['Set-Cookie']取到的Set-Cookie值卻是:
而真正正確的值應(yīng)該是smallapp與session_name之間用分號隔開而不是逗號:
但坑終究是坑,寄人籬下,有坑也只得我們自己填。
填坑方法:在步驟2中的if判斷中,自己重新拆分Storage中取出的Cookie,整理成后端需要的規(guī)范的cookie。再賦值給header.Cookie。
這個問題暫時沒找到其他解決方案,也請知道的朋友指點一下。
原文引用: 微信小程序開發(fā)-保存服務(wù)端sessionid的方法
鏈接:【點擊了解更多加盟項目】
微信小程序開發(fā)中遇到的坑及解決辦法
taro單獨為某個項目切換taro版本環(huán)境
單獨為某一個項目升級#這樣做的好處是全局的 Taro 版本還是 1.x 的,多個項目間的依賴不沖突,其余項目依然可以用舊版本開發(fā)。 如果你的項目里沒有安裝 Taro CLI,你需要先裝一個:
# 如果你使用 NPM
$ npm install --save-dev @tarojs/cli@2.x
# 如果你使用 Yarn
$ yarn add -D @tarojs/cli@2.x
echarts在小程序中滑動卡頓
由于微信小程序中,echarts的層級最高,無論設(shè)置多大層級也無法遮住echarts。而且小程序中好像只能用echarts吧。所以為了解決這個bug,我只能委屈求全了。打開ec-canvas.wxml文件,將touchStart、touchMove和touchEnd去掉了,直接刪除就好啦。這三個事件應(yīng)該是做縮放的吧,我們也沒有這個縮放的需求。所以就去掉了。雖然暫時滿足的需求,還是沒有真正的解決問題。
原:
bindinit="init"
bindtouchstart="{{ ec.disableTouch ? '' : 'touchStart' }}"
bindtouchmove="{{ ec.disableTouch ? '' : 'touchMove' }}"
bindtouchend="{{ ec.disableTouch ? '' : 'touchEnd' }}"
現(xiàn):
bindinit="init"
echarts在小程序中無法跟隨頁面滑動
在卡頓問題中能與echarts交互少的,可以直接使用圖片代替cannvas,即在echarts渲染完畢后將它替換為一張圖片。
如果我更新了數(shù)據(jù),那么就重新放出echarts,等它渲染完畢后,再次替換為一張圖片。
chart.on('finished', () = {
getCurrentInstance().page.selectComponent(id).canvasToTempFilePath({
success: res = {
console.log('res.tempFilePath====',res.tempFilePath)
this.setState({
echartImgSrc: res.tempFilePath
? ? ? })
},
? ? fail: res =console.log('轉(zhuǎn)換圖片失敗', res)
});
})
render:
this.state.echartImgSrc =='' ?
? ref={this.refChart}
id={this.state.id}
canvas-id="mychart-area"
? force-use-old-canvas="true"
? ec={this.state.ec}
/
:
CoverImage src={this.state.echartImgSrc}/CoverImage
關(guān)于微信小程序開發(fā)有哪些坑和微信小程序開發(fā)的坑的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。