H5+ App基础

HTML5 Plus移动App,简称5+App,是一种基于HTML、JS、CSS编写的运行于手机端的App,这种App可以通过扩展的JS API任意调用手机的原生能力,实现与原生App同样强大的功能和性能。

开发环境

HBuilderX

创建应用

  • 启动HBuilderX,在菜单栏中选择“文件”-> “新建”->“项目”
  • 选择5+App,在应用名称中输入项目名称,选择项目目录,选择默认模板
  • 点击创建
step1.png

调用API

对于HTML5+应用的页面有一个很重要的“plusready”事件,此事件会在页面加载后自动触发,表示所有HTML5+ API可以使用,在此事件触发之前不能调用HTML5+ API,所以应该在此事件回调函数中调用页面初始化需要调用的HTML5+ API,而不应该在onload或DOMContentLoaded事件中调用

<!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">   
// 扩展API是否准备好,如果没有则监听“plusready"事件  
if(window.plus){  
    plusReady();  
}else{   
    document.addEventListener( "plusready", plusReady, false );  
}  
// 扩展API准备完成后要执行的操作  
function plusReady(){    
    // 输出设备的生产厂商
    document.querySelector('#vendor').innerText = plus.device.vendor
}  
    </script>   
</head>   
<body>
    <p>设备厂商:<span id="vendor"></span></p>
</body>  
</html>

device

Device模块管理设备信息,用于获取手机设备的相关信息,如IMEI、IMSI、型号、厂商等。通过plus.device获取设备信息管理对象。

常用属性

  • imei: 设备的国际移动设备身份码
  • imsi: 设备的国际移动用户识别码
  • model: 设备的型号
  • vendor: 设备的生产厂商
  • uuid: 设备的唯一标识
  • networkinfo: 用于获取网络信息

networkinfo是一个对象

    //设备的国际移动设备身份码
    plus.device.imei
    
    //设备的网络信息
    plus.networkinfo

runtime

Runtime模块管理运行环境,可用于获取当前运行环境信息、与其它程序进行通讯等。通过plus.runtime可获取运行环境管理对象。

常用方法

  • restart: 重启
  • quit:退出
    // 重启APP
    plus.runtime.restart()
    
    // 退出APP
    plus.runtime.quit()

camera

Camera模块管理设备的摄像头,可用于拍照、摄像操作,通过plus.camera获取摄像头管理对象。

拍照

// getCamera返回获取摄像头管理对象,调用该对象的captureImage方法进行拍照操作,该方法接受3个参数,1.成功的回调函数,有一个路径参数,必选 2.失败的回调函数  3. 摄像头拍照参数
plus.camera.getCamera().captureImage((path) => {
    // ...code
})

gallery

Gallery模块管理系统相册,支持从相册中选择图片或视频文件、保存图片或视频文件到相册等功能。通过plus.gallery获取相册管理对象。

常用方法

  • pick: 从系统相册选择文件(图片或视频)
  • save: 保存文件到系统相册中
// 从相册中选择图片 
function galleryImg() {
    // 从相册中选择图片
    console.log("从相册中选择图片:");
    plus.gallery.pick( function(path){
        console.log(path);
    }, function ( e ) {
        console.log( "取消选择图片" );
    }, {filter:"image"} );
}

// 保存图片到相册中 
function savePicture() {
    plus.gallery.save( "_doc/img.jpg", function () {
        alert( "保存图片到相册成功" );
    } );
}
    

nativeUI

nativeUI管理系统原生界面,可用于弹出系统原生提示对话框窗口、时间日期选择对话框、等待对话框等。

常用方法

  • alert: 弹出系统提示对话框
  • confirm: 弹出系统确认对话框
  • previewImage: 预览图片
  • showWaiting: 显示系统等待对话框
  • pickDate: 弹出系统日期选择对话框
  • pickTime: 弹出系统时间选择对话框
  • prompt: 弹出系统输入对话框
  • toast: 显示自动消失的提示消息
<script>
    function wait() {
        let w = plus.nativeUI.showWaiting('正在等待系统响应');
        setTimeout(() => {
            w.close()
        }, 2000)
    }
</script>

<button onclick="wait()">系统等待</button>

<button onclick="plus.nativeUI.toast('欢迎')">Toast轻提示</button>

<button onclick="plus.nativeUI.alert('警告弹窗?',function () {},'Alert警告','关闭警告')">Alert警告</button>

<button onclick="plus.nativeUI.confirm('今天天气不错!')">confirm对话框</button>

<button onclick="plus.nativeUI.prompt('请输入内容')">prompt输入框</button>

<button onclick="plus.nativeUI.previewImage(['https://i.loli.net/2020/02/20/koUiZ8OCDabPhYt.jpg'])">预览图片</button>

<button onclick="plus.nativeUI.pickDate((e) => {plus.nativeUI.toast(e.date)})">选择日期</button>

<button onclick="plus.nativeUI.pickTime((e) => {plus.nativeUI.toast(e.date)})">选择时间</button>

webview

Webview模块管理应用窗口界面,实现多窗口的逻辑控制管理操作。通过plus.webview可获取应用界面管理对象。

常用方法

  • close: 关闭Webview窗口
  • create: 创建新的Webview窗口
  • currentWebview: 获取当前窗口的WebviewObject对象
    // 获取当前Webview窗口对象
    var ws=plus.webview.currentWebview();
    console.log( "当前Webview窗口:"+ws.getURL() );
    
    // 创建并显示新窗口
    var w = plus.webview.create('https://aiav.vip');
    w.show(); // 显示窗口
    
    // 关闭Webview窗口

    var ws=plus.webview.currentWebview();
    plus.webview.close(ws);

完整API详情请查看官方API文档

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容