前言2016年9月21日晚間,微信公眾平臺開始陸續(xù)對外發(fā)送小程序內(nèi)測邀請。此時,便對微信小程序有了關(guān)注,打算學(xué)習(xí)、并開發(fā)一款小程序。期間因為有其他項目開發(fā)的原因,稍有中斷 ...
》》》前言
2016年9月21日晚間,微信公眾平臺開始陸續(xù)對外發(fā)送小程序內(nèi)測邀請。此時,便對微信小程序有了關(guān)注,打算學(xué)習(xí)、并開發(fā)一款小程序。期間因為有其他項目開發(fā)的原因,稍有中斷,然在前些天,終于將小程序的初版發(fā)布,并審核通過,下面文章中會把我在開發(fā)這個圖片類小程序(不含上傳圖片功能)中遇到的一些坑與大家講解,并附上解決途徑。
》》》遇到的坑
(1)獲取城市地理位置及具體位置
需求:根據(jù)微信小程序自帶的wx.getLocation(OBJECT),獲取用戶所在具體位置及城市信息。
解決思路:推薦使用百度地圖的api來獲取地理位置信息。
具體流程可參考微信小程序的百度地圖獲取地理位置 —— 微信小程序教程系列(15)
上面例子已測試成功。
開發(fā)的大牛還是很多的,我在此基礎(chǔ)上再補充幾點:
①調(diào)用此處的api,只需要有百度賬號即可,在配額不夠的情況下,可申請認證,具體可查看《認證開發(fā)者權(quán)益》;
②在調(diào)用wx.getLocation(OBJECT)時,會彈出“是否獲取地理位置”,要考慮用戶在不允許獲取地理位置的時候,設(shè)置一個默認經(jīng)緯度;
③附上一個官方的js下載地址:點擊這里
(2)下拉及刷新的實現(xiàn)
需求:根據(jù)接口獲取第一頁數(shù)據(jù),下拉后重新獲取第一頁數(shù)據(jù),上拉后可以獲取第二頁,第N頁數(shù)據(jù)。
解決思路:現(xiàn)有兩種方法:
方法一:利用page的”onPullDownRefresh”和”onReachBottom”,
方法二在scroll-view里設(shè)定bindscrolltoupper和bindscrolltolower,大家可以根據(jù)自己的實際開發(fā)情況選用,講解一下區(qū)別:
①方法一和方法二是沖突的,130400版本更新導(dǎo)致下拉刷新和scroll-view不能同時使用,只能選擇一個;
②在現(xiàn)在的版本中,方法一的onPullDownRefresh會自帶下拉刷新動作,方法二沒有;
③方法二的scroll-view可以自帶參數(shù)傳遞到j(luò)s中,方法一如果下拉要帶參數(shù)需要data中設(shè)值,下面的代碼會有體現(xiàn)。
代碼實現(xiàn):
// 下拉重新加載照片信息
onPullDownRefresh: function () {
this.setData({
items: [],
personalCurPage: 1
});
var that = this;
common.showTip("刷新中...", "loading", 800);
var userId = wx.getStorageSync('userId');
// 如果用戶已登錄
if (userId != null && userId > 0) {
api.getShooterNewestPics(that, userId, 1);
}
},
// 上拉加載下一頁
onReachBottom: function (event) {
var that = this;
var curPage = that.data.personalCurPage;
curPage++;
this.setData({
hidden: false,
personalCurPage: curPage
});
var userId = wx.getStorageSync('userId');
common.showTip("加載中...", "loading", 500);
api.getShooterNewestPics(that, userId, curPage);
},
今天暫時講這兩點,下次繼續(xù)。 有興趣可以查看查看線上例子: