HTML5 Plus移動(dòng)App,簡(jiǎn)稱5+App,是一種基于HTML、JS、CSS編寫的運(yùn)行于手機(jī)端的App,這種App可以通過擴(kuò)展的JS API任意調(diào)用手機(jī)的原生能力,實(shí)現(xiàn)與原生App同樣強(qiáng)大的功能和性能。
開發(fā)環(huán)境
創(chuàng)建應(yīng)用
- 啟動(dòng)HBuilderX,在菜單欄中選擇“文件”-> “新建”->“項(xiàng)目”
- 選擇5+App,在應(yīng)用名稱中輸入項(xiàng)目名稱,選擇項(xiàng)目目錄,選擇默認(rèn)模板
- 點(diǎn)擊創(chuàng)建

調(diào)用API
對(duì)于HTML5+應(yīng)用的頁面有一個(gè)很重要的“plusready”事件,此事件會(huì)在頁面加載后自動(dòng)觸發(fā),表示所有HTML5+ API可以使用,在此事件觸發(fā)之前不能調(diào)用HTML5+ API,所以應(yīng)該在此事件回調(diào)函數(shù)中調(diào)用頁面初始化需要調(diào)用的HTML5+ API,而不應(yīng)該在onload或DOMContentLoaded事件中調(diào)用
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<title>Hello world</title>
<script type="text/javascript">
// 擴(kuò)展API是否準(zhǔn)備好,如果沒有則監(jiān)聽“plusready"事件
if(window.plus){
plusReady();
}else{
document.addEventListener( "plusready", plusReady, false );
}
// 擴(kuò)展API準(zhǔn)備完成后要執(zhí)行的操作
function plusReady(){
// 輸出設(shè)備的生產(chǎn)廠商
document.querySelector('#vendor').innerText = plus.device.vendor
}
</script>
</head>
<body>
<p>設(shè)備廠商:<span id="vendor"></span></p>
</body>
</html>
device
Device模塊管理設(shè)備信息,用于獲取手機(jī)設(shè)備的相關(guān)信息,如IMEI、IMSI、型號(hào)、廠商等。通過plus.device獲取設(shè)備信息管理對(duì)象。
常用屬性
- imei: 設(shè)備的國(guó)際移動(dòng)設(shè)備身份碼
- imsi: 設(shè)備的國(guó)際移動(dòng)用戶識(shí)別碼
- model: 設(shè)備的型號(hào)
- vendor: 設(shè)備的生產(chǎn)廠商
- uuid: 設(shè)備的唯一標(biāo)識(shí)
- networkinfo: 用于獲取網(wǎng)絡(luò)信息
networkinfo是一個(gè)對(duì)象
//設(shè)備的國(guó)際移動(dòng)設(shè)備身份碼
plus.device.imei
//設(shè)備的網(wǎng)絡(luò)信息
plus.networkinfo
runtime
Runtime模塊管理運(yùn)行環(huán)境,可用于獲取當(dāng)前運(yùn)行環(huán)境信息、與其它程序進(jìn)行通訊等。通過plus.runtime可獲取運(yùn)行環(huán)境管理對(duì)象。
常用方法
- restart: 重啟
- quit:退出
// 重啟APP
plus.runtime.restart()
// 退出APP
plus.runtime.quit()
camera
Camera模塊管理設(shè)備的攝像頭,可用于拍照、攝像操作,通過plus.camera獲取攝像頭管理對(duì)象。
拍照
// getCamera返回獲取攝像頭管理對(duì)象,調(diào)用該對(duì)象的captureImage方法進(jìn)行拍照操作,該方法接受3個(gè)參數(shù),1.成功的回調(diào)函數(shù),有一個(gè)路徑參數(shù),必選 2.失敗的回調(diào)函數(shù) 3. 攝像頭拍照參數(shù)
plus.camera.getCamera().captureImage((path) => {
// ...code
})
gallery
Gallery模塊管理系統(tǒng)相冊(cè),支持從相冊(cè)中選擇圖片或視頻文件、保存圖片或視頻文件到相冊(cè)等功能。通過plus.gallery獲取相冊(cè)管理對(duì)象。
常用方法
- pick: 從系統(tǒng)相冊(cè)選擇文件(圖片或視頻)
- save: 保存文件到系統(tǒng)相冊(cè)中
// 從相冊(cè)中選擇圖片
function galleryImg() {
// 從相冊(cè)中選擇圖片
console.log("從相冊(cè)中選擇圖片:");
plus.gallery.pick( function(path){
console.log(path);
}, function ( e ) {
console.log( "取消選擇圖片" );
}, {filter:"image"} );
}
// 保存圖片到相冊(cè)中
function savePicture() {
plus.gallery.save( "_doc/img.jpg", function () {
alert( "保存圖片到相冊(cè)成功" );
} );
}
nativeUI
nativeUI管理系統(tǒng)原生界面,可用于彈出系統(tǒng)原生提示對(duì)話框窗口、時(shí)間日期選擇對(duì)話框、等待對(duì)話框等。
常用方法
- alert: 彈出系統(tǒng)提示對(duì)話框
- confirm: 彈出系統(tǒng)確認(rèn)對(duì)話框
- previewImage: 預(yù)覽圖片
- showWaiting: 顯示系統(tǒng)等待對(duì)話框
- pickDate: 彈出系統(tǒng)日期選擇對(duì)話框
- pickTime: 彈出系統(tǒng)時(shí)間選擇對(duì)話框
- prompt: 彈出系統(tǒng)輸入對(duì)話框
- toast: 顯示自動(dòng)消失的提示消息
<script>
function wait() {
let w = plus.nativeUI.showWaiting('正在等待系統(tǒng)響應(yīng)');
setTimeout(() => {
w.close()
}, 2000)
}
</script>
<button onclick="wait()">系統(tǒng)等待</button>
<button onclick="plus.nativeUI.toast('歡迎')">Toast輕提示</button>
<button onclick="plus.nativeUI.alert('警告彈窗?',function () {},'Alert警告','關(guān)閉警告')">Alert警告</button>
<button onclick="plus.nativeUI.confirm('今天天氣不錯(cuò)!')">confirm對(duì)話框</button>
<button onclick="plus.nativeUI.prompt('請(qǐng)輸入內(nèi)容')">prompt輸入框</button>
<button onclick="plus.nativeUI.previewImage(['https://i.loli.net/2020/02/20/koUiZ8OCDabPhYt.jpg'])">預(yù)覽圖片</button>
<button onclick="plus.nativeUI.pickDate((e) => {plus.nativeUI.toast(e.date)})">選擇日期</button>
<button onclick="plus.nativeUI.pickTime((e) => {plus.nativeUI.toast(e.date)})">選擇時(shí)間</button>
webview
Webview模塊管理應(yīng)用窗口界面,實(shí)現(xiàn)多窗口的邏輯控制管理操作。通過plus.webview可獲取應(yīng)用界面管理對(duì)象。
常用方法
- close: 關(guān)閉Webview窗口
- create: 創(chuàng)建新的Webview窗口
- currentWebview: 獲取當(dāng)前窗口的WebviewObject對(duì)象
// 獲取當(dāng)前Webview窗口對(duì)象
var ws=plus.webview.currentWebview();
console.log( "當(dāng)前Webview窗口:"+ws.getURL() );
// 創(chuàng)建并顯示新窗口
var w = plus.webview.create('https://aiav.vip');
w.show(); // 顯示窗口
// 關(guān)閉Webview窗口
var ws=plus.webview.currentWebview();
plus.webview.close(ws);
完整API詳情請(qǐng)查看官方API文檔