vue+cordova构建跨平台应用集成并使用Cordova plugin
安装
//安装 vue-cil
npm install --global vue-cli //安装cordova
npm i cordova -g
cordova 新建项目
//新建cordova 项目
cordova create vue-cordova
//进入目录
cd vue-cordova
//vue-cli新建vue项目
vue init webpack vueprojectname
//进入vue 项目目录
cd vueprojectname
//安装依赖
npm i
运行项目
npm run dev
编译项目
npm run build
修改编译输出
打开vue项目目录下面的index.html,添加
<script src="cordova.js"></script>
打开/config/index.js

编译打包
先删除 cordova项目下的www文件夹里的东西
执行编译vue项目将输出到 cordova 项目目录下的www文件内
npm run build
添加android平台并打包
//添加android 平台
cordova platform add android //打包android apk
cordova build android
添加ios平台打包
//添加ios平台
cordova platform add ios
打开platform/ios/***.xcodeproj以xcode打开,签名后打包。
效果图

集成并使用cordova plugin
在cordova-vue/vue/下新建文件夹cordova
再cordova下新建cordova.js
const pluginsList = [
'cordova-plugin-camera',
'cordova-plugin-device',
] exports.install = (Vue, options) => { Vue.cordova = Vue.cordova || {
deviceready: false,
plugins: []
} Vue.cordova.on = (eventName, cb) => {
document.addEventListener(eventName, cb, false)
} document.addEventListener('deviceready', () => {
Vue.cordova.deviceready = true
}, false) pluginsList.forEach(pluginName => {
let plugin = require('./plugins/' + pluginName)
plugin.install(Vue, options, pluginLoaded => {
if (pluginLoaded) {
Vue.cordova.plugins.push(pluginName)
}
if (Vue.config.debug) {
console.log('[VueCordova]', pluginName, '→', pluginLoaded ? 'loaded' : 'not loaded')
}
})
}) }
在main.js 添加
import cordova from './cordova/cordova.js'
Vue.use(cordova)
新建文件夹plugins下新建文件
cordova-plugin-camera.js
exports.install = function (Vue, options, cb) {
document.addEventListener('deviceready', () => {
if (typeof navigator.camera === 'undefined') {
return cb(false)
}
Vue.cordova.camera = navigator.camera
return cb(true)
}, false)
}
cordova-plugin-device.js
exports.install = function (Vue, options, cb) {
document.addEventListener('deviceready', () => {
if (typeof device === 'undefined' || typeof device.cordova === 'undefined') {
return cb(false)
}
Vue.cordova.device = {
cordova: null,
model: null,
platform: null,
uuid: null,
version: null,
manufacturer: null,
isVirtual: null,
serial: null
}
Object.keys(Vue.cordova.device).forEach(key => {
if (typeof device[key] !== 'undefined') {
Vue.cordova.device[key] = device[key]
}
})
return cb(true)
}, false)
}
同时要在cordova项目目录下 安装cordova-plugin-device,和cordova-plugin-camera插件
cordova plugin add cordova-plugin-device cordova plugin add cordova-plugin-camera
如此类推,如果你需要别的插件也是这样添加。
整体项目结构

参考:
https://github.com/kartsims/vue-cordova
https://7449.github.io/2017/08/04/Android_Cordova_Vue_Cordova
此随笔乃本人学习工作记录,如有疑问欢迎在下面评论,转载请标明出处。
如果对您有帮助请动动鼠标右下方给我来个赞,您的支持是我最大的动力。
vue+cordova构建跨平台应用集成并使用Cordova plugin的更多相关文章
- 混合开发 Hybird Ionic Angular Cordova web 跨平台 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- 基于electron+vue+element构建项目模板之【创建项目篇】
1.概述 electron:使用javascript.css.html构建跨平台的桌面应用程序 vue:数据驱动视图中的一款渐进式的javascript框架 element:基于vue的桌面端UI组件 ...
- 小白学jquery Mobile《构建跨平台APP:jQuery Mobile移动应用实战》连载四(场景切换)
作为一款真正有使用价值的应用,首先应该至少有两个页面,通过页面的切换来实现更多的交互.比如手机人人网,打开以后先是进入登录页面,登录后会有新鲜事,然后拉开左边的面板,能看到相册.悄悄话.应用之类的其他 ...
- 白学jquery Mobile《构建跨平台APP:jQuery Mobile移动应用实战》串行4(场景变化)
作为一个真正的利用价格值应用,首先,你应该至少有两页,通过切换页面来实现很多其他互动.比如手机人人网,首先,打开后进入登录页面,将有登录后,新的东西.然后拉左侧面板.你可以看到相册.私人信息.像其他应 ...
- 小白学phoneGap《构建跨平台APP:phoneGap移动应用实战》连载五(使用PhoneGap获取设备信息)
除了能够将HTML页面打包成可以直接安装运行的APP外,PhoneGap的一个最大优势在于可以通过JavaScript调用设备来访问设备上的硬件信息,从而实现一些原本只有依靠原生SDK才能够达到的目的 ...
- 使用webpack+vue.js构建前端工程化
参考文章:https://blog.csdn.net/qq_40208605/article/details/80661572 使用webpack+vue.js构建前端工程化本篇主要介绍三块知识点: ...
- Cordova+vue 混合app开发(一)创建Cordova项目
简介: Cordova包装你的HTML/JavaScript app到原生app容器中,可以让你访问每个平台设备的功能.这些功能通过统一的JavaScript API提供,让你轻松的编写一组代码运行在 ...
- [.net 面向对象程序设计深入](5)MVC 6 —— 构建跨平台.NET开发环境(Windows/Mac OS X/Linux)
[.net 面向对象程序设计深入](5)MVC 6 —— 构建跨平台.NET开发环境(Windows/Mac OS X/Linux) 1.关于跨平台 上篇中介绍了MVC的发展历程,说到ASP.NET ...
- NativeScript - JS 构建跨平台的原生 APP
使用 NativeScript,你可以用现有的 JavaScript 和 CSS 技术来编写 iOS.Android 和 Windows Phone 原生移动应用程序.由原生平台的呈现引擎呈现界面而不 ...
随机推荐
- GCJ-02火星坐标系和WGS-84坐标系转换关系
GCJ-02火星坐标系和WGS-84坐标系转换关系 WGS-84:GPS坐标系 GCJ-02:火星坐标系,国测局02年发布的坐标体系,高德,腾讯等使用. BD-09:百度坐标系,百度自研,百度地图使用 ...
- 大数据ssh疑点跟踪
相信运维的对ssh免密登陆应该是对这个再清楚不过的吧,由于我们大数据对于安全这方便管控的很严格,单独找一台物理机作为跳板机,其他的机器都必须要从这个跳板机免密登陆,由于机器比较的多,其中dn30这个域 ...
- Excel—图表函数
OFFSET(引用函数)它可以找一个区域,把一个区域的值都拿回来 函数语法:OFFSET(从哪个单元格开始,这个单元格下移多少行开始,然后现在的位置再往右多少列开始,要取的值是现在的位置开始下移多少行 ...
- python基础其他
目录: 一.Python为什么受欢迎的本质,知道的人寥寥无几? 二.PyCharm的模板设置 三.pycharm的一些快捷键 四.PyCharm最新2018激活 五.python虚拟环境--virtu ...
- react组件中刷新组件小技巧
在开发过程中,经常遇到组件数据无法更新,例如:当你用同一个表格展示不同数据的时候,当点击第5页后,再点击另外一份数据时发现还在第五页,并没有回到第一页. 怎么能让一个组件每次数据不一样时都重新加载呢, ...
- SQL server 查询出现:---“子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。”SQL查询错误解析---
最近用select进行数据筛选,碰到下面的这个错误: ---子查询返回的值不止一个.当子查询跟随在 =.!=.<.<=.>.>= 之后,或子查询用作表达式时,这种情况是不允许的 ...
- (二)stm32f103~~GPIO基本操作二(按键)
GPIO基本配置之按键输入操作(通过按键控制小灯的翻转) KEY0 对用端口PE4,KEY1 对用端口PE3,这两个按键是一段接地,另一端接单片机.KEYWKUP 对用端口PA0,这个按键是一段接高电 ...
- 在Github上为项目添加多个用户
点击项目目录中的Settings 点击Collaborators 添加后,合作者会受到确认邮件,等待合作者确认后,合作者就可以提交了 添加组织 在Settings中找到Organizations 点击 ...
- string 转 int
1.stringstream 用流转换 cin cout都是流的操作 iostream cin的时候,从屏幕读取字符串流,自动判断类型(省去了scanf的格式控制) stringstream ...
- python 错误记录
class Func: d = dict() def __setitem__(self, key, value): # xxx object does not support item assignm ...