cordova 对于插件的使用,需要先进行安装
cordova plugin add cordova-plugin-battery-status
注意点:插件的事件监听以及插件方法的调用,一定要在 deviceready 准备完成之后调用
所有的事件,都会返回一个 status 对象,这个对象里面有两个属性
// 检测设备是否连接成功
document.addEventListener('deviceready', onDeviceReady, false);
function onDeviceReady() {
// 电池插件监听电池电量和充电状态
window.addEventListener("batterystatus", onBatteryStatus, false);
}
function onBatteryStatus(status) {
log(`level:${
status.level}`)
log(`isPlugged:${
status.isPlugged}`)
console.log("Level: " + status.level + " isPlugged: " + status.isPlugged);
}
function log (msg) {
let p = document.createElement('p')
p.style.fontSize = '16px'
p.innerHTML = msg
document.body.appendChild(p)
}
显示效果
cordova-plugin-camera
这个插件定义了一个全局的 navigator.camera
对象,它提供了一个用于拍照和从系统的图像库中选择图像的API。
尽管该对象附加到全局作用域的 navigator
,但它只有在deviceready事件之后才可用。
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
console.log(navigator.camera);
}
Installation
这需要cordova 5.0以上
cordova plugin add cordova-plugin-camera
API参考
camera
function
function
Object
Camera
enum
enum
enum
enum
enum
enum
CameraPopoverHandle
CameraPopoverOptions
camera
camera.getPicture(successCallback, errorCallback, options)
使用相机拍照,或从设备的图片库中检索照片。图像作为base64编码的字符串或图像文件的URI传递给成功回调。
successCallback 表示的是成功的回调,返回的是一个图片地址,或者 base64的字符串
errorCallback 表示的是失败的回调,返回的是一个失败的提示
options 表示的是 相机的自定义设置,都有以下参数
Name | Type | default | description |
---|---|---|---|
quality | number | 50 | 保存的图像的质量,表示为范围为0-100,其中100通常是完全分辨率,没有文件压缩损失。(请注意,该相机的分辨率信息不可用。) |
destinationType | DestinationType | FILE_URI | 选择返回值的格式 |
sourceType | PictureSourceType | CAMERA | 设置图片的来源。 |
allowEdit | Boolean | true | 允许简单的编辑图像之前选择。 |
encodingType | EncodingType | JPEG | 选择返回的图像文件的编码。 |
targetWidth | number | 以像素为单位的宽度来缩放图像。必须正确使用。高宽比保持不变。 | |
targetHeight | number | 以像素为单位的高度来缩放图像。必须与目标一起使用。高宽比保持不变。 | |
mediaType | MediaType | PICTURE | 设置要从中选择的媒体类型。仅当PictureSourceType为PHOTOLIBRARY或SAVEDPHOTOALBUM时有效。 |
correctOrientation | Boolean | 旋转图像以校正捕获期间设备的方向。 | |
saveToPhotoAlbum | Boolean | 捕获后将图像保存到设备上的相册中。 | |
popoverOptions | CameraPopoverOptions | 仅在iPad中指定弹窗位置的ios选项。 | |
cameraDirection | Direction | BACK | 选择要使用的相机(前置或后置)。 |
cordova-plugin-console
这个插件旨在确保console.log()尽可能有用。它为iOS、Ubuntu、Windows Phone 8和Windows系统增加了额外的功能。
这个插件定义了一个全局 console
对象。
尽管该对象附加到全局范围内的 console
,但它只有在deviceready事件之后才可用。
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
console.log("console.log works well");
}
Installation
cordova plugin add cordova-plugin-console
Supported Methods
console.log
console.error
console.exception
console.warn
console.info
console.debug
console.assert
console.dir
console.dirxml
console.time
console.timeEnd
console.table
这个插件定义了一个全局的 navigator.contacts
对象, 该对象提供对设备联系人数据库的访问。
尽管该对象附加到全局作用域的 navigator
,但它只有在deviceready事件之后才可用。
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
console.log(navigator.contacts);
}
Installation
这需要cordova 5.0以上
cordova plugin add cordova-plugin-contacts
cordova-plugin-device
这个插件定义了一个全局 device
对象,它描述了设备的硬件和软件。尽管该对象在全局作用域中,但它只有在deviceready事件之后才可用。
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
console.log(device.cordova);
}
Installation
cordova plugin add cordova-plugin-device
cordova-plugin-device-motion
这个插件提供了对设备加速计的访问。加速度计是一种运动传感器,它在x、y和z轴上检测相对于当前设备方向的运动变化(delta)。
访问是通过一个全局的 navigator.accelerometer
对象
尽管该对象附加到全局作用域的 navigator
,但它只有在deviceready事件之后才可用。
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
console.log(navigator.accelerometer);
}
Installation
cordova plugin add cordova-plugin-device-motion
cordova-plugin-device-orientation
这个插件提供了对设备指南针的访问。指南针是一个传感器,用于探测设备指向的方向或方向,通常从设备的顶部开始。它测量航向的角度从0到359.99,其中0是北。
访问是通过一个全局的 navigator.compass
对象
尽管该对象附加到全局作用域的 navigator
,但它只有在deviceready事件之后才可用。
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
console.log(navigator.compass);
}
Installation
cordova plugin add cordova-plugin-device-orientation
cordova-plugin-dialogs
这个插件提供了 通过 全局的navigator.notification
对象,访问一些原生对话框 UI元素的功能。
尽管该对象附加到全局作用域的 navigator
,但它只有在deviceready事件之后才可用。
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
console.log(navigator.notification);
}
Installation
cordova plugin add cordova-plugin-dialogs
cordova-plugin-file
这个插件实现了一个文件API,允许对驻留在设备上的文件进行读/写访问。
这个插件定义了一个全局的 cordova.file
对象
尽管在全局范围中,它只有在deviceready事件之后才可用。
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
console.log(cordova.file);
}
Installation
cordova plugin add cordova-plugin-file
cordova-plugin-file-transfer
这个插件允许你上传和下载文件。
这个插件定义了全局FileTransfer
, FileUploadOptions
构造函数。尽管在全局范围内,它们只有在deviceready事件之后才可用。
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
console.log(FileTransfer);
}
Installation
cordova plugin add cordova-plugin-file
cordova-plugin-geolocation
这个插件提供了关于设备位置的信息,比如纬度和经度。位置信息的常见来源包括全球定位系统(GPS)和从网络信号推断的位置,如IP地址、RFID、WiFi和蓝牙MAC地址和GSM/CDMA小区id。不能保证API返回设备的实际位置。
这个插件定义了一个全局navigator.geolocation
。地理定位对象(用于缺少它的平台)。
尽管该对象在全局范围内,但此插件提供的特性只有在deviceready事件发生后才可用。
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
console.log("navigator.geolocation works well");
}
Installation
cordova plugin add cordova-plugin-geolocation
cordova-plugin-globalization
此插件获取特定于用户地区、语言和时区的信息并执行操作。请注意语言环境和语言之间的区别:语言环境控制一个区域的数字、日期和时间的显示方式,而语言独立于语言环境设置决定语言文本的显示方式。通常开发人员使用locale来设置这两个设置,但是用户没有理由不将语言设置为“英语”,而将locale设置为“法语”,这样文本就会以英语显示,而日期、时间等会以法语显示。不幸的是,大多数移动平台目前并不区分这些设置。
这个插件定义了全局的 navigator.globalization
对象
尽管该对象在全局范围内,但此插件提供的特性只有在deviceready事件发生后才可用。
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
console.log(navigator.globalization);
}
Installation
cordova plugin add cordova-plugin-globalization
cordova-plugin-inappbrowser
这个插件提供了一个web浏览器视图,在调用cordova.InAppBrowser.open()时显示。
var ref = cordova.InAppBrowser.open('http://apache.org', '_blank', 'location=yes');
该cordova.InAppBrowser.open()
功能被定义为该window.open()
功能的替代品。window.open()
通过替换window.open,现有调用可以使用InAppBrowser窗口:
window.open = cordova.InAppBrowser.open;
InAppBrowser窗口的行为类似于标准的Web浏览器,并且无法访问Cordova API。因此,如果您需要加载第三方(不可信)内容,而不是将其加载到主Cordova Web视图中,则建议使用InAppBrowser。InAppBrowser不受白名单限制,也不会在系统浏览器中打开链接。
默认情况下,InAppBrowser为用户提供其自己的GUI控件(后退,前进,完成)
为了向后兼容,此插件还挂钩window.open
。但是,插件安装的hook window.open
可能具有意想不到的副作用(尤其是如果仅将此插件作为另一个插件的依赖项包含在内)。 The hook of window.open
将在以后的主要版本中删除。在从插件中删除钩子之前,应用程序可以手动恢复默认行为:
delete window.open // Reverts the call back to it's prototype's default
尽管window.open
在全局范围内,但InAppBrowser直到deviceready
事件发生后才可用。
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
console.log("window.open works well");
}
Installation
cordova plugin add cordova-plugin-inappbrowser
cordova-plugin-media
这个插件提供了记录和播放设备上的音频文件的能力。
这个插件定义了全局的 Media
构造函数
尽管在全局范围内,但此插件提供的特性只有在deviceready事件发生后才可用。
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
console.log(Media);
}
** Installation **
cordova plugin add cordova-plugin-media
cordova-plugin-media-capture
这个插件提供了对设备的音频、图像和视频捕获功能的访问。
这个插件定义了全局的 navigator.device.capture
对象
尽管在全局范围内,但此插件提供的特性只有在deviceready事件发生后才可用。
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
console.log(navigator.device.capture);
}
Installation
cordova plugin add cordova-plugin-media-capture
cordova-plugin-network-information
这个插件提供了一个旧版本的网络信息API的实现。它提供设备的蜂窝和wifi连接信息,以及设备是否有互联网连接。
Installation
cordova plugin add cordova-plugin-network-information
cordova-plugin-splashscreen
这个插件需要与启动屏幕工作。这个插件在应用程序启动时显示和隐藏启动屏幕
Installation
// npm hosted (new) id
cordova plugin add cordova-plugin-splashscreen
// you may also install directly from this repo
cordova plugin add https://github.com/apache/cordova-plugin-splashscreen.git
cordova-plugin-vibration
这个插件提供了震动设备的方法。
这个插件定义了全局对象,包括navigator.vibrate
。
尽管在全局范围内,它们只有在deviceready事件之后才可用。
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
console.log(navigator.vibrate);
}
Installation
cordova plugin add cordova-plugin-vibration
cordova-plugin-statusbar
StatusBar对象提供了一些自定义iOS和Android状态栏的功能。
Installation
这种安装方法需要cordova 5.0以上
cordova plugin add cordova-plugin-statusbar
cordova-plugin-statusbar
这个插件实现了一个在Cordova 4.0上导航应用webview的白名单策略