快應(yīng)用端開發(fā)流程

2020-05-12 17:47 更新
從 1.3 beta 版本開始支持快應(yīng)用開發(fā)本章節(jié)主要講解快應(yīng)用端 環(huán)境安裝-開發(fā)-調(diào)試-打包-發(fā)布 原理及流程

簡(jiǎn)介

Taro 支持快應(yīng)用端開發(fā)

安裝

搭建快應(yīng)用環(huán)境

手機(jī)安裝調(diào)試器

調(diào)試器是一個(gè) Android 應(yīng)用程序,下載調(diào)試器 APK 詳見(jiàn)資源下載

在手機(jī)上安裝并打開調(diào)試器,按鈕功能如下:

  • 掃碼安裝:配置 HTTP 服務(wù)器地址,下載 rpk 包,并喚起平臺(tái)運(yùn)行 rpk 包
  • 本地安裝:選擇手機(jī)文件系統(tǒng)中的 rpk 包,并喚起平臺(tái)運(yùn)行 rpk 包
  • 在線更新:重新發(fā)送 HTTP 請(qǐng)求,更新 rpk 包,并喚起平臺(tái)運(yùn)行 rpk 包
  • 開始調(diào)試:?jiǎn)酒鹌脚_(tái)運(yùn)行 rpk 包,并啟動(dòng)遠(yuǎn)程調(diào)試 注意:若打開調(diào)試器無(wú)法點(diǎn)擊按鈕,請(qǐng)升級(jí)手機(jī)系統(tǒng)到最新版本或安裝平臺(tái)預(yù)覽版

安裝成功后如下圖所示:

img

手機(jī)安裝平臺(tái)預(yù)覽版

較新的系統(tǒng)版本中內(nèi)置平臺(tái)正式版,開發(fā)調(diào)試平臺(tái)新功能可使用平臺(tái)預(yù)覽版

平臺(tái)預(yù)覽版存在以下優(yōu)缺點(diǎn):

  • 優(yōu)點(diǎn):迭代速度快,可立即體驗(yàn)平臺(tái)新功能
  • 缺點(diǎn):實(shí)現(xiàn)與真實(shí)的運(yùn)行環(huán)境存在差異,對(duì)廠商服務(wù)和第三方服務(wù)的支持存在缺陷 平臺(tái)預(yù)覽版是一個(gè) Android 應(yīng)用程序,下載平臺(tái)預(yù)覽版 APK 詳見(jiàn)資源下載

下載安裝成功后,在手機(jī)調(diào)試器中點(diǎn)擊切換運(yùn)行平臺(tái)至org.hapjs.mockup,即可在平臺(tái)預(yù)覽版上安裝運(yùn)行 rpk 包

開發(fā)調(diào)試

在手機(jī)上安裝完調(diào)試器后,就可以執(zhí)行 Taro 的快應(yīng)用編譯命令開始編譯了

$ taro build --type quickapp --watch

在編譯完成后會(huì)遇到如下輸出結(jié)果

Taro 在將代碼編譯完后,會(huì)自動(dòng)下載快應(yīng)用的容器模板,同時(shí)安裝好相關(guān)的依賴,隨后就會(huì)自動(dòng)啟動(dòng)快應(yīng)用的服務(wù),此時(shí),只需要使用手機(jī)上安裝的調(diào)試器掃碼就能直接在手機(jī)上進(jìn)行調(diào)試了。

使用 IDE

https://doc.quickapp.cn/tutorial/ide/overview.html

快應(yīng)用配置

在 Taro 編譯適配快應(yīng)用需要進(jìn)行一些配置,適配的具體原因可以參考Taro和快應(yīng)用配置差異,通過(guò)在項(xiàng)目根目錄下添加 project.quickapp.json 大體的配置項(xiàng)可以參考快應(yīng)用官方文檔的 manifest 配置,而 Taro 中支持以下配置:

屬性類型默認(rèn)值必填描述
packageString-應(yīng)用包名,確認(rèn)與原生應(yīng)用的包名不一致,推薦采用 com.company.module 的格式,如:com.example.demo
nameString-應(yīng)用名稱,6 個(gè)漢字以內(nèi),與應(yīng)用商店保存的名稱一致,用于在桌面圖標(biāo)、彈窗等處顯示應(yīng)用名稱
iconString-應(yīng)用圖標(biāo),提供 192x192 大小的即可
versionNameString-應(yīng)用版本名稱,如:"1.0"
versionCodeInteger-應(yīng)用版本號(hào),從1自增,推薦每次重新上傳包時(shí)versionCode+1
minPlatformVersionInteger-支持的最小平臺(tái)版本號(hào),兼容性檢查,避免上線后在低版本平臺(tái)運(yùn)行并導(dǎo)致不兼容;如果不填按照內(nèi)測(cè)版本處理
featuresArray-接口列表,絕大部分接口都需要在這里聲明,否則不能調(diào)用,詳見(jiàn)每個(gè)接口的文檔說(shuō)明
configObject-系統(tǒng)配置信息,詳見(jiàn)說(shuō)明
subpackages 1040+Object-定義并啟用分包加載,詳見(jiàn)說(shuō)明

