前言

 公司之前用的app就是一个套壳挂个链接就能用的app,后来需要添加微信分享方便传播,没办法只好做成混合式的app了,

  因为之前做.net用vs可以创建cordova项目也试着玩过,就决定用cordova来做这个了。

  但是没有深入的做过这个,所以前期遇到的问题多的我都记不清了。

使用到的工具

Visual Studio 2015

vs code (也可以用到)

  使用visual studio2015搭建cordova环境可以看这篇文章:http://www.cnblogs.com/ashidamana/p/5171172.html

  环境搭建好后看下你的系统里是不是有这些东西:nodejs、java jdk(32位)、android sdk、

  注意:java jdk我用1.7版本使用vs调试时会报错,后来改为1.6的版本就正常了。如果使用vs code调试又得要1.8或以上的jdk版本才行。

目录结构

merges 存放各个平台的特殊的代码,与www目录合并编译,相同的文件merges下的代码文件优先。

plugins 即插件目录,cordova 访问本地设备属性的原生API也是以插件的形式提供。

res 适用于各个平台的特殊资源(图标和启动画面)。

www 包含应用程序代码

config.xml包含工程的配置文件

build.json 配置打包签名文件信息

taco.json 存储使 Visual Studio 打造非 Windows 操作系统像 mac 上的项目元数据

my-release-key.keystore签名文件,打包时必须用的

插件

Network Information 可以用来app检测当前网络状态(核心菜单添加安装)

Splashscreen 用来添加欢迎界面的插件(核心菜单添加安装)

