1. 程式人生 > >wechat-小程式入坑

wechat-小程式入坑


title: wechat-小程式入坑
categories: Wechat
tags: [wechat, 記錄]
date: 2018-10-23 14:13:18
comments: false

wechat-小程式入坑


前篇


js引入 promise async await

小程式開發中由於 es6 至少 ios 9.1 不支援,所以如果已經在專案中使用了較多了es6或必須使用es6,則需要勾選 es6 轉 es5,才能解決前述相容問題。但若有使用 async await 會報 regeneratorRuntime is not defined 錯誤。解決方法如下:

  1. 下載 facebook 的 regenerator 庫 -
    https://github.com/facebook/regenerator
  2. 取 regenerator-master/packages/regenerator-runtime 目錄中的 runtime.js 檔案放入你的專案中
  3. 在你有使用 async await 的檔案前面引入這個 runtime.js 檔案即可,引入程式碼如: const regeneratorRuntime = require(’…/…/utils/runtime.js’);

小程式 webview

  • 是小程式, 不是小遊戲, 小程式才能使用 webview, 將自定義域名的網頁嵌入到小程式中展示.

  • 內網測試需要勾選 不校驗 業務域名 驗證

小程式 與 webview 互動

問題


小程式 生命週期

頁面的生命週期

參考: https://www.jianshu.com/p/0078507e14d3

Page()函式用來註冊一個頁面。接受一個 object 引數,其指定頁面的初始資料、生命週期函式、事件處理函式等。
object 引數說明:

屬性 型別 描述
data Object 頁面的初始資料
onLoad Function 生命週期函式–監聽頁面載入
onReady Function 生命週期函式–監聽頁面初次渲染完成
onShow Function 生命週期函式–監聽頁面顯示
onHide Function 生命週期函式–監聽頁面隱藏
onUnload Function 生命週期函式–監聽頁面解除安裝

img

頁面的生命週期

  • 小程式註冊完成後,載入頁面,觸發onLoad方法。
  • 頁面載入後觸發onShow方法,顯示頁面。
  • 首次顯示頁面,會觸發onReady方法,渲染頁面元素和樣式,一個頁面只會呼叫一次。
  • 當小程式後臺執行或跳轉到其他頁面時,觸發onHide方法。
  • 當小程式有後臺進入到前臺執行或重新進入頁面時,觸發onShow方法。
  • 當使用重定向方法wx.redirectTo(OBJECT)或關閉當前頁返回上一頁wx.navigateBack(),觸發onUnload。

跳轉頁面-路由

官方api說明 - https://developers.weixin.qq.com/miniprogram/dev/api/route/wx.navigateTo.html

  • navigateTo

    wx.navigateTo({
        url: '../index/index'
    });
    

    生成新頁面, 加入堆疊, 走一遍: 舊頁 onHide -> 新頁 onLoad, onShow, onReady,

  • redirectTo

    wx.redirectTo({
        url: '../index/index'
    })
    

    生成新頁面, 加入堆疊, 走一遍: 舊頁 onUnload -> 新頁 onLoad, onShow, onReady,

  • navigateBack

    wx.navigateBack({
        delta: 2
    })
    

    返回delta個頁, 中間所有的頁 按堆疊順序出棧呼叫 onUnload, 目的頁 onShow

路由-帶引數

  • 例如: 從 a頁面 -> b頁面

    // a頁面跳轉
    wx.navigateTo({
    	url: '../web001/web001?key=value&key2=value2',
    });
    
    // b頁面 onLoad 中可以接收到引數
    onLoad: function (options) {
    	gLog("--- web001 onLoad", options) // object 型別, {key: "value", key2: "value2"}
    },
    
    • 其他路由api類似, 都可以這樣傳參 ?key=value&key2=value2

小程式外掛

外掛開發

參考

使用外掛

參考


採坑