Cordova插件
您可以使用Cordova插件连接原生设备API。
Cordova插件
这样插件的几个例子:
- 电池状态
- 相机
- 联系人
- 设备
- 设备运动
- 地理位置
- 媒体
- 媒体捕捉
- 网络信息
- 飞溅屏幕
- 振动
- 状态栏
Deviceready事件
你会注意到一些Cordova插件只有在deviceready
事件被触发后才可用。 我们不需要担心太多。 在这个事件被触发之后,Quasar监听这个事件并且处理我们的根Vue组件。但是如果你需要一些插件自己的变量并且在deviceready
之后初始化你可以按照下面使用插件设备的例子
警告
使用一个vue文件来做说明:
<template> ... 我们确信'deviceready'已经触发了 ... </template>
<script>
document.addEventListener('deviceready', () => { }, false)
export default { } </script>
|
原因很简单。 Quasar监听事件,然后挂载根Vue组件。 但在此之前,Vue文件被导入到/src/router/routes.js
文件中,因此默认导出之外的代码被执行。
使用Cordova插件
让我们通过一些例子来学习,假设您已经为Quasar项目添加了Cordova模式并已经安装了一个平台(android,ios,…)。
示例:电池状态
第一步是阅读我们想要使用的Cordova插件的文档。 我们看Cordova插件列表并点击Battery Status doc page。
我们看到有关如何安装此插件的说明。 这总是一个Cordova的命令。 因此,我们将“cd”进入/src-cordova
(这是Cordova生成的文件夹)并在那里发出安装命令:
$ cordova plugin add cordova-plugin-battery-status
|
现在让我们把这个插件用得很好。 在您的Quasar项目pages/layouts/components目录下的一个Vue文件中,我们编写:
// 一些Vue文件 // 记住这只是一个例子; // 仅查看我们如何使用插件页面中描述的API; // 这里其余的东西并不重要
<template> <div> Battery status is: <strong>{{ batteryStatus }}</strong> </div> </template>
<script> export default { data () { return { batteryStatus: 'determining...' } }, methods: { updateBatteryStatus (status) { this.batteryStatus = `Level: ${status.level}, plugged: ${status.isPlugged}` } } created () { window.addEventListener('batterystatus', this.updateBatteryStatus, false) }, beforeDestroy () { window.removeEventListener('batterystatus', this.updateBatteryStatus, false) } } </script>
|
示例:相机
第一步是阅读我们想要使用的Cordova插件的文档。 我们看看Cordova插件列表并点击Camera doc page。
有提及deviceready
事件。 但是我们已经从前面的章节中知道如何处理它。
我们阅读了有关如何安装此插件的说明。 这总是一个Cordova的命令。 因此,我们“cd”进入/src-cordova
(这是Cordova生成的文件夹)并在那里发出安装命令:
$ cordova plugin add cordova-plugin-camera
|
现在让我们把这个插件用得很好。 在您的Quasar项目pages/layouts/components目录下的一个Vue文件中,我们编写:
// 一些Vue文件 // 记住这只是一个例子; // 仅查看我们如何使用插件页面中描述的API; // 这里其余的东西并不重要
<template> <div> <q-btn color="primary" label="Get Picture" @click="captureImage" />
<img :src="imageSrc"> </div> </template>
<script> export default { data () { return { imageSrc: '' } }, methods: { captureImage () { navigator.camera.getPicture( data => { this.imageSrc = `data:image/jpeg;base64,${data}` }, () => { this.$q.notify('Could not access device camera.') }, { } ) } } } </script>
|
示例:设备
第一步是阅读我们想要使用的Cordova插件的文档。看看Cordova插件列表,然后单击Device doc page。
这个插件初始化一个名为device
的全局变量,它描述了设备的硬件和软件。因此可以使用window.device
访问它。
阅读有关如何在其cordova doc页面上安装此插件的说明。它始终是Cordova命令。 所以我们“cd”到/src-cordova
(这是一个Cordova生成的文件夹)并从那里发出install命令:
$ cordova plugin add cordova-plugin-device
|
现在让我们把这个插件用于一些很好的用途。如果在启动应用程序时需要设备的信息,则必须捕获创建的事件。在你的一个Quasar项目的页面/布局/组件Vue文件中,我们写道:
//一些Vue文件 //记住这只是一个例子; //只看看我们如何使用插件页面中描述的API; //这里剩下的事情并不重要
<template> <div> <q-page class="flex flex-center"> <div>IMEI {{IMEI}}</div> </q-page> </div> </template>
<script> export default { data () { return { IMEI: window.device === void 0 ? 'Run this on a mobile/tablet device' : window.device } } } </script>
|