Wechat 可以使用微信分享、登陆、支付的插件,地址:(https://github.com/xu-li/cordova-plugin-wechat)

Whitelist 默认自带的

插件的使用

微信插件使用分享功能:

  首先确保添加插件是appid没有错误,

  分享到朋友圈:

复制代码

//商品分享到朋友圈

function wx_share() {

//获取商品图片

var wechat_img = wx_img;

var wechat_url = geturl();

var wechat_product_name = wx_product_name;

var wechat_store_name = wx_store_name;

Wechat.share({

message: {

title: wechat_product_name,

description: wechat_product_name,

mediaTagName: wechat_store_name,

thumb: wechat_img,

media: {

type: Wechat.Type.WEBPAGE, //类型是一个webpage,就是一个网页?

webpageUrl: wechat_url

}

},

scene: Wechat.Scene.TIMELINE // 分享到朋友圈     //scene: Wechat.Scene.SESSION // 分享到微信好友     //scene: Wechat.Scene.FAVORITE // 收藏到微信

}, function () {
alert("分享成功");
}, function (reason) {
alert("分享失败");

}); }

复制代码

网络状态插件使用&&首页状态先点击返回键退出app(这里用的是layer弹窗插件)

复制代码

document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {

document.addEventListener("backbutton", eventBackButton, false); //返回键

document.addEventListener("offline", onOffline, false);//网络未链接状态

document.addEventListener("online", onOnline, false);//网络连接成功

}

function onOffline(e) {

// Handle the offline event

layer.open({
content: '网络未连接'

, skin: 'msg'

, time: 2 //2秒后自动关闭

});

}

function onOnline() {

layer.open({

content: '已连接到服务器'

, skin: 'msg'

, time: 2 //2秒后自动关闭

});

}

//退出app

function exitApp() {

delCookie("apk_id");

navigator.app.exitApp();

}

//返回键

function eventBackButton() {

//confirm("再点击一次退出!");

//window.plugins.ToastPlugin.show_short('再点击一次退出!');

layer.open({

content: '再点击一次退出!'

, skin: 'msg'

, time: 3 //2秒后自动关闭

});

document.removeEventListener("backbutton", eventBackButton, false); //注销返回键

document.addEventListener("backbutton", exitApp, false);// 通过监听返回键绑定退出事件

//3秒后重新注册

var intervalID = window.setInterval(

function () {

window.clearInterval(intervalID);

document.addEventListener("backbutton", eventBackButton, false); //添加返回事件

document.removeEventListener("backbutton", exitApp, false);//删除事件

},

3000

);

}

复制代码

基础配置

欢迎界面配置:

  右键config.xml选择查看代码:

  按需添加如下设置

 

#显示时间

#禁止自动隐藏

#禁止自动隐藏

#禁用淡出效果

#图像cover屏幕

#隐藏加载灰圈

#每次重新启动都显示

  2.签名文件的生成与配置:

  打开命令提示符——根据你的java jdk路径输入,例如我的:cd C:\Program Files (x86)\Java\jdk1.6.0_43\bin

  然后在输入生成签名文件的命令:

  keytool -genkey -v -keystore c:\my-release-key.keystore -alias johnS -keyalg RSA -keysize 2048 -validity 10000

  (生成签名文件介绍:http://taco.visualstudio.com/en-us/docs/tutorial-package-publish-readme/)

注意:输入密码是命令行什么都不显示,但其实已经输入成功了。

打开c盘就可以看到签名文件了,然后再把签名文件放到你的项目里。

  打开项目里的build.json文件添加下面的代码

复制代码

{

"android": {

"release": {

"keystore": "my-release-key.keystore",//签名文件名称

"storePassword": "123456",//生成时填写的密码

"alias": "johnS",//生成命令里你填写的alias值

"password" : "123456",//密码

"keystoreType": ""

}

}

}

复制代码

当你发布(release)app时会自动给你的app签名。

使用vs code开发cordova app

使用vs 2015做的cordova项目用vs code也可以开发,不过就是没有vs那么方便了。

首先要给vs code添加cordova插件—Cordova Tools

然后用vs code 打开vs创建的项目,配置下调试就可以用了。

注意:java jdk必须要1.8或以上的,否则无法调试。

还有可能会出现jdk虚拟内存的问题:

error:Could not reserve enough space for 2097152kb object heap

解决办法:

开始->控制面板->系统->高级设置->环境变量->系统变量

新建变量:

变量名: _JAVA_OPTIONS

变量值: -Xmx512M深坑问题:不管是用vs或vs code第一次调试程序时都会要下载很多文件后面再调试就不需要了,可能是因为墙的问题下载速度巨慢,可能2-3个小时都下载不好,虽然我改过hosts但下载速度还是很慢。有条件的可以用vpn。

如果想脱离vs只用vs code来开发cordova项目的话就需要了解下cordova命令的使用了。

  这里说下简单的命令:

  首先设置下npm镜像,不然安装cordova也得FQ。

命令行输入:

   npm config set registry https://registry.npm.taobao.org --global

   npm config set disturl https://npm.taobao.org/dist --global   

安装cordova:  

npm install -g cordova

创建cordova项目:

pushd e:\app

  

cordova create test com.cordova.test test

  

cordova platforms add android //添加平台 (cordova platforms rm android//移除平台)

  

打开目录e:\app 就可以看到项目了

  

  

添加插件:

  

cordova plugin add cordova-plugin-file (cordova plugin add <插件官方名称>)

  

删除插件:

  

cordova plugin rm cordova-plugin-file    

调试:

cordova install android //将编译好的应用程序安装到模拟器上。

cordova emulate android //在模拟器上运行(前提是创建好AVD)

cordova serve android //在浏览器运行

cordova build android //打包cordova项目到android平台。

cordova build android --release //release版本

cordova run android //通过USB直接安装到真机(该语句已经包括了build命令)

gradle-2.2.1-all.zip

第一次调试会下载gradle-2.2.1-all.zip文件不过由于这个文件有50多mb所以下载速度可能会很慢(第一次调试最好修改下hosts或者挂vpn不然很多文件会下载不动), 建议手动下载:http://vdisk.weibo.com/s/tYiMrGa0Cu5l 然后放到  “C:\Users\用户名.gradle\wrapper\dists\gradle-2.2.1-all\2m8005s69iu8v0oiejfej094b ”大概就是这个目录可能最后一个文件夹名称不一样,然后再次调试

Vue打包app的更多相关文章

  1. vue打包app嵌入h5,区分app进入和android,ios显示不同的下载链接

    vue打包app嵌入h5,区分app进入和android,ios显示不同的下载链接 需求:自己app打开的登录页面不显示app下载链接.其他地方打开判断android手机的跳转到android下载页链 ...

  2. vue用hbuilderX打包app嵌入h5方式云打包和遇到的问题

    vue用hbuilderX打包app嵌入h5方式云打包和遇到的问题 vue用hbuilderX打包app就可以了,不过有兼容性问题,转换rem的用不了,嵌入到app的webview里面变得很小了,另外 ...

  3. vue 用huilder打包APP时,安卓按返回键就退出App改为按两次再退出App

    做vue项目时,用Hbuilder打包APP,在安卓下按返回键就是退出了APP,百度了下.都是使用到MUI来解决的,自己也记录下. 在main.js里面引入mui.js并使用. import mui ...

  4. 解决使用vue打包时vendor文件过大或者是app.js文件很大的问题

    这篇文章主要介绍了使用vue打包时vendor文件过大或者是app.js文件很大问题的解决方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下 第一次使用vue2.0开发,之前都是用的angu ...

  5. ThinkPHP5+Apicloud+vue商城APP实战

    ThinkPHP5+Apicoud+vue商城APP实战 目录 章节1:项目概述 课时1apicloud平台介绍.04:38 课时2知识体系架构介绍.16:10 章节2:apicloud50分钟快速入 ...

  6. cordova+vue打包webapp

    使用cordova+vue打包webapp,可以快速给网页套上一个android和ios壳子,完成一个app的开发. 1. 环境准备. (1)node.js  下载地址: https://nodejs ...

  7. vue打包速度优化

    这是一个很头疼的问题,webpack极大的简化了前端自动化配置,但是打包速度实在是不如人意.在此之前,本人也尝试过网友的一些方法,但是,很多坑,跳进去就出不来,经过多个项目实践,现总结一下我用到的优化 ...

  8. 如何修改Vue打包后文件的接口地址配置

    1.背景 常规的vue项目分为本地环境和生产环境,我们只要对 config 文件夹下的 dev.env.js 和 prod.env.js 做相应的配置即可.但是最近在做的项目中,涉及到私有化部署,就是 ...

  9. Vue+原生App混合开发手记#1

    项目的大致需求就是做一个App,里面集成各种功能供用户使用,其中涉及到很多Vue的使用方法,单独总结太麻烦,所以通过这几篇笔记来梳理一下.原型图如下: 路由配置 主界面会用到一些原生App方法,比如验 ...

随机推荐

  1. 在Centos上面用yum不能安装redis的朋友看过来

    我得是centos 6.3,如果直接用yum安装redis,报错,如下:[root@CentOS6 etc]# yum install redisLoaded plugins: fastestmirr ...

  2. 2017.10.23 Java 面向对象深入学习---final 关键字、static关键字、匿名对象等

    今日内容介绍 1.final 关键字 2.static 关键字 3.匿名对象 4.内部类 5.包的声明与访问 6.访问修饰符 7.代码块 第一节课 01(面向对象)final关键字概念.avi 02: ...

  3. Bean的初始化和销毁

    在我们实际开发的时候,经常会遇到在Bean在使用之前或者之后做些必要的操作,Spring对Bean的生命周期的操作提供了支持.在使用Java配置和注解配置下提供如下两种方式.    1.Java配置方 ...

  4. 动画利器animate.css

    使用过CSS3编写动画的同学一定感叹CSS3的强大,但是也会感到书写的麻烦.每次都要计算动画的各个参数,十分麻烦.有没有一个库能封装一些常用的CSS3动画效果.答案是肯定的,animate.css就是 ...

  5. HTML第三章:表单

    第三章:表单 表单标签form:<form></form>//相当于一张记录用户信息的单子    常用属性:method:表单的提交方式,常用的值有两个             ...

  6. 关于event loop

    之前写了篇文章 JS运行机制,里面对event loop简单的说明,面试时又遇到了关于该知识点的题目(主要是process.nextTick和setImmediate的执行顺序不太知道,查了之后才知道 ...

  7. 关于discuz 不能全文搜索的问题

    这个问题客服反馈很多次了,以为discuz 默认搜索只能搜标题,除非配置了sphinx全文搜索引擎. 但是之前比较老的员工说以前能用的,也就是discuz老版本. 今天突然想到是不是discuz纵横搜 ...

  8. 解决mysql远程连接失败的问题

    问题描述 在我远程连接我的服务器数据库的时候,navicat给我提示了这么一个错误: ERROR : Host 'xxx' is not allowed to connect to thisMySQL ...

  9. tcp服务端socket

    import socket if __name__ == '__main__': # 创建tcp服务端socket tcp_server_socket = socket.socket(socket.A ...

  10. 39条常见的Linux系统简单面试题

    39条常见的Linux系统简单面试题 本文主要分享39条常见的Linux系统简单面试题,其中包括如何看当前Linux系统有几颗物理CPU和每颗CPU的核数.如何实时查看网卡流量为多少等等,希望对你有所 ...