这个项目做得比较早,当时是基于ionic1和angular1做的。做了四个tabs的app,首页模仿携程首页,第二页主要是phonegap调用手机核心功能,第三页模仿微信和qq聊天页,第四页模仿一般手机的表单设置页。同时还模仿知乎做了一个侧边栏页(账号:wty,密码:123456)。

没有后台,纯前端展示,功能还比较多,调用系统的声音、震动和手机设备信息等。有二维码扫描功能,还做了类似qq消息可拖拽效果,上拉下拉刷新,轮播图组件。

安卓apk下载

线上地址

一、基本概念

1. Angularjs简介

Angularjs是一款优秀的前端 JS 框架,已用于 Google 的多款产品当中 如 Gmail、Maps、Calender 等。AngularJS有着诸多特性,最为核心的是:MVVM、模块化、自动化双向数据绑定、语义标签、依赖注入,等等。

2. Ionic简介

Ionic是一个强大的 HTML5 应用程序开发框架,具有速度快,界面现代化、美观等特点。特别适合用于基于 Hybird 模式的 HTML5 移动应用程序开发。

3. Phonegap简介

Phonegap是一个用基于 HTML, CSS 和 JavaScript 的,创建移动跨平台移动应用程序的
快速开发平台。它使开发者能够手机的核心功能——包括地理定位,加速器,联系人,声音和振动等,此外PhoneGap 拥有丰富的插件,可以调用。

二、项目各tab主要功能介绍

1. 初始化配置

  • 手机上app显示的图标、名称、开机画面
  • 注入依赖
  • 隐藏显示键盘
  • hammer触屏手势插件配置
  • 菜单栏的位置、导航条文字位置、回退按钮图标等
  • 切换页面的过渡效果(bug)
  • AngularUI Router
  • services服务

2. tab-home

  • 幻灯指令 ion-slide-box
  • 触屏手势切换页面
  • 栅格系统
  • 触屏手势touch-bases和hammerjs
  • ng-init、ng-click、 ng-src、 ng-repeat指令,双向数据绑定
  • 打开app内置的浏览器webview方法
  • 上拉刷新

3. tab-dash

  • phonegap功能的应用:二维码扫描、调用系统弹窗、震动铃声功能、获取设备信息
  • ion-side-menus侧边栏功能
  • ionic 动态组件 $ionicModal弹出登录界面
  • ng-show、ng-model 双向数据绑定实现登录验证的实时监控
  • ionic 动态组件 $ionicPopup弹出注销界面
  • 更换头像(访问手机摄像头、图库功能)
  • 切换主题颜色

4. tab-chats

  • 删除按钮和重新排序按钮
  • 下拉刷新
  • 滑动显示分享编辑按钮
  • 长按显示动态组件$ionicActionSheet选项
  • 红色消息badge

5. tab-account

  • ionic的表单应用
  • “声音”选项被选中播放铃声
  • “震动”选项被选中开始震动
  • 实现全选、全不选、反选的功能
  • ionic动态组件$ionicPopup
  • 根据被选择数显示相应弹窗内容

三、演示如下:

ionic实战动态图演示

四、总 结

优点: 通过使用 web 技术开发 App,采用 Cordova/PhoneGap之类进行打包封装。优点是采用标准的web技术开发,避免了不同平台原生开发体系的学习,学习成本低, 上手快、 效率高,一次开发微信 wap app 全部搞定;

缺点:app 在 android 平台性能上有一些损失, 但是相信硬件的发展会接近原生。

欢迎大家star学习交流:github地址 | 我的博客

参考文献

  1. PhoneGap3.4安装视频教程下载
  2. Angular1官网
  3. Angular中文社区
  4. AngularJS Nice Things
  5. phonegap 中文网
  6. ionic官网

