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

电脑浏览器远程调试

chrome://inspect/#devices

参考文档

Cordova 启动流程

  1. 原生代码启动
  2. splash screen ( 启动页 )
  3. load html ( 加载 HTML )
  4. 顺序执行 JavaScript => cordova.js
  5. document.ready 执行,此时 cordova事件和设备api 不一定可用
  6. 注册 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 配置参数
参数类型默认值描述
qualitynumber50保存的图像的质量,表示为范围为0-100,其中100通常是完全分辨率,没有文件压缩损失。(请注意,该相机的分辨率信息不可用。)
destinationTypeDestinationTypeFILE_URI返回值 imageData 的格式
sourceTypePictureSourceTypeCAMERA图片的来源
allowEditBooleanfalse允许编辑图像
encodingTypeEncodingTypeJPEG选择返回的图像文件的编码
targetWidthnumber 以像素为单位的宽度来缩放图像。必须与 targetHeight 一起使用。纵横比保持不变
targetHeightnumber 以像素为单位的高度来缩放图像。必须与 targetWidth 一起使用。高宽比保持不变。
mediaTypeMediaTypePICTURE设置要从中选择的媒体类型。 仅在 PictureSourceTypePHOTOLIBRARYSAVEDPHOTOALBUM 时可用
correctOrientationBoolean 旋转图像以校正捕获期间设备的方向
saveToPhotoAlbumBoolean 捕获后将图像保存到设备上的相册中
popoverOptionsCameraPopoverOptions 仅在iPad中指定弹窗位置的 ios选项
cameraDirectionDirectionBACK选择要使用的相机 (前置或后置)

振动插件

提供调用设备振动的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