1 H5开发

开发HybridApp一般都是先完成H5部分,所谓的H5就是Html5页面,开发的时候我们在PC机上的浏览器调试即可,这里推荐Chrome F12模式。

在调试服务器请求数据部分要给chrome设置跨域模式,如下:

然后以管理员的身份启动chrome:

开发H5,建议使用HBuilder,开发速度很快

接下来安装cordova,本地需要已安装nodejs,确保可以正常使用npm命令。因为npm默认链接的是国外的源,所以如果网络不给力的话要切换成国内的源,比如淘宝的npm,具体如何切换,请百度。

2 安装cordova

Cordova创建项目官方文档

http://cordova.apache.org/docs/en/latest/guide/cli/index.html

3 创建项目

进入项目

添加平台

查看已添加的平台

4 添加插件

http://cordova.apache.org/docs/en/latest/guide/cli/index.html#link-add-plugin-features

设备基本信息插件

网络模块

电池状态

加速度计模块

罗盘模块

定位模块

相机模块

文件管理模块

弹出框

重力感应

通讯录接口

国际化

启动页

内置浏览器

日志模块

查看已安装插件

如果要移除插件

cordova plugin rm XXX

5 插件调用

http://cordova.apache.org/docs/en/latest/cordova/plugins/pluginapis.html

6 项目导入

以Android为例,IOS更简单,直接双击.xcodeproj即可在xcode里面打开项目

Eclipse > Import> Existing Android Code Into Workspace >

项目导入之后如下:

7 H5集成

接下来我们把上面开发好的H5导入到工程里面来,导入H5部分需要注意,有两种方式,第一种也是官方文档使用的方式,即直接把H5内容复制到platform_www下面,然后通过cordova update 命令来同时更新到多个平台。

但是cordova update这种方式有个缺点就是通过这种全面覆盖的方式就无法保留不同平台之间H5代码的差异性,所以尤其是项目后期,不建议采用这种方式来操作。

另外一种方式是直接复制H5代码到不同平台下,分别调试:

设置首页

打开MainActivity.java

IOS是直接在config.xml里面配置即可。

引入cordova.js

H5页面引入cordova.js

APP图标和启动页

8 APP打包

接下来就可以直接Run As 运行打包了,如果有连着android手机,可以直接在手机上查看效果。

如果无法连接真机调试,可以打包成apk后另行安装:

右键项目>Android Tools>Export Signed Application package… 或者 Export UnSigned Application package… ,如果有签名文件就选Signed,反之UnSigned。

9 自定义插件

开头部分已经提到插件这个词,插件就是cordova封装了一套通过js来访问硬件设备的接口,那如果我们要自己实现一个插件该怎么做,可以查看官方文档,按照cordova的规范来编写:

http://cordova.apache.org/docs/en/latest/guide/hybrid/plugins/index.html

这里举个简单的例子,比如我们要开发个Toast,众所周知Toast这种效果一般要通过android的Toast.makeText()方法来实现,那我们怎么通过js来调用这个原生的方法呢,步骤如下:

1) 创建原生实现类ToastPlugin.java

实现如下:

2) 创建js实现类ToastPlugin.js

实现如下:

3) 配置路由res/xml/config.xml

4) 调用

接下来就可以在html页面通过toast(“XXX”);这种方式来调用了。

Ios插件的实现步骤跟android大概一致,只是ToastPlugin.java ios对应的要用原生Object-c去实现。

完。

