1. 程式人生 > >小程式坑集【日常總結,持續更新(11.08更新)】

小程式坑集【日常總結,持續更新(11.08更新)】

大家好,上班的日子總是過的那麼快,夾雜著一個多請了四天假的國慶節,轉眼距離上篇博文又過去一個多月了,慚愧啊。之前萍子寫過一篇【小程式跳H5頁面】的博文,說來也是無心在結尾的時候,回想那些被小程式折磨的不成人樣的日子,就寫了句‘那天想不開了,就總結一篇小程式坑集’,可是碼字者無心,看文者有意,有猿留言讓我總結一下,可能想讓我早點想不開吧,哈哈哈,那好吧,我儘量回憶回憶,很多之前遇到的沒及時的總結都已經忘記了,所以我把這篇博文定為持續更新,一下子我是真想不起來多少,畢竟年紀大了,還請各位諒解哦……
首先我先寫之前在掙扎著想要總結,卻沒能堅持下來的,記在筆記本上的幾條:

小程式跳轉頁面帶參

詳情:跳轉頁面需要帶參的時候,如果字串中含有“=”號,會影響傳值。
解析:我們都知道小程式跳轉頁面,絕大多數的情況,我們需要傳遞的引數都是拼接在url後面的,那麼引數名跟值之間是用“=”號連線,所以如果我們傳的引數值裡面包含“=”號,它會自動以等號分開變成兩個欄位,所以會出錯。
解決:在傳參的時候,如果引數值中含有“=”,那麼我們可用十六進位制“%3D”代替,轉過去以後再轉換回來即可。

小程式實現倒計時

詳情:在小程式中實現一個倒計時問題的時候,可是被坑屎了,之前沒深入測試的時候還沒發現,後來到了釋出階段認真測試發現怎麼安卓手機和蘋果手機有8個小時的時差,那可勁造吧,各種試也沒發現自己寫的親程式碼有啥問題,真是痛苦了好久。
解析

:計算倒計時的時候,取值是取得後臺返回的時間物件,然後自己去計算的,這樣就會造成8個小時誤差的問題。
解決:讓後臺在返回的時候就返回時間戳,然後前端再進行計算就不會有問題。

此處插兩個H5的坑【突然想起來的】

具體詳情可見我得另外的博文:
new Data(date).getTime()的相容問題
H5實現拍照及相簿圖片上傳
以上兩點是屬於H5中安卓和蘋果的相容問題。

小程式轉發分享傳參

詳情:在轉發傳參之前,這寫引數就是由其他頁面傳遞過來的,那麼在進行轉發傳參的時候,再次進行傳參會出現問題。
解析:在轉發傳參的時候,如果傳遞的引數在之前的options中是存在的,這個時候會出現傳不過去或者即使傳過去了值也不對的情況。
解決

:在傳參之前,先把之前賦過值的引數進行清空,再賦對應的值進行操作就解決了。

自己寫的遮罩層無法遮蓋 textarea元件placeholder

這個詳情和解析就沒必要說了哦。
解決:彈出遮罩層的時候把textarea元件隱藏,關閉遮罩後重新顯示textarea元件即可。

【11.08更新】text元件設定長按複製手機號碼的問題

詳情:很簡單的,只寫<text selectable='true'>填寫測試手機號</text>這個元件,那麼在測試的時候,長按是可以複製貼上的,但是有的時候可能按住的時間不夠就鬆手了,那麼問題就來了。。
解析:按住的時間不達到長按的要求,或者就是單純的點選一下,部分安卓手機,會跳轉到系統撥打電話的介面,暫時蘋果手機沒發現有這個問題。
解決:首先現在這個問題還沒能解決的了,但是我已經在社群中提問官方的人了,待他們回覆或者是優化;然後就是期間我嘗試過其他的辦法,也沒能解決的了,比如在需要複製的手機號後面拼接上多餘字元然後隱藏調等,但是並沒有什麼效果,所以靜待官方迴應,他們回覆了,我會及時更新上來。
替換解決方案:小程式有提供的複製文字的api,實在是需要的話,我們可以用之替換,具體的程式碼如下:

wx.setClipboardData({
  data: 131********,//要複製的手機號
  success:(res)=> {
    console.log("shezhiCopy:",res);//{errMsg: "setClipboardData:ok"}
  }
})

這樣就可以了,而且完成複製之後,不能自己新增提示框,它會自動彈出“內容已複製”的彈框,還是很方便的。

除了以上以外,我還發現有很多開發者工具支援的JS方法其實在手機上測試的時候發現是不支援的,也是很坑,之前沒真機的時候明明一切是那麼完美,具體我遇到的我也忘記了……忘記……記了……
今天就先這樣,其他的我遇到了或者想起來了會持續過來更新噠,小夥伴們有遇到什麼讓人咬牙切齒的坑,也要分享給我哦,我們畢竟是難兄難弟難姐難妹,要多多照應才是呀。
最後我還想說一下,有關於坑集這個東西,也並不是萬能的,就比如說對於我來說很坑但是你可能覺得是很平常的問題,反之亦是,所以我總結的也只是我遇到的一部分,我們大家有類同的是榮幸,互相借鑑少走彎路,如若這裡沒有你想要的,也請記得分享出來哦,一起摸爬滾打,前進…進~或者有啥困惑的可以留言,萍子定當知無不言言無不盡。