1、打開HBuilderX App版
新建項目

配置模擬器端口

device
Device模塊管理設備信息,用于獲取手機設備的相關信息,如IMEI、IMSI、型號、廠商等。通過plus.device獲取設備信息管理對象。
屬性:
<h3>信息獲取</h3>
<p>uuid:<span id="uuid"></span></p>
<p>os: <span id="osName"></span></p>
<p>廠商: <span id="vendor"></span></p>
<p>網絡:<span id="net"></span></p>
document.addEventListener('plusready', function(){
//console.log("所有plus api都應該在此事件發(fā)生后調用,否則會出現plus is undefined。"
uuid.innerHTML = plus.device.uuid;
osName.innerHTML = plus.os.name;
vendor.innerHTML = plus.device.vendor;
net.innerHTML = plus.networkinfo.getCurrentType()===3?'wifi':'其他';
// 0 -6 3是wifi 4是2g 5 3g 6 4g
});
runtime
Runtime模塊管理運行環(huán)境,可用于獲取當前運行環(huán)境信息、與其它程序進行通訊等。通過plus.runtime可獲取運行環(huán)境管理對象。
方法
<h3>運行時</h3>
<p>
<button onclick="plus.runtime.quit()">退出應用</button> |
<button onclick="plus.runtime.restart()">重啟應用</button>
</p>
plus.key.addEventListener("backbutton",()=>{
plus.nativeUI.confirm("確認要關閉app?",(e)=>{
if(e.index==0){
plus.runtime.quit();
// 如果用戶單擊的是確定,退出app
}
})
})
nativeUI
nativeUI管理系統(tǒng)原生界面,可用于彈出系統(tǒng)原生提示對話框窗口、時間日期選擇對話框、等待對話框等。
方法:
- actionSheet: 彈出系統(tǒng)選擇按鈕框
- alert: 彈出系統(tǒng)提示對話框
- confirm: 彈出系統(tǒng)確認對話框
- closeWaiting: 關閉系統(tǒng)等待對話框
- closeToast: 關閉自動消失的提示消息
- previewImage: 預覽圖片
- showWaiting: 顯示系統(tǒng)等待對話框
- pickDate: 彈出系統(tǒng)日期選擇對話框
- pickTime: 彈出系統(tǒng)時間選擇對話框
- prompt: 彈出系統(tǒng)輸入對話框
- toast: 顯示自動消失的提示消息
- setUIStyle: 設置原生界面樣式(暗黑模式)
alert
彈出系統(tǒng)提示對話框
創(chuàng)建并顯示系統(tǒng)樣式提示對話框,可設置提示對話框的標題、內容、按鈕文字等。 彈出的提示對話框為非阻塞模式,用戶點擊提示對話框上的按鈕后關閉,并通過alertCB回調函數通知對話框已關閉。
示例:
// 彈出系統(tǒng)提示對話框
function showAlert(){
plus.nativeUI.alert("你好程序員",()=>console.log("用戶點擊"),"原生彈出","確定")
// 彈出內容,回調函數,標題,確定按鈕文字
}
confirm
彈出系統(tǒng)確認對話框
創(chuàng)建并顯示系統(tǒng)樣式確認對話框,可設置確認對話框的標題、內容、按鈕數目及其文字。 彈出的確認對話框為非阻塞模式,用戶點擊確認對話框上的按鈕后關閉,并通過confirmCB回調函數通知用戶點擊的按鈕索引值。
示例:
// 彈出提示信息對話框
function showConfirm(){
plus.nativeUI.confirm("Are you sure ready?", function(e){
console.log("Close confirm: "+e.index);
});
}
showWaiting
顯示系統(tǒng)等待對話框
創(chuàng)建并顯示系統(tǒng)樣式等待對話框,并返回等待對話框對象Waiting,顯示后需調用其close方法進行關閉。
示例:
// 彈出系統(tǒng)等待對話框
function showWaiting(){
var w = plus.nativeUI.showWaiting("等待中...");
}
pickDate
彈出系統(tǒng)日期選擇對話框
創(chuàng)建并顯示系統(tǒng)樣式日期選擇對話框,可進行日期的選擇。 用戶操作確認后通過successCB回調函數返回用戶選擇的日期,若用戶取消選擇則通過errorCB回調。
function pickDate(){
var styles = {};
styles.title = "請選擇日期:"; // 顯示標題
styles.date = new Date(), styles.date.setFullYear(2020,4,24);// 默認顯示的日期
styles.minDate = new Date(), styles.minDate.setFullYear(2010,0,1);// 設置最小可選日期為“2010-01-01”
styles.maxDate = new Date(), styles.maxDate.setFullYear(2020,11,31);// 設置最大可選日期為“2020-12-31”
plus.nativeUI.pickDate(function(e){
var d=e.date;
console.log( "選擇的日期:"+d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate() );
}, function(e){
console.log( "未選擇日期:"+e.message );
}, styles);
}
share
Share模塊管理客戶端的社交分享功能,提供調用終端社交軟件的分享能力。通過plus.share可獲取社交分享管理對象。
分享接口支持開發(fā)者獲取設備上安裝的社交App環(huán)境,調用社交App進行分享操作。若當前設備安裝了對應的社交App,則調用此App的分享操作界面,否則調用WAP頁面進行分享。
function share(){
window.plusShare({
title:"神級網站",
content:"解決程序員99%煩惱",
href:"http://www.baidu.com",
thumbs:["http://520mg.com/source/images/640.jpg"]//圖片
},res=>{plus.nativeUI.toast("分享成功")})
}
camera
Camera模塊管理設備的攝像頭,可用于拍照、攝像操作,通過plus.camera獲取攝像頭管理對象。
方法:
- getCamera: 獲取攝像頭管理對象
getCamera
獲取攝像頭管理對象
function appendByCamera(){
plus.camera.getCamera().captureImage(p=>appendFile(p),e=>console.log("錯誤:"+e),
{filename:'_doc/camera/',index:1});
// 插件 獲取相機,獲取圖片,成功執(zhí)行回調函數 把p傳遞給appendFile函數
}
function appendFile(p){
// 獲取文件名
var n = p.substr(p.lastIndexOf("/")+1);
console.log("文件名"+n)
// 獲取 文件p地址的最后一個斜杠后文本(文件名)
// lastIndexOf從后面查找字符串,并返回它的位置
myfile.innerHTML = n; // 顯示文件的后綴名
file = p; //把p 賦值給 file
}
gallery
Gallery模塊管理系統(tǒng)相冊,支持從相冊中選擇圖片或視頻文件、保存圖片或視頻文件到相冊等功能。通過plus.gallery獲取相冊管理對象。
方法:
pick
function appendFile(p){
// 獲取文件名
var n = p.substr(p.lastIndexOf("/")+1);
console.log("文件名"+n)
// 獲取 文件p地址的最后一個斜杠后文本(文件名) lastIndexOf從后面查找字符串,并返回它的位置
myfile.innerHTML = n; // 顯示文件的后綴名
file = p; //把p 賦值給 file
}
function appendByGallery(){
plus.gallery.pick(p=>appendFile(p))
}
save
function photo(){
plus.camera.getCamera().captureImage(
p=>{
plus.gallery.save(p,s=>console.log("成功",s),se=>console.log("失敗",se));
// 圖片保存再相冊中;
// 把當前的圖片插入到 咱們網頁中
// p這個文件地址不是實際的絕對地址
plus.io.resolveLocalFileSystemURL( p,
entry=>{
var pa = document.createElement("p");
// 創(chuàng)建p元素
pa.innerHTML=`<img width="160" src="${entry.toLocalURL()}"/>`;
// 設置p的內容為圖片
picbox.appendChild(pa);}
);
},
e=>{},
{});
//成功,失敗,拍照選項
}
// 實現 拍照,保存到相冊,插入網頁中
// plus.camera.getCamera().captureImage() 拍照 : 成功回調 ,失敗回調,拍照參數
// plus.gallery.save 保存圖片到相冊 :圖片地址,成功回調,失敗回調
// plus.io.resolveLocalFileSystemURL 解析文件地址:成回調,失敗回調
// 成回調 entery.toLocalURl() 把文件地址解析為本地urL
uploader
Uploader模塊管理網絡上傳任務,用于從本地上傳各種文件到服務器,并支持跨域訪問操作。通過plus.uploader可獲取上傳管理對象。Uploader上傳使用HTTP的POST方式提交數據,數據格式符合Multipart/form-data規(guī)范,即rfc1867(Form-based File Upload in HTML)協(xié)議。
方法:
- createUpload: 新建上傳任務
- clear: 清除上傳任務
function upload(){
// 如果沒有file 就提示
if(!file){plus.nativeUI.alert("你還沒有選中文件啦");return;}
var url = "http://www.520mg.com/ajax/file.php";
var task = plus.uploader.createUpload(
url,
{method:'POST'},
(t,status)=>{
if(status==200){
console.log("上傳成功");
var picurl = "http://www.520mg.com"+JSON.parse(t.responseText).pic;
// 圖片的遠程地址
var p = document.createElement("p");
// 創(chuàng)建p元素
p.innerHTML=`<img width="160" src="${picurl}"/>`;
// 設置p的內容為圖片
picbox.appendChild(p);
// 把p內容插入到picbox里面
}else{
console.log("上傳失?。?+status);
}
})
// task上傳的任務
// 上傳地址 ,上傳方法配置,回調函數
task.addFile(file,{key:"file"});
// 給上傳任務添加文件
task.start();
// 開始上傳
}
webview
Webview模塊管理應用窗口界面,實現多窗口的邏輯控制管理操作。通過plus.webview可獲取應用界面管理對象。
方法:
- all: 獲取所有Webview窗口
- close: 關閉Webview窗口
- create: 創(chuàng)建新的Webview窗口
- currentWebview: 獲取當前窗口的WebviewObject對象
- getDisplayWebview: 獲取屏幕所有可視的Webview窗口
- getWebviewById: 查找指定標識的WebviewObject窗口
- getLaunchWebview: 獲取應用首頁WebviewObject窗口對象
- getSecondWebview: 獲取應用第二個首頁WebviewObject窗口對象
- getTopWebview: 獲取應用顯示棧頂的WebviewObject窗口對象
- hide: 隱藏Webview窗口
- open: 創(chuàng)建并打開Webview窗口
- prefetchURL: 預載網絡頁面
- prefetchURLs: 預載網絡頁面(多個地址)
- show: 顯示Webview窗口
- startAnimation: Webview窗口組合動畫
-
defaultHardwareAccelerated: 獲取Webview默認是否開啟硬件加速
示例:
var _openw = null;
function openAbout(){
if(_openw){return;}//防止快速點擊;
_openw = plus.webview.create('./about.html','about',{
backButtonAutoControl:'close',//當返回的時候關閉webview(當前的窗口)
// 設置標題
titleNView:{
autoBackButton:true,//默認返回按鈕
backgroundColor:"#F30", //標題欄顏色,
titleText:'關于我們',//標題欄文本,
titleColor:"#fff",
buttons:[{
type:'share',
onclick:()=>alert("分享被點擊了")
}]
}
})
_openw.addEventListener('close',()=>_openw=null);//當關閉時候清空當前webView
_openw.show('slide-in-right');
}
function openPage(url,title,bgcolor){
plus.navigator.setStatusBarBackground(bgcolor);
if(_openw){return;}//防止快速點擊;
_openw = plus.webview.create(url,title,{
backButtonAutoControl:'close',//當返回的時候關閉webview(當前的窗口)
// 設置標題
titleNView:{
autoBackButton:true,//默認返回按鈕
backgroundColor:bgcolor, //標題欄顏色,
titleText:title,//標題欄文本,
titleColor:"#fff",
progress:{color:"#fff"},
// 設置進度條的顏色為白色
buttons:[{
type:'share',
onclick:()=>alert("分享被點擊了")
}]
}
})
_openw.addEventListener('close',()=>{_openw=null;plus.navigator.setStatusBarBackground("#f30");});//當關閉時候清空當前webView
_openw.show('slide-in-right');
}