1. 程式人生 > >小程式開發之注意問題

小程式開發之注意問題

1.網路請求問題:強制要求請求全部為https

2.網路請求問題:測試環境可以使用http協議

由於小程式開發時域名需要在公眾平臺備案
所以我們學習測試時:點選開發工具右上角“詳請”--勾選“不校驗合法域名、web-view(業務域名)、TLS 版本以及 HTTPS 證書”即可在正常網路環境中測試
在這裡插入圖片描述

3.企業型別帳號需支付300元認證費或者用公司賬號向騰訊公司打款認證。
政府、媒體、其他組織型別帳號,必須通過微信認證驗證主體身份

4.公眾號關聯小程式

關聯規則:
所有公眾號都可以關聯小程式。
一個公眾號可關聯10個同主體的小程式,3個不同主體的小程式。
一個小程式可關聯500個公眾號。
公眾號一個月可新增關聯小程式13次,小程式一個月可新增關聯500次。

5.待續

5.小程式有些元件依賴於node.js開發環境,建議電腦安裝一下node.js開發環境
安裝教程:https://blog.csdn.net/JackJia2015/article/details/84101036

6.小程式建立頁面的.wxml.js.wxss.json四個檔案必須具有相同的路徑與檔名

7.小程式允許上傳的檔案格式
程式檔案格式: js、json、wxml、wxss
圖片格式:png、jpg、jpeg、gif、svg
資料格式:wxs、json
檔案個數:cer
音訊格式:mp3、aac、m4a、wav、m4a、silk
視訊格式:mp4

8.json的配置檔案不可以寫註釋,而且標點符號要求很嚴格,所有符號需要英文符號,配置引數鍵值最後一個項不能加逗號

9.tabBar 底部導航欄,如果配置,只能配置最少2個、最多5個 tab

10.獲取使用者位置資訊的官方宣告
2019年1月14日起新提交發布的版本將會受到此調整的影響。 需要各位開發者注意,2019年1月14日起新提交發布的版本若未填寫地理位置用途說明,則將無法正常呼叫地理位置相關介面,請及時填寫地理位置用途說明。 該調整策略在微信客戶端 7.0.0 版本生效。另外,考慮到相容性等問題,在微信客戶端 7.0.0 版本以下的環境中不受此策略影響。

解決方案:
需要在App.json配置

"permission": {
    "scope.userLocation": {
      "desc": "你的位置資訊將用於小程式位置介面的效果展示"
    }
}

11.頁面.json中配置項會覆蓋 app.json 的 window 中相同的配置項。

12.控制頁面整體不能上下滾動的disableScroll只在頁面配置中有效,無法在 app.json 中設定

13.小程式框架的邏輯層並非執行在瀏覽器中,因此 JavaScript 在 web 中一些能力都無法使用,如 window,document 等

14.如何區分前臺、後臺

前臺:當再次進入微信或再次開啟小程式,又會從後臺進入前臺。
後臺:當用戶點選左上角關閉,或者按了裝置 Home 鍵離開微信,小程式並沒有直接銷燬,而是進入了後臺;
當日如果小程式進入後臺一定時間,或者系統資源佔用過高,才會被真正的銷燬。

15.獲取全域性變數注意問題

獲取全域性變數userInfo

const app = getApp()
console.log(app.globalData.userInfo) 

注:
(1)不要在App.js 內的函式中呼叫 getApp()
(2)App.js 中,使用 this 就可以拿到 app 例項。

var that = this
console.log(this.globalData.userInfo) 

(3)通過 getApp() 獲取例項之後,不要私自呼叫生命週期函式。

16.setData 函式用於將資料從邏輯層傳送到檢視層(非同步),同時改變對應的 this.data 的值(同步)。

17.獲取當前頁面棧–getCurrentPages()

  • 不要嘗試修改頁面棧,會導致路由以及頁面狀態錯誤。
  • 不要在 App.onLaunch 的時候呼叫 getCurrentPages(),此時 page 還沒有生成。

18.navigateTo等多個值傳值時一定要傳加上JSON.parse()

  • 傳值端JSON.stringify(array),
  • 接收端JSON.parse(options.array);

否則傳過的將字串的形式接收,無法正常解析

  1. 路由跳轉相關問題

(1)navigateTo, redirectTo 只能開啟非 tabBar 頁面。
(2)switchTab 只能開啟 tabBar 頁面。
(3)reLaunch 可以開啟任意頁面。
(4)頁面底部的 tabBar 由頁面決定,即只要是定義為 tabBar 的頁面,底部都有 tabBar。
(5)呼叫頁面路由帶的引數可以在目標頁面的onLoad中獲取。
(6)呼叫 navigateTo 跳轉時,呼叫該方法的頁面會被加入堆疊,而redirectTo 方法則不會。所以只要navigateTo的跳轉才可以使用wx.navigateBack方法

19.待續