H5+

1、打開HBuilderX App版

新建項目

配置模擬器端口

device

Device模塊管理設備信息,用于獲取手機設備的相關信息,如IMEI、IMSI、型號、廠商等。通過plus.device獲取設備信息管理對象。

屬性:

  • imei: 設備的國際移動設備身份碼
  • imsi: 設備的國際移動用戶識別碼
  • model: 設備的型號
  • vendor: 設備的生產廠商
  • uuid: 設備的唯一標識
<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

獲取攝像頭管理對象

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: 從系統(tǒng)相冊選擇文件(圖片或視頻)
  • save: 保存文件到系統(tǒng)相冊中
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é)議。

方法:
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可獲取應用界面管理對象。

方法:
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');
        }
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容