微信野心越來越大,如今已經從開始簡單的聊天工具發展成了一個網際網路生态系統,網羅了目前各大網際網路平台所具備的功能,最近IOS端微信上線的“搜一搜”和“看一看”更加證明了這一點,直接看下面這張圖吧:
微信的野心
好了,今天繼續給大家分享這個牛逼的“削蘋果”的小程式的相關知識。
一、使用本地存儲時可以直接存儲JSON,而無需先轉成字元串
我們都知道,在HTML5中使用localStorage不能直接存儲JSON格式資料,而是需要先通過JSON.stringify()将其轉化成String格式的資料,這樣才能存入到本地存儲中。然而,小程式則不同,可以說更加貼心了,直接使用wx.setStorageSync()就能存儲各種格式資料,當然也包括JSON,而不需要進行任何轉化。
比如:
//html版
var obj = {
a: 666,
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":666,"b":"haha"} 注:此處獲得的隻是個字元串,如需轉換為JSON格式,需要使用JSON.parse()方法轉換。
//小程式版
var obj = {
a: 666,
b: 'haha'
};
wx.setStorageSync('obj', obj);
console.log(wx.getStorageSync('obj')); // {"a":666,"b":"haha"} 注:此處獲得的是個JSON資料
二、不支援
标簽,但<text>标簽支援轉義字元 “\” ,是以可以使用 “\n” 讓文字換行
可能是習慣了寫網頁吧,在剛開始接觸小程式開發的時候總是會習慣性地使用
标簽來換行,後面查文檔才發現并沒有這個标簽,但是可以使用 “\n” 來換行。但是需要注意的是,必須在<text>标簽中使用 “\n” 才能有效換行哦~~
<view>這是第一行\n這是第二行</view> <!--沒有換行-->
<text>這是第一行\n這是第二行</text> <!--成功換行-->
三、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', //此處所寫路徑與 ① 處相同,若頁面需傳參數,記得把參數帶上
}
},
結束語: 在小程式開發過程中遇到的坑還是挺多的,在此就先分享這些了,若文中有不對的地方,還請各位大神多多指正哦~~