微信小程序開發有哪些坑(小程序開發的坑有哪些)
今天給各位分享微信小程序開發有哪些坑的知識,其中也會對小程序開發的坑有哪些進行解釋,如果能碰巧解決你現在面臨的問題,別忘了關注本站,現在開始吧!
本文目錄一覽:
- 1、微信小程序/微信公眾號中文亂碼的坑
- 2、小程序有哪些缺點或弊端?
- 3、微信小程序開發中遇到的坑及解決辦法
- 4、開發微信小程序的“雷區”有哪些?
- 5、微信小程序開發-服務端session值取不到;小程序res.header['Set-Cookie']隱藏的坑
微信小程序/微信公眾號中文亂碼的坑
微信小程序可以通過webview嵌入H5頁面可以說是給開發者很大的福音,手頭的項目中有幾個頁面是使用H5開發的嵌入到了webview中,在小程序開發者工具的模擬器中測試完全沒問題,放到Android真機上測也沒問題,但是在iOS上打開后中文顯示全部亂碼,無論是在小程序還是直接通過微信點開鏈接都是亂碼。但是奇怪的是在iOS的Safari瀏覽器中卻是正常。
經過再三確定過文件編碼就是UTF8沒錯。而且在html的head中也加入了 meta charset="utf-8" 。最后無奈一點一點對比之前的項目的區別,發現之前的項目中的meta是通過http-equiv設置的瀏覽器編碼。
設置后發現顯示正常,看來微信-iOS版本中的瀏覽器內核不是最新的,存在兼容問題,遇到坑的朋友們要注意了。
小程序有哪些缺點或弊端?
小程序有哪些缺點或弊端?
相信大家對于小程序都并不陌生吧,它不僅使用方便,而且無需下載,只需上滑微信即可輕松使用,深受用戶的喜愛!企業商家們也正是看中了這一點,都開始了小程序商城的搭建:
小程序商城可以說是目前一個十分有效的營銷手段了,但它并不是百利的,它同樣也有著一些缺點弊端,那么小程序商城缺點弊端都有哪些呢?下面小編就來為大家列舉一二:
1、小程序不支持收藏。如果是安卓用戶,可以添加到手機桌面。當然也可以將小程序表問星標,這樣小程序就能出現在列表頂部。
2、小程序所占的空間非常小但是同樣的,小程序它的體積只有 2 MB(相當于一張照片的大小),弊端:不能開發過于復雜的系統。首次打開會消耗一定的流量,打開需要時間。緩存后再次打開速度快,節省流量。
3、有的小程序為和APP一樣很多小程序是需要用戶授權才能提供完整的服務。小程序里提取到的用戶信息也僅限于頭像、昵稱、openID,其他資料需要用戶主動填寫。
4、不能跳轉外鏈網址,限制了小程序的開放性。
5、小程序不能直接分享到朋友圈,可通過二維碼分享朋友圈。
6、小程序需要微信審核上架,微信對于小程序的內容、上線、審核、發布規則擁有解釋權,因相關規則的更改,小程序內容、功能需要逐步修改。
7、小程序商城僅允許微信商戶收款,收取一定的手續費,如果你借用平臺收取費用,那么手續費也是一筆不菲的支出。
8、小程序的技術層面弱于APP或者HTML5,未能取代其位置。
當然,小程序的缺點弊端是有很多,但我們依然無法否認其強大的變現轉化能力,所以說目前搭建一個小程序商城依然是拓展線上營銷渠道的有利方式之一!
微信小程序開發中遇到的坑及解決辦法
taro單獨為某個項目切換taro版本環境
單獨為某一個項目升級#這樣做的好處是全局的 Taro 版本還是 1.x 的,多個項目間的依賴不沖突,其余項目依然可以用舊版本開發。 如果你的項目里沒有安裝 Taro CLI,你需要先裝一個:
# 如果你使用 NPM
$ npm install --save-dev @tarojs/cli@2.x
# 如果你使用 Yarn
$ yarn add -D @tarojs/cli@2.x
echarts在小程序中滑動卡頓
由于微信小程序中,echarts的層級最高,無論設置多大層級也無法遮住echarts。而且小程序中好像只能用echarts吧。所以為了解決這個bug,我只能委屈求全了。打開ec-canvas.wxml文件,將touchStart、touchMove和touchEnd去掉了,直接刪除就好啦。這三個事件應該是做縮放的吧,我們也沒有這個縮放的需求。所以就去掉了。雖然暫時滿足的需求,還是沒有真正的解決問題。
原:
bindinit="init"
bindtouchstart="{{ ec.disableTouch ? '' : 'touchStart' }}"
bindtouchmove="{{ ec.disableTouch ? '' : 'touchMove' }}"
bindtouchend="{{ ec.disableTouch ? '' : 'touchEnd' }}"
現:
bindinit="init"
echarts在小程序中無法跟隨頁面滑動
在卡頓問題中能與echarts交互少的,可以直接使用圖片代替cannvas,即在echarts渲染完畢后將它替換為一張圖片。
如果我更新了數據,那么就重新放出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('轉換圖片失敗', 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
開發微信小程序的“雷區”有哪些?
微信小程序的優勢:無需下載,無需安裝注冊,即點即用,不主動推送廣告。微信小程序的優勢直抵app用戶的心扉,這不就是用戶想要的體驗嗎?因此微信小程序的用戶體驗是其必須要保證的底線,一切傷害用戶體驗的行為,是開發者都不能碰觸的原則。
游戲類小程序“濫用分享”行為
在4月份,群聊被小程序分享搞的亂糟糟,群里有三個人分享小游戲就已經霸屏,看不到聊天信息了,用戶體驗一度被踐踏。很快,微信官方將一下兩種行為界定為違規,第一種,強制用戶分享小游戲到群包括分享到不同群,就是小游戲結束時彈出分享小游戲到群/不同群,可獲得第二次生命繼續游戲。第二種,誘導用戶分享到群,可獲得免費道具,或得到雙倍積分等利益。
如過開發是出現如此違規行為,會對小游戲的搜索能力、分享能力、廣告及道具結算能力進行限制,情節嚴重這將面臨下架處理。
因為“營銷濫用”行為,關閉個人小程序“公關/推廣/市場調查”和“廣告/設計”類目。
微信小程序的注冊門檻較低,無論是個人還是企業、商鋪、政府、媒體,都可以申請。由于小程序是獲取新流量的高效手段,導致營銷行為泛濫,狠狠的傷害了用戶體驗。只對個人小程序濫用“商務服務”和“廣告/設計”兩大類目通過審核,來進行無節制營銷行為的情況,微信方面表示,個人小程序將無法通過“商務服務-公關/推廣/市場調查”和“廣告/設計”的類目審核,也將不再對個人小程序開放。
“授權濫用”行為
在挺早前就有針對“授權濫用”行為的限制,當用戶初次使用小程序是,強制要求用戶授權昵稱、頭像、手機號、地理位置等信息,如果用戶不同意,繼續跳轉授權頁面,影響用戶正常使用小程序。對騰訊自己的小程序“騰訊投票”也做了違規處理,就看出騰訊的決心。
現在微信已經對用戶授權流程進行了優化,只有特定場景才需要用戶授權指定信息。
微信小程序開發-服務端session值取不到;小程序res.header['Set-Cookie']隱藏的坑
問題:本地服務器存取session沒有問題。通過小程序,比如發驗證碼,服務器端將驗證碼存為session。校驗驗證碼的時候重新取session,提示session值不存在。
根源:微信小程序不能保存Cookie,導致每次wx.request到服務端都會創建一個新的會話,從而當前會話不再是之前存驗證碼的那個會話,自然也就取不到session值了。
解決方法:(由于本人很懶,直接參考、引用大神的文章,文末有原文鏈接,原文板塊比較好看一點。我這里重點在于記錄微信小程序的另一個坑。)
普通的Web開發,都是把sessionid保存在cookie中傳遞的。
不管是java還是php,服務端的會在response的header中加上Set-Cookie
例如:
瀏覽器的請求也會在header中加上
例如:
通過這個sessionid就能使瀏覽器端和服務端保持會話,使瀏覽器端保持登錄狀態。但是,微信小程序不能保存Cookie,導致每次wx.request到服務端都會創建一個新的會話,小程序端就不能保持登錄狀態了。
一個比較簡單的辦法就是在小程序端把cookie保存到storage里,后續請求的時候再讀storage,把cookie添加到請求頭里,這樣做的好處就是,服務端不用做任何改動
具體操作如下:
1.把服務端response的Set-Cookie中的值保存到Storage中
2.wx.request再從Storage中取出Cookie,封裝到header中
我在這里還遇到了另外一個問題,當服務器響應多個Set-Cookie時,小程序通過wx.request 回調取res.header['Set-Cookie']所取到的Set-Cookie值是把它們用逗號拼接在一起,從而產生的錯誤的Cookie,這樣請求后臺的時候還是取不到相應的session。而真正需要的是用分號拼接多個Set-Cookie值。例如:
服務器響應:
小程序通過res.header['Set-Cookie']取到的Set-Cookie值卻是:
而真正正確的值應該是smallapp與session_name之間用分號隔開而不是逗號:
但坑終究是坑,寄人籬下,有坑也只得我們自己填。
填坑方法:在步驟2中的if判斷中,自己重新拆分Storage中取出的Cookie,整理成后端需要的規范的cookie。再賦值給header.Cookie。
這個問題暫時沒找到其他解決方案,也請知道的朋友指點一下。
原文引用: 微信小程序開發-保存服務端sessionid的方法
鏈接:【點擊了解更多加盟項目】
關于微信小程序開發有哪些坑和小程序開發的坑有哪些的介紹到此就結束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關注本站。
-
上一篇
小程序開發網站(小程序 網站 開發) -
下一篇
泰州seo優化(泰州網站seo)