H5开发HybridApp的更多相关文章

  1. 带你使用h5开发移动端小游戏

    带你使用h5开发移动端小游戏 在JY1.x版本中,你要做一个pc端的小游戏,会非常的简单,包括说,你要在低版本的浏览器IE8中,也不会出现明显的卡顿现象,你只需要关心游戏的逻辑就行了,比较适合逻辑较为 ...

  2. H5开发中的问题总结

    最近公司做了一个出行日记的项目,里面的页面十多页,天天加班,做到吐血.总体来说,写页面的时候虽然是十多个页面,其实难度还是在每个页面的特效上.公司是易到用车,出行日记的页面在APP里有生成入口,有兴趣 ...

  3. 移动h5开发资源整理

    这2年来,移动h5开发逐渐成为一种主流,也不断趋向于成熟.硬件和浏览器的不断更新,曾经的浏览器兼容也不再是开发者的噩梦. 接触h5开发一年多,从最初的新手到现在,陆陆续续遇到过很多坑.这里把想到的一些 ...

  4. 关于APP,原生和H5开发技术的争论

    App的开发技术,目前流行的两种方式,原生和Html5.原生分了安卓平台和ios平台(还有小众的黑莓.死去的塞班就不说了),H5就是Html5. 目前争论不休的问题,在早先前争论CS,BS架构的软件系 ...

  5. 移动H5开发入门知识,CSS的单位汇总与用法

    说到css的单位,大家应该首先想到的是px,也就是像素,我们在网页布局中一般都是用px,但是近年来自适应网页布局越来越多,em和百分比也经常用到了.然后随着手机的流行,web app和hybrid a ...

  6. H5开发中的故障

    本篇博文会不断的收录我在做H5页面时遇到的问题以及解决方案,当然有的问题,我也没有遇到好的解决方案,所以如果你有解决的办法,请务必不吝赐教! H5开发中的故障       微信APP返回按钮不刷新页面 ...

  7. H5外包团队 H5开发微信APP的优势有哪些

    H5外包团队 H5开发微信APP的优势有哪些

  8. myEclipse+Spring boot+Hbuilder+jwt Token+mongoDB+企业微信H5开发

    企业微信应用的H5开发 1.参考文档:weUI:http://jqweui.com/ 2.企业微信接口文档:https://work.weixin.qq.com/api/doc#10029 3.百度地 ...

  9. 用H5开发微信还是开发APP?

    用H5开发微信还是开发APP? 随着技术的飞速发展,HTML第五版技术标准的更新,在移动端,由于其相对较低的开发成本及强大的跨平台运行能力,越来越多的信息型产品也开始选择这样轻量级的H5页面进行快速迭 ...

随机推荐

  1. symfony手动触发修饰html

    symfony会修饰一些标签,如input[type=file],input[type=checkbox],input[type=radio]等 有时html是页面生成后插入的,需要手动使symfon ...

  2. 解决:No qualifying bean of type [org.springframework.jdbc.core.JdbcTemplate] found for dependency

    错误: Description: Field jdbcTemplate in com.gwd.dao.impl.IUserDaoImpl required a bean of type 'org.sp ...

  3. MFC中的句柄

    1.引出句柄 CDC问题:1.CDC dc;dc.LineTo(point);无法运行 2.CDC *dc=GetDC();dc->LineTo(point);就可以运行了 MFC中有大量的句柄 ...

  4. iphone微信 h5页音乐自动播放

    iphone微信 h5页音乐自动播放: // iphone自动播放 document.addEventListener("WeixinJSBridgeReady", functio ...

  5. sps和pps的简单理解记录

    最近博客写出了日记的既视感... 使用RTP传输H264的时候,需要用到sdp协议描述,其中有两项:Sequence Parameter Sets (SPS) 和Picture Parameter S ...

  6. 利用altium怎么生成PDF及怎么1:1打印文档

    画完板子之后,还要生成原理图PDF文档,供其他设计人员参考和指正. 上图红框标注的两个地方,分别用于打印预览设置和生成原理图PDF.那么若是生成原理图PDF文档,则选择smart PDF即可. 点击s ...

  7. mysql流程函数if之类

    表名: salary ———————— userid | salary| ———————— 1 | 1000 2 | 2000 3 | 3000 4 | null ... IF(value, t, f ...

  8. JsonCpp 判断 value 中是否有某个KEY

    JsonCpp如何判断是否有某个KEY,使用json[“key”]和isXXX的函数即可. 如果json中没有key键,则会创建一个空成员或者返回一个空成员. bool isNull() const; ...

  9. windows sever2003安装Wamp 2.5不成功——VC 11不支持Windows Server 2003和win XP?

    Windows Server 2003 安装Wamp 2.5不成功Wampserver 2.5 will not run on Windows XP 报错信息:C:\wamp\bin\apache\a ...

  10. elasticsearch系列六:聚合分析(聚合分析简介、指标聚合、桶聚合)

    一.聚合分析简介 1. ES聚合分析是什么? 聚合分析是数据库中重要的功能特性,完成对一个查询的数据集中数据的聚合计算,如:找出某字段(或计算表达式的结果)的最大值.最小值,计算和.平均值等.ES作为 ...