1. 程式人生 > >微信小程式開發中走過的坑(一)

微信小程式開發中走過的坑(一)

》》》前言

2016年9月21日晚間,微信公眾平臺開始陸續對外發送小程式內測邀請。此時,便對微信小程式有了關注,打算學習、並開發一款小程式。期間因為有其他專案開發的原因,稍有中斷,然在前些天,終於將小程式的初版釋出,並稽核通過,下面文章中會把我在開發這個圖片類小程式(不含上傳圖片功能)中遇到的一些坑與大家講解,並附上解決途徑。

》》》遇到的坑

(1)獲取城市地理位置及具體位置
需求:根據微信小程式自帶的wx.getLocation(OBJECT),獲取使用者所在具體位置及城市資訊。
解決思路:推薦使用百度地圖的api來獲取地理位置資訊。
具體流程可參考微信小程式的百度地圖獲取地理位置 —— 微信小程式教程系列(15)


上面例子已測試成功。
開發的大牛還是很多的,我在此基礎上再補充幾點:
①呼叫此處的api,只需要有百度賬號即可,在配額不夠的情況下,可申請認證,具體可檢視《認證開發者權益》
②在呼叫wx.getLocation(OBJECT)時,會彈出“是否獲取地理位置”,要考慮使用者在不允許獲取地理位置的時候,設定一個預設經緯度;
③附上一個官方的js下載地址:點選這裡

(2)下拉及重新整理的實現
需求:根據介面獲取第一頁資料,下拉後重新獲取第一頁資料,上拉後可以獲取第二頁,第N頁資料。
解決思路:現有兩種方法:方法一:利用page的”onPullDownRefresh”和”onReachBottom”,方法二在scroll-view裡設定bindscrolltoupper和bindscrolltolower,大家可以根據自己的實際開發情況選用,講解一下區別:
①方法一和方法二是衝突的,130400版本更新導致下拉重新整理和scroll-view不能同時使用,只能選擇一個;
②在現在的版本中,方法一的onPullDownRefresh會自帶下拉重新整理動作,方法二沒有;
③方法二的scroll-view可以自帶引數傳遞到js中,方法一如果下拉要帶引數需要data中設值,下面的程式碼會有體現。
程式碼實現:

 // 下拉重新載入照片資訊
  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); },

今天暫時講這兩點,下次繼續。
有興趣可以檢視檢視線上例子:
這裡寫圖片描述