可以看出,相比于快應(yīng)用官方的配置項(xiàng),Taro 中支持的配置項(xiàng)缺少了 router 與 display 配置,這是因?yàn)檫@兩項(xiàng)配置在 Taro 編譯時(shí)會(huì)根據(jù)用戶代碼直接生成,不再需要額外配置。

而為了讓用戶更加方便進(jìn)行快應(yīng)用相關(guān)配置,Taro 增加了一些額外的配置項(xiàng),例如:

customPageConfig 是為了讓用戶可以為每個(gè)頁(yè)面配置快應(yīng)用獨(dú)有的 filter 與 launchMode 它直接配置在 project.quickapp.json 中,它是一個(gè)對(duì)象的類型,其 key 值即為頁(yè)面路徑,與 入口文件 中 config 下 pages 數(shù)組中配置的頁(yè)面路徑保持一致,常見(jiàn)例子如下

{
  "customPageConfig": {
    "pages/index/index": {
      "filter": {
        "<action>": {
          "uri": "<pattern>"
        }
      },
      "launchMode": "standard"
    }
  }
}

一個(gè)典型的 project.quickapp.json 配置參考例子

Taro組件和快應(yīng)用組件差異剖析

? Taro已經(jīng)可以編譯出可在微信/百度/支付寶/字節(jié)跳動(dòng)小程序、H5、React-Native運(yùn)行的代碼,近期也增加了快應(yīng)用的支持,那必不可少的一步就是組件庫(kù)的轉(zhuǎn)換,眾所周知小程序開發(fā)離不開三大要素——界面表現(xiàn)(結(jié)構(gòu)、外觀)層、邏輯處理層與系統(tǒng)接口層(網(wǎng)絡(luò)、存儲(chǔ)與媒體等),其中界面結(jié)構(gòu)指的就是組件庫(kù),那立足于微信小程序的Taro組件和快應(yīng)用組件有何異同?Taro是如何處理這些差異的?且看下文.

? 小程序官網(wǎng)放出來(lái)了一個(gè)體驗(yàn)小程序用來(lái)展示它的組件 / API / 云開發(fā)能力,快應(yīng)用官方也出了一個(gè)能力展示的開源項(xiàng)目sample,乍看好像差不多,其實(shí)兩者之間的差異還是很多的,由于Taro組件基本上是微信小程序組件變?yōu)槭鬃帜复髮懼笮纬傻模旅嬉晕⑿判〕绦蚪M件為基準(zhǔn),看看快應(yīng)用的組件能力如何,首先看視圖容器:

視圖容器

微信小程序組件功能說(shuō)明對(duì)應(yīng)快應(yīng)用組件Taro如何模擬
cover-image覆蓋在原生組件之上的圖片視圖無(wú)用image模擬,丟失bindload和binderror事件
cover-view覆蓋在原生組件之上的文本視圖無(wú)用div模擬,丟失scroll-top屬性
movable-areamovable-view的可移動(dòng)區(qū)域無(wú)用div模擬,丟失scale-area屬性
movable-view可移動(dòng)的視圖容器,在頁(yè)面中可以拖拽滑動(dòng)無(wú)用div模擬,丟失所有屬性
scroll-view可滾動(dòng)視圖區(qū)域無(wú)用div模擬,丟失所有屬性
swiper滑塊視圖容器swiper指示點(diǎn)顏色可通過(guò)樣式補(bǔ)齊、丟失previous-margin、easing-function等屬性,
swiper-item僅可放置在swiper組件中,寬高自動(dòng)設(shè)置為100%無(wú)用text或image模擬,丟失item-id屬性
view視圖容器無(wú)用div模擬,丟失所有屬性

再來(lái)看基礎(chǔ)組件和表單組件:

基礎(chǔ)組件

微信小程序組件功能說(shuō)明對(duì)應(yīng)快應(yīng)用組件Taro如何模擬
icon圖標(biāo)無(wú)用div模擬,丟失type\size\color屬性
progress進(jìn)度條progress只保留了percent屬性
rich-text富文本richtextnodes屬性做一次AST映射到變量中,丟失space屬性
text文本text少有的比微信豐富的組件,模擬之后丟失所有屬性

表單組件

