來源:張小貝_ 發(fā)布時間:2019-03-27 17:31:27 閱讀量:1191
在Android 項目不忙之余,自學(xué)了微信小程序入門。常聽前輩說,做一名開發(fā)人員最重要的不是你會什么語言, 而是在面對不會的語言和未接觸過的任務(wù)時,有著怎樣的學(xué)習(xí)力和學(xué)習(xí)邏輯。仿佛又回到了高三那一段難忘的學(xué)習(xí)階段,用了小三天時間,可以說是入了個小門。下面將自己踩得坑,和從別人的帖子里學(xué)來的經(jīng)驗,做一個總結(jié),留給自己回憶,留給后人學(xué)習(xí)。
一、小程序是什么。
首先,你要對小程序的開發(fā)有一個整體的概念。
對于小程序到底是什么的這個問題,百度百科已經(jīng)給出了一個比較親民且容易理解的答案。
Q:小程序是什么?它有著什么樣的功能?
A:小程序是一種不需要下載安裝即可使用的應(yīng)用,它實現(xiàn)了應(yīng)用“觸手可及”的夢想,用戶掃一掃或者搜一下即可打開應(yīng)用。也體現(xiàn)了“用完即走”的理念,用戶不用關(guān)心是否安裝太多應(yīng)用的問題。應(yīng)用將無處不在,隨時可用,但又無需安裝卸載。對于開發(fā)者而言,小程序開發(fā)門檻相對較低,難度不及APP,能夠滿足簡單的基礎(chǔ)應(yīng)用,適合生活服務(wù)類線下商鋪以及非剛需低頻應(yīng)用的轉(zhuǎn)換。小程序能夠?qū)崿F(xiàn)消息通知、線下掃碼、公眾號關(guān)聯(lián)等七大功能。其中,通過公眾號關(guān)聯(lián),用戶可以實現(xiàn)公眾號與小程序之間相互跳轉(zhuǎn)。由于小程序不存在入口。[6]
Q:小程序可以和現(xiàn)有的App 打通嗎?
A:小程序可以借助微信聯(lián)合登錄,和開發(fā)者已有的App 后臺的用戶數(shù)據(jù)進(jìn)行打通,但不會支持小程序和App 直接的跳轉(zhuǎn)。
Q:微信已經(jīng)有了訂閱號、服務(wù)號、企業(yè)號,小程序和這三者有什么不同?
A:小程序、訂閱號、服務(wù)號、企業(yè)號是并行的體系。
Q:外界有說法稱,小程序的推出意味著微信要做一個應(yīng)用分發(fā)市場,是這樣嗎?
A:微信推出小程序,并非想要做應(yīng)用分發(fā)市場,而是給一些優(yōu)質(zhì)服務(wù)提供一個開放的平臺。
但從小程序的開發(fā)結(jié)構(gòu)上來說,微信小程序應(yīng)該屬于前端開發(fā),其結(jié)構(gòu)中的wxml、js、wxss同web開發(fā)的結(jié)構(gòu)有類似的地方。
二、開發(fā)工具和開發(fā)環(huán)境
這一部分網(wǎng)上有很多帖子可以查找,官方也給出了工具下載和開發(fā)api的地址。
微信公眾平臺給出了小程序的設(shè)計、介紹、使用、注冊、工具、數(shù)據(jù)綁定等幾乎全部功能的說明,初學(xué)者可以先去瀏覽一遍,心里對小程序有個粗略的認(rèn)識,將工具下載安裝,賬號注冊,做好一切準(zhǔn)備之后,再來進(jìn)行入門的開發(fā)學(xué)習(xí)。
微信公眾平臺關(guān)于小程序的入口地址:https://mp.weixin.qq.com/debug/wxadoc/dev/index.html?t=2018211
三、新建項目,認(rèn)識架構(gòu)
打開工具的時候,會進(jìn)入這個新建項目的頁面。
可以看到,要添加一個新的小程序項目需要填寫三部分內(nèi)容:AppID,項目名稱,項目目錄。為了能快速開發(fā),我們先選擇 無AppID 這個選項,如果正式開發(fā),是需要添加AppId的,關(guān)于Appid的部分可以去查詢資料。
項目目錄,是指你的小程序的代碼將放在哪個目錄下,你可以自己在本地創(chuàng)建一個文件夾,也可以在github創(chuàng)建一個新項目,都可以。
配置小程序
這一節(jié),我們將介紹小程序的配置。首先,讓我們來看看項目自動生成的app.json文件長什么樣子。
{
"pages":[
"pages/index/index",
"pages/logs/logs"
],
"window":{
"backgroundTextStyle":"light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTitleText": "WeChat",
"navigationBarTextStyle":"black"
}
}
其實這里,共有五個部分可以配置,分別是pages, window, tarBar, networkTimeout和debug
pages:定義的是這個小程序由哪些頁面組成。
在以后需要新增或者減少頁面時,都需要在這里進(jìn)行設(shè)置,有幾個頁面pages數(shù)組就有幾項。
可以看到pages是一個數(shù)組,而數(shù)組的第一項就是小程序的初始頁面,你可以試著把logs頁面移動到最前面看看效果,這在開發(fā)的時候是一個不錯的小技巧。
還有一個技巧要分享給你的是,在我們需要添加一個新頁面的時候,沒必要傻傻的手動去創(chuàng)建文件夾,然后新建xxx.josn, xxx.js, xxx.wxml, xxx.wxss這四個文件。我們只要在 pages數(shù)組中 添加一個你想創(chuàng)建的頁面,然后 Ctrl + s 保存即可!是不是很酷?
{
"pages":[
"pages/logs/logs",
"pages/index/index"
],
...
}
window: 定義的是窗口的配置信息。
屬性類型默認(rèn)值描述
navigationBarBackgroundColorHexColor#000000導(dǎo)航欄背景顏色,如"#000000"
navigationBarTextStyleStringwhite導(dǎo)航欄標(biāo)題顏色,僅支持 black/white
navigationBarTitleTextStringa導(dǎo)航欄標(biāo)題文字內(nèi)容
backgroundColorHexColor#ffffff窗口的背景色
backgroundTextStyleStringdark下拉背景字體、loading 圖的樣式,僅支持 dark/light
enablePullDownRefreshBooleanfalse是否開啟下拉刷新
tarBar: 用來定義 tabBar 的表現(xiàn)
tabBar 是一個數(shù)組,只能配置最少2個、最多5個 tab,tab 按數(shù)組的順序排序。
我們可以在項目目錄下添加一個images文件,用來存放我們的圖片文件。
注意:目前小程序只支持網(wǎng)絡(luò)圖片或者base64圖片,使用本地圖片需要將圖片轉(zhuǎn)為base64代碼
networkTimeout: 用來設(shè)置各種網(wǎng)絡(luò)請求的超時時間。
如果你不是很清楚這個networkTimeout配置有什么作用,那么忽略就好。這對實際開發(fā)并沒有什么影響。
屬性類型必填說明
requestNumber否wx.request的超時時間,單位毫秒
connectSocketNumber否wx.connectSocket的超時時間,單位毫秒
uploadFileNumber否wx.uploadFile的超時時間,單位毫秒
downloadFileNumber否wx.downloadFile的超時時間,單位毫秒
小程序的主體部分,可以從圖中看出,主要有三個部分。
1)app.js:小程序邏輯,初始化APP
2)app.json :小程序配置,比如導(dǎo)航、窗口、頁面http請求跳轉(zhuǎn)等。全局配置頁面文件的路徑、窗口表現(xiàn)、設(shè)置網(wǎng)絡(luò)超時時間、設(shè)置多 tab 等。
3)app.wxss:公共樣式配置
前面也說了,小程序主要有四個頁面組成部分
1)js:頁面邏輯
2)wxml:頁面結(jié)構(gòu)展示
3)wxss:頁面樣式表
4)json:頁面配置,配置一些頁面展示的數(shù)據(jù)
四、添加一個button
下面讓我們來添加一個button吧
首先,我們要告訴小程序有哪些頁面。 其次,需要設(shè)置小程序的導(dǎo)航欄標(biāo)題,圖如上面的app.json圖中所示。
1.首先,打開index.wxml頁面,這個頁面現(xiàn)在就是被首頁tab調(diào)用的頁面,先不管在哪調(diào)用的,我們現(xiàn)在頁面中加三個button。小程序的頁面架構(gòu)跟web頁面有些類似,wxml類似于html,從圖中可以看到,將button放到view這個布局中,bindtab是點擊事件的調(diào)用名,其點擊效果會在對應(yīng)的js頁面中被觸發(fā)。
2.對應(yīng)上圖,我們可以找到j(luò)s中對應(yīng)的事件觸發(fā)及所調(diào)用的頁面
3.此時如果運行,點擊按鈕,有可能并不會觸發(fā)頁面跳轉(zhuǎn),而且還會報頁面不存在的錯誤,這是由于觸發(fā)的跳轉(zhuǎn)頁面的事件中所寫的目標(biāo)頁面并沒有在app.json中注冊的原因,也就是這里。
4.按鈕或者頁面的樣式是什么樣的,寬的扁的圓的,就卸載對應(yīng)的wxss中就可以了。
如上所示四步,就可以寫出入門的簡單的button、text、tab等,還可以觸發(fā)事件,如果你的js很棒的話,那么就可以進(jìn)行稍微復(fù)雜的頁面和操作啦。