Cordova
学习/参考资料
https://cordova.apache.org/
http://cordova.axuer.com/#getstarted
https://www.cnblogs.com/raym/p/9344678.html
安装
npm install -g cordova
查看版本
cordova -v
创建项目
cordova create [文件夹/项目名] [包名(可选)] [项目名(可选)]
运行平台
查看支持的平台
cordova platform [ls(可选/默认)]
添加运行平台
cordova platform add [平台名称]
删除运行平台
cordova platform rm [平台名称]
运行
cordova run [平台名称] [--target=(要指定运行的设备名称)]
打包
cordova build [平台名称]
解决国内环境第一次编译运行缓慢
在platforms 找到对应平台的 build.gradle
将原有的 repositories 内的内容 替换为
maven{ url 'https://maven.aliyun.com/repository/google' } maven{ url 'https://maven.aliyun.com/repository/jcenter' } maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'} maven{ url 'https://maven.aliyun.com/nexus/content/repositories/central/'} mavenLocal() mavenCentral()
热更新 (官方已经不推荐使用)
https://www.cnblogs.com/sunylat/p/9896938.html
https://www.jianshu.com/p/5bf69c905ee0
https://www.cnblogs.com/xl1314666/p/11980864.html
npm install --save vue-cordova
电脑浏览器远程调试
参考文档
Cordova 启动流程
- 原生代码启动
- splash screen ( 启动页 )
- load html ( 加载 HTML )
- 顺序执行 JavaScript => cordova.js
- document.ready 执行,此时 cordova事件和设备api 不一定可用
- 注册 deviceready 事件
Event(事件)~[仅常用部分]~
deviceready (设备就绪)
当 Cordova 完全加载时,设备准备事件将触发。此事件对任何应用程序都至关重要。它表示Cordova的设备 API 已加载并准备访问
基于设备的底层事件 或 方法必须等待 deviceready 事件调用完成后才可用
快速示例
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
// 在此处可调用设备的 API
// Now safe to use device APIs
}
pause (暂停/挂起)
当本机平台将应用程序置于后台时(通常是当用户切换到其他应用程序时)将触发(暂停/挂起)事件
快速示例
document.addEventListener("pause", onPause, false);
function onPause() {
// Handle the pause event
}
resume (恢复)
当本机平台从后台拉出应用程序时,将触发 resume 事件
快速示例
document.addEventListener("resume", onResume, false);
function onResume() {
// Handle the resume event
}
backbutton 返回按钮 (仅在 安卓/Windows 可用)
当用户按下返回按钮时触发事件,覆盖默认的返回按钮行为,为事件注册监听器
快速示例
document.addEventListener("backbutton", onBackKeyDown, false);
function onBackKeyDown() {
// Handle the back button
}
插件
==Cordova 的插件事件监听以及插件方法的调用 必须在 deviceready 准备完成后调用==
电池状态插件
提供电池状态事件 API 的实现,向 Window 对象添加了 3个事件
- batterystatus 电池状态发生变化(至少1%) 或 充电状态改变时 触发
- batterycritical 电池电量进入临界值,快关机时触发
- batterylow 电池电量较低时触发
==此插件需使用 window.addEventListener 监听事件==
安装
cordova plugin add cordova-plugin-battery-status
状态对象
监听事件返回的 status 状态对象
- level 表示电池变量(0-100)~Number类型~
- isPlugged 表示当前设备是否正在充电 ~Boolean类型~
相机插件
提供调用摄像头设备的Api
在全局注册/提供一个 navigator.camera 对象 和一个 Camera 对象
提供一系列Api,可用于拍摄图片或从相册中选择图片
==必须在 deviceready 事件完成后才能使用==
安装
cordova plugin add cordova-plugin-camera
方法
getPicture(获取图片)
getPicture(successCallback, errorCallback, options)
使用相机拍照,或从设备的图片库中检索照片。图像作为base64编码的字符串或图像文件的URI传递给成功回调
如果 Camera.sourceType 为 Camera.PictureSourceType.PHOTOLIBRARY 或 Camera.PictureSourceType.SAVEDPHOTOALBUM 时,则允许用户选择一个现有的图片
successCallback 成功回调
参数
imageData 拍摄图片文件路径(默认) 或 图片的 base64
errorCallback 失败/错误回调
参数
message 失败/错误信息
options 配置参数
参数 | 类型 | 默认值 | 描述 |
---|---|---|---|
quality | number | 50 | 保存的图像的质量,表示为范围为0-100,其中100通常是完全分辨率,没有文件压缩损失。(请注意,该相机的分辨率信息不可用。) |
destinationType | DestinationType | FILE_URI | 返回值 imageData 的格式 |
sourceType | PictureSourceType | CAMERA | 图片的来源 |
allowEdit | Boolean | false | 允许编辑图像 |
encodingType | EncodingType | JPEG | 选择返回的图像文件的编码 |
targetWidth | number | 以像素为单位的宽度来缩放图像。必须与 targetHeight 一起使用。纵横比保持不变 | |
targetHeight | number | 以像素为单位的高度来缩放图像。必须与 targetWidth 一起使用。高宽比保持不变。 | |
mediaType | MediaType | PICTURE | 设置要从中选择的媒体类型。 仅在 PictureSourceType 为 PHOTOLIBRARY 或 SAVEDPHOTOALBUM 时可用 |
correctOrientation | Boolean | 旋转图像以校正捕获期间设备的方向 | |
saveToPhotoAlbum | Boolean | 捕获后将图像保存到设备上的相册中 | |
popoverOptions | CameraPopoverOptions | 仅在iPad中指定弹窗位置的 ios选项 | |
cameraDirection | Direction | BACK | 选择要使用的相机 (前置或后置) |
振动插件
提供调用设备振动的Api
在全局注册/提供一个 navigator.vibrate 方法
==必须在 deviceready 事件完成后才能使用==
安装
cordova plugin add cordova-plugin-vibration
方法
vibrate
参数
times 一个正整数或正整数数组(单位:毫秒),当为整数时 振动指定的时间,当为数组时则==下标==为偶数时为振动时长,奇数为振动间隔,为 0 时停止振动
多媒体插件
在全局注册/提供一个 Media 构造函数
==必须在 deviceready 事件完成后才能使用==
安装
cordova plugin add cordova-plugin-media
方法
Media
src
包含音频内容的URI
successCallback
成功回调
errorCallback
失败回调
参数
MediaError 错误信息对象
mediaStatus
执行来指示状态更改的回调
参数
statusCode 状态码 ~Number~
Media.play()
播放媒体文件
Media.pause()
暂停播放
Media.stop()
停止播放媒体文件
Media.setVolume(volume)
设置媒体播放音量 )
参数
volume 音量数值 (范围 0.0 ~ 1.0)
安卓 adb 调试命令
安卓 adb 模拟电池状态变化
更改电池电量
adb -s [设备编号] shell dumpsys battery set level [电池电量]
更改充电状态
adb -s [设备编号] shell dumpsys battery set ac [是否充电(0/1)]
重置电池状态
adb -s [设备编号] shell dumpsys battery reset