名稱功能說(shuō)明對(duì)應(yīng)快應(yīng)用組件Taro如何模擬
button按鈕無(wú)用div模擬,丟失所有屬性
checkbox多選項(xiàng)目無(wú)用input模擬,丟失color屬性,仿真度高
checkbox-group多項(xiàng)選擇器,內(nèi)部由多個(gè)checkbox組成無(wú)用div模擬,丟失所有屬性
editor富文本編輯器,可以對(duì)圖片、文字進(jìn)行編輯無(wú)用richtext模擬,丟失所有屬性
form表單無(wú)用div模擬,丟失所有屬性
input輸入框input丟失passwd、bindinput等屬性
label用來(lái)改進(jìn)表單組件的可用性labelfor屬性對(duì)應(yīng)target,但不支持子組件模擬
picker從底部彈起的滾動(dòng)選擇器picker丟失省市選擇器類型,轉(zhuǎn)換規(guī)則隨type變化,模擬復(fù)雜
picker-view嵌入頁(yè)面的滾動(dòng)選擇器無(wú)用div模擬,丟失所有屬性
picker-view-column滾動(dòng)選擇器子項(xiàng)無(wú)用div模擬,丟失所有屬性
radio單選項(xiàng)目無(wú)用input模擬,丟失color屬性,仿真度高
radio-group單項(xiàng)選擇器,內(nèi)部由多個(gè) radio 組成無(wú)用div模擬,丟失所有屬性
slider滑動(dòng)選擇器slider丟失color、block-size等屬性
switch開關(guān)選擇器switch丟失color、disabled等屬性
textarea多行輸入框textarea只保留了placeholder、maxlength屬性

最后是不常用到的導(dǎo)航、媒體、地圖和畫布組件對(duì)比

導(dǎo)航

名稱功能說(shuō)明對(duì)應(yīng)快應(yīng)用組件Taro如何模擬
functional-page-navigator僅在插件中有效,用于跳轉(zhuǎn)到插件功能頁(yè)無(wú)用div模擬,丟失所有屬性
navigator頁(yè)面鏈接無(wú)用div模擬,丟失所有屬性

媒體組件

名稱功能說(shuō)明對(duì)應(yīng)快應(yīng)用組件Taro如何模擬
audio音頻無(wú)div+slider+接口方式模擬,僅保留基本功能
camera系統(tǒng)相機(jī)camera僅保留device-position、flash、binderror屬性
image圖片image僅保留src屬性
live-player實(shí)時(shí)音視頻播放無(wú)用div模擬,丟失所有屬性
live-pusher實(shí)時(shí)音視頻錄制無(wú)用div模擬,丟失所有屬性
video視頻video只保留src、autoplay、poster、controls和muted屬性

地圖

名稱功能說(shuō)明對(duì)應(yīng)快應(yīng)用組件Taro如何模擬
map地圖map仿真度較高,屬性可以做到一一映射

畫布

名稱功能說(shuō)明對(duì)應(yīng)快應(yīng)用組件Taro如何模擬
canvas畫布canvas同名但一個(gè)是組件,一個(gè)是通過(guò)API模擬的,只能用div模擬

開放能力

名稱功能說(shuō)明對(duì)應(yīng)快應(yīng)用組件Taro如何模擬
web-view承載網(wǎng)頁(yè)的容器無(wú)通過(guò)web組件仿真
adBanner 廣告無(wú)用div模擬,丟失所有屬性
official-account公眾號(hào)關(guān)注組件無(wú)用div模擬,丟失所有屬性
open-data用于展示微信開放的數(shù)據(jù)無(wú)用div模擬,丟失所有屬性

從上面的數(shù)據(jù)來(lái)看,快應(yīng)用支持的組件還很不完善,如果之前使用Taro開發(fā)微信小程序的話,想直接轉(zhuǎn)到快應(yīng)用是很難的(還有樣式的嚴(yán)格限制),看到這里你可能會(huì)對(duì)快應(yīng)用有點(diǎn)失望,但是快應(yīng)用在手機(jī)端的原生渲染性能是微信小程序不能比的,下面的快應(yīng)用特色組件會(huì)讓你刮目相看:

1.使用list+list-item實(shí)現(xiàn)流暢的滾動(dòng)列表

2.新鮮的氣泡組件popup

3.想實(shí)現(xiàn)蓋樓功能? 看看這個(gè)堆疊組件stack

4.快應(yīng)用也有tabbar,tabs / tab-bar/tab-content三劍客

5.外賣應(yīng)用必不可少的星級(jí)評(píng)分組件rating

以上就是Taro組件和快應(yīng)用組件的一個(gè)概覽對(duì)比,總結(jié)來(lái)說(shuō),如果想實(shí)現(xiàn)多端一致,請(qǐng)盡量在Taro里面使用仿真度高的組件,比如Swiper、Image、Text、Input、Label、Picker、Video、Map、Camera、Canvas、Slider、Textarea等,隨著快應(yīng)用不斷完善,相信這些差異會(huì)逐漸補(bǔ)齊的。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)