一个基于Angular+Ionic+Phonegap的混合APP实战

码海领航家
• 阅读 1739

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

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

安卓apk下载

一个基于Angular+Ionic+Phonegap的混合APP实战

线上地址

一、基本概念

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官网
点赞
收藏
评论区
推荐文章
Easter79 Easter79
4年前
vue+elementui搭建后台管理界面(3侧边栏菜单)
上一节搭好了主框架,但是标签页和侧边栏只是分别展示了各自的菜单,如何将二者联动起来?定义路由规则:当有children属性时,从children里取出path填充到侧边栏,如:{path:'/',redirect:'/dashboard',name:'Container',
顺心 顺心
4年前
Flutter 玩转微信——闪屏页妙用
概述众所周知,一个健全的App,通常都会有一个SplashPage页面,且该页面一般用于应用(APP)启动时,当然其存在的主要目的是承载:启动页、引导页、广告页、等待页等业务场景。笔者认为,与其说是闪屏页,倒不如叫中转页,怎么个中转法,还请听笔者一一到来...这里笔者借助以Flutter实现微信App登录的逻辑,以点带面来讲讲Sp
Android通过URL打开Activity
关注公众号QXF069为每个Activity绑定一个url可以方便的让第三方app直接打开这些Activity。也可以方便在app内部进行页面跳转,解耦。背景举一个常见的案例,假设我们有个产品A,产品A包含h5网页端和客户端,当用户在手机打开我们的h5网页端的时候,我们会期望如果用户手机安装了我们的客户端,则直接打
Stella981 Stella981
4年前
Discuz x2.5 单页制作的教程
_首先,单页包括该单页的php文件和该单页的模板(.htm)文件,比如:host.php、host.htm___单页的php文件内容如下:__<?phprequire'./source/class/class_core.php';//引入系统核心文件$discuz&discuz_core::instan
Stella981 Stella981
4年前
Chrome浏览器新标签页设置首页主页修改添加网站Infinity插件好用
!Chrome浏览器新标签页怎么设置首页主页修改添加网站Infinity插件好用(http://static.oschina.net/uploads/img/201501/03120739_g7Nz.jpg)Infinitynewtab是一款美观实用的chrome新标签页。最常访问的网站添加,修改,删除网址都有,每日一图,云备份等功能都具备。
Stella981 Stella981
4年前
FastReport 打印模版页(TFrxReportpage)复制
遇到一个奇葩的需求。一般情况下我们打印单据,用FastReport设置打印格式,也就是就设一个模版页而己,就是一种单据格式。如果打印的单据数据多了就自动打印多页了,他们的格式是一样的。也就是读同一个模版页。现的需求是,如果打印N页内容。每一页的格式除了表体外是一样的(也可能部份不同)。而表体取自不同的数据集(也就是读取不同的FDQuery),需要设置不同
酒店详情页的房价数据,怎么获取?
携程酒店详情页,指定入住日期的房价数据,怎么获取?疫情放开后很多行业开始了复苏,之前公司因为疫情暂停的项目现在又开始慢慢的启动了。最近小姐分到了一个爬取携程上一些酒店的数据需求,需要获取到酒店详情页,指定入住日期的房价数。但是据携程有反爬虫措施的,详情页的
少湖说 少湖说
1年前
鸿蒙原生开发手记:04-一个完整元服务案例
影院热映分享一个完整的元服务案例,这个案例高仿了豆瓣的小程序。简介整个元服务分为45个页面,首页为列表页,展示了当前影院热门的电影,点开是一个详情介绍页,里面有影片详情,演职表,相关影片推荐等,热门海报。打开海报是一个完整的海报展示页,点开可以产看大图。另
鸿蒙小林 鸿蒙小林
8个月前
《仿盒马》app开发技术分享-- 分类模块顶部导航列表弹窗(16)
技术栈Appgalleryconnect开发准备上一节我们实现了分类页面的顶部导航栏列表,并且实现了首页金刚区跟首页导航栏的联动,这一节我们实现导航栏列表的弹窗功能,需要学习的知识点有自定义弹窗,同时我们的数据源需要跟分类页保持一一致。功能分析1.弹窗自定
鸿蒙小林 鸿蒙小林
8个月前
《仿盒马》app开发技术分享-- 扫一扫功能(35)
技术栈Appgalleryconnect开发准备随着app的逐渐完善,我们现在需要在细节处做更多的打磨,在首页我们添加了很多静态的按钮和组件,现在我们开始对这些组件进行功能的添加,这次首先实现的是首页头部的扫一扫功能,扫一扫我们实现扫码后跳转商品详情页功能
dkll dkll
2个月前
一键部署!含聊天、直播、认证、付费、防骗的婚恋系统源码上线(h5+小程序+app三端打包)
📱三端全覆盖,流量通吃!微信小程序:轻量入口,社交裂变快,微信生态内自然增长H5网页版:无需下载,适配手机浏览器,适合信息流广告投放与SEO引流原生App(iOS/Android):基于UniApp编译,体验接近原生,支持上架应用商店✅一套代码,三端同步