天天看點

微信小程式開發之路上遇到的那些坑

微信野心越來越大,如今已經從開始簡單的聊天工具發展成了一個網際網路生态系統,網羅了目前各大網際網路平台所具備的功能,最近iOS端微信上線的“搜一搜”和“看一看”更加證明了這一點,直接看下面這張圖吧:

微信小程式開發之路上遇到的那些坑

好了,今天繼續給大家分享這個牛逼的“削蘋果”的小程式的相關知識。

一、使用本地存儲時可以直接存儲JSON,而無需先轉成字元串

我們都知道,在HTML5中使用localStorage不能直接存儲JSON格式資料,而是需要先通過JSON.stringify()将其轉化成String格式的資料,這樣才能存入到本地存儲中。然而,小程式則不同,可以說更加貼心了,直接使用wx.setStorageSync()就能存儲各種格式資料,當然也包括JSON,而不需要進行任何轉化。

比如:

//html版
var obj = {
    a: ,
    b: 'haha'
};
localStorage.setItem('obj',obj);
console.log(localStorage.getItem('obj'));     // [object Object]
localStorage.setItem('obj',JSON.stringify(obj));
console.log(localStorage.getItem('obj'));     // {"a":,"b":"haha"}   注:此處獲得的隻是個字元串,如需轉換為JSON格式,需要使用JSON.parse()方法轉換。
           

//小程式版

var obj = {
  a: ,
  b: 'haha'
};
wx.setStorageSync('obj', obj);   
console.log(wx.getStorageSync('obj'));     // {"a":,"b":"haha"}   注:此處獲得的是個JSON資料
           

二、不支援

标簽,但标簽支援轉義字元 “\” ,是以可以使用 “\n” 讓文字換行

可能是習慣了寫網頁吧,在剛開始接觸小程式開發的時候總是會習慣性地使用

标簽來換行,後面查文檔才發現并沒有這個标簽,但是可以使用 “\n” 來換行。但是需要注意的是,必須在标簽中使用 “\n” 才能有效換行哦~~

比如:

這是第一行\n這是第二行

這是第一行\n這是第二行

三、wx.navigateTo 和 wx.redirectTo 不允許跳轉到 tabbar 頁面,隻能用 wx.switchTab 跳轉到 tabbar 頁面

關于 wx.switchTab 的功能,小程式開發文檔是這樣描述的:

跳轉到 tabBar 頁面,并關閉其他所有非 tabBar 頁面

若某頁面在app.json中配置為tabBar頁面,當從其他頁面跳轉到該頁面時必須使用 wx.switchTab

比如:

//app.json

{
  "tabBar": {
    "list": [
    {
      "pagePath": "index",
      "text": "首頁"
    },
    {
      "pagePath": "other",
      "text": "其他"
    }
    ]
  }
}
           
//js
wx.switchTab({    //跳轉至index頁面
  url: '/index'
})
           

四、分享的頁面如果需要參數就一定要傳參,并且path要寫app.json中所配置的絕對路徑

在做小程式分享這部分的時候,一開始經常會遇到頁面不存在的情況,後面才發覺一般遇到這種情況都是因為使用 onShareAppMessage() 方法時path沒有寫對,這時隻需要将app.json中配置該頁面的路徑直接複制過來就好啦!

// app.json
{
  "pages":[
    "pages/test/test"    //  ①
  ]
}
// test.js
onShareAppMessage: function () {
    return {
      title: '自定義轉發标題',
      path: 'pages/test/test?id=123',   //此處所寫路徑與 ① 處相同,若頁面需傳參數,記得把參數帶上
    }
  },
           

結束語: 在小程式開發過程中遇到的坑還是挺多的,在此就先分享這些了,若文中有不對的地方,還請各位大神多多指正哦~~

繼續閱讀