騰訊DeepOcean原創文章:dopro.io/quick.html
快應用是什麼
快應用官網給出的解釋:1、快應用是基於手機硬體平臺的新型應用形態,標準是由主流手機廠商組成的快應用聯盟聯合制定。
2、快應用標準的誕生將在研發介面、能力接入、開發者服務等層面建設標準平臺,以平臺化的生態模式對個人開發者和企業開發者全品類開放。
3、快應用具備傳統APP完整的應用體驗,無需安裝、即點即用。
簡單來說快應用就是國內幾大手機廠商聯合推出的免安裝應用,類似於微信的小程式,使用者不用安裝應用,即點即用,如圖所示,在oppo搜尋介面中出現的是一款騰訊動漫的快應用。
快應用如何開發
一、準備工作
1、安裝hap-toolkitnpm install -g hap-toolkit
複製程式碼
2、建立專案
hap init <ProjectName>
複製程式碼
3、手機安裝偵錯程式
4、編輯器設定
這裡採用的是vscode,快應用的檔案都是帶有ux字尾,需要安裝hap擴充套件外掛
二、程式碼結構
比較重要的是manifest.json檔案,它包含了應用描述、介面宣告、頁面路由資訊
{
"package": "com.application.demo",
"name": "appName",
"icon": "/Common/icon.png",
"versionName": "1.0",
"versionCode": 1,
"minPlatformVersion": 1000,
"features": [
{ "name": "system.network" },
{ "name": "system.fetch" },
],
"permissions": [
{ "origin": "*" }
],
"config": {
"logLevel": "debug"
},
"router": {
"entry": "Demo",
"pages": {
"Demo": {
"component": "index"
},
}
},
"display": {
"titleBarBackgroundColor": "#252525",
"titleBarTextColor": "#FFFFFF",
"titleBar": true,
"menu": true,
"pages": {
"Demo": {
"titleBar": false
},
}
}}
複製程式碼
其中”features”是介面列表,比如網路、通知能力,類似java引入jar包方式 ; config.logLevel設定為debug模式,表示允許所有級別的日誌輸出。
*.ux檔案的編碼方式和vue類似,都是分為template、style、script三塊,但還是有一定區別: 如data變為了private,沒有methods,方法直接跟隨在private後面
<script>
import prompt from '@system.prompt'
import router from '@system.router'
import share from '@system.share'
import fetch from '@system.fetch'
export default {
private: {
titleBar: {
'type': 'titleBar',
'config': {
'title': '企鵝電競'
}
},
fetchedData: [],
list:[]
},
onInit () {
this.fetchDataListAsync()
},
}
複製程式碼
三、生命週期
vue的生命週期主要是beforeCreate、created、beforeMount、mounted、beforeUpdate、updated、beforeDestroy、destroyed;而快應用頁面生命週期是onInit、onReady、onShow、onHide、onDestroy、onBackPress、onMenuPress,此外還包含了APP的生命週期:onCreate、onDestroy
四、釋出
需要在各個手機廠商開發平臺註冊開發者賬號,然後在快應用官網進行繫結,還是比較麻煩,另外說明下最好是選擇企業註冊,比如oppo的個人開發者只能釋出桌布、主題型別,不能釋出應用五、一個簡單的demo
<import name='titleBar' src='./component-titlebar'></import>
<template>
<div class="doc-page">
<titleBar value="{{titleBar}}"></titleBar>
<list class="list-wrap " columns="2">
<list-item type="listItem" class="list-item flex-column flex-1 " for="{{list}}">
<image class="video-image" src="{{$item.cover_url}}"></image>
<text class="text-title">{{$item.title}}</text>
</list-item>
</list>
<div class="fix-bottom">
<div class="download-btn">
<image class="logo" src="./images/logo.png"></image>
<text class="download-btn-text">發彈幕,看比賽,下載企鵝電競</text>
</div>
</div>
</div>
</template>
複製程式碼
最後
快應用的開發總體來說還算簡單,效能也還不錯,不過也遇到了些問題,比如漸變和圓角不能同時使用、button自帶陰影的樣式問題,另外手機除錯發熱會比較嚴重,出現了溫度過高的警告,希望後面能改進吧。最後,如果希望自家的app能夠獲取更多的流量支援,快應用也是一項不錯的選擇。