一个基于Angular+Ionic+Phonegap的混合APP实战的更多相关文章

  1. Appium python自动化测试系列之混合app实战(十一)

    12.1 什么是混合App 12.1.1 混合app定义 什么是混合app,其实这个不言而喻,我们的app正常来说应该都是native的,但是实际工作中却不是,反正种种原因我们的app会有native ...

  2. 一个基于Ionic3.x cordova的移动APP demo

    项目地址如遇网络不佳,请移步国内镜像加速节点 前端技术: Angular4.x + ionic3.x + cordova 项目运行: git clone git@github.com:EasyTuan ...

  3. 基于ionic+angulajs的混合开发实现地铁APP

    基于ionic+angulajs的混合开发实现地铁APP 注:本博文为博主原创,转载时请注明出处. 项目源码地址:https://github.com/zhangxy1035/SubwayMap 一. ...

  4. [Android App]IFCTT,即:If Copy Then That,是一个基于IFTTT的"This"实现

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/8075738.html IFCTT,即:If Copy Then ...

  5. [Android App]IFCTT,即:If Copy Then That,一个基于IFTTT的"This"实现

    IFCTT,即:If Copy Then That,是一个基于IFTTT(If This Then That)的"This"实现,它打通了"用户手机端操作"与& ...

  6. 一个基于NodeJS开发的APP管理CMS系统

    花了大概3周独立开发了一个基于NodeJS的CMS系统,用于公司APP的内容管理( **公司APP?广告放在最后 ^_^ ** ,管理员请理解~~~ )晚上看了部电影还不想睡,闲着也是闲着就作下小小总 ...

  7. 移动web、webApp、混合APP、原生APP、androd H5混合开发 当无网络下,android怎么加载H5界面

    PhoneGap是一个采用HTML,CSS和JavaScript的技术,创建移动跨平台移动应用程序的快速开发平台.它使开发者能够在网页中调用IOS,Android,Palm,Symbian,WP7,W ...

  8. 混合APP开发框架资料汇总

    Ionic(ionicframework)一款接近原生的Html5移动App开发框架 会html css js就可以开发app,Ionic基于angualrjs框架是一个专注于开发移动wap以及app ...

  9. 混合App 框架选型

    个人一直想做个App,但是学习 IOS 的过程发现 原生的做界面还是听麻烦的就放弃了.后来就转到混合式App阵营了 混合式App 定义 Hybrid App(混合模式移动应用)是指介于web-app. ...

随机推荐

  1. 提示“CD/DVD找不到媒体所需的驱动”

    最近在帮我姐安装win7系统时提 示“CD/DVD找不到媒体所需的驱动”,我用的是U盘安装方式,觉得奇怪,那个镜像文件我已经安装过几十次都没有出错,显然是不会有错的.但是新买的电 脑又不会太大的问题, ...

  2. C#中的引用传递和值传递。

    最近在写项目中有同事碰到这样的传值问题,可能很多对这个参数的传递还有点疑惑,自己也是对这个基础知识做一个回顾和巩固. 首先什么是值类型和引用类型可以去园里看一下相关的资料,都有介绍. 常用值类型包括: ...

  3. C++序列化使用

    error C2248 无法访问私有成员 :原因 ifstream 作为参数必须传引用! (1):C++使用STL序列化:原文链接:http://blog.csdn.net/pandaxcl/arti ...

  4. (转)RabbitMQ学习之消息可靠性及特性

    http://blog.csdn.net/zhu_tianwei/article/details/53971296 下面主要从队列.消息发送.消息接收方面了解消息传递过的一些可靠性处理. 1.队列 消 ...

  5. .apply和.call用法和区别

    apply:方法能劫持另外一个对象的方法,继承另外一个对象的属性. Function.apply(obj,args)方法能接收两个参数obj:这个对象将代替Function类里this对象args:这 ...

  6. 团体程序设计天梯赛-练习集-L1-027. 出租

    L1-027. 出租 下面是新浪微博上曾经很火的一张图: 一时间网上一片求救声,急问这个怎么破.其实这段代码很简单,index数组就是arr数组的下标,index[0]=2 对应 arr[2]=1,i ...

  7. centos7常见的操作01 UTC CST

      CentOS系统将UTC时间修改为CST时间方法 2018-10-31 07:51 世界协调时间(Universal Time Coordinated,UTC): GPS 系统中有两种时间区分,一 ...

  8. SaltStact自动化运维工具03

    存储位置   类型      采集方式                 场景Grains    minion        静态    minion启动时,可以刷新    1.获取信息 2.匹配pil ...

  9. DB2常用运维命令

    DB2是IBM公司推出关系型数据库管理系统.主要应用于银行.医院等大型机构.现今DB2主要包含以下三个系列:DB2 for Linux, UNIX and Windows(LUW) . DB2在Lin ...

  10. Project Euler 32 Pandigital products

    题意:找出所有形如 39 × 186 = 7254 这种,由 1 - 9,9个数字构成的等式的和,注意相同的积不计算两次 思路:如下面两种方法 方法一:暴力枚举间断点 /*************** ...