文档章节

ionic实践教程

java_speed
 java_speed
发布于 2015/04/04 18:00
字数 782
阅读 448
收藏 15

不准备做原生开发,就一直研究各种混合开发的框架,各种对比之后确定ionic框架,主要有几点理由:

  1. 漂亮的界面(基本就是模仿ios的UI来开发的)
  2. 入门简单,基本上根据官方提示,很快就进入demo
  3. 集成cordova简单(好像cordova官方说ionic贡献不少)
  4. 基本iOS和Android没什么差别
  5. 基本UI控件齐全
  6. 社区支持很到位。

ionic,http://ionicframework.com/ ,官方对他的定位是:HTML5前端混合框架(不是取代PhoneGap)。入门介绍可以直接参考官网,这里说一下,各种最佳实践。

工具

个人建议使用这个 HBuilder, http://www.dcloud.io/ ,功能绝对强过WebStorm,遗憾的是:妈的需要注册,而且密码居然是明文的,另外没有Linux发行版。但比较强大就忍了。

初始化

首先确定你的app大致框架,确定采用哪种模板,主要有blank、sidemenu、tabs三个模板

ionic start MyApp sidemenu # 我主要采用sidemenu来导航



修改您的项目信息,如app中文名、描述、作者等等
vi config.xml # 基本上一眼就能看出来哪些信息需要你重新改



修改iOS和Android可能在显示上不一致的地方,基本参考 http://ionicframework.com/docs/api/provider/$ionicConfigProvider/ ,我主要修改sidemenu title对齐问题,checkbox样式、tabs上下问题
vim www/js/app.js

.config(function($ionicConfigProvider, $stateProvider, $urlRouterProvider) {

    $ionicConfigProvider.form.checkbox("circle");
    $ionicConfigProvider.form.toggle("large");
    $ionicConfigProvider.tabs.position("bottom");
    $ionicConfigProvider.tabs.style("standard");



对齐问题:
<!-- 就是导航条居中对齐 -->

<ion-nav-bar class="bar-positive" no-tap-scroll="true" align-title="center">



浏览器测试

# 浏览器测试(默认iOS的样子)
ionic serve 
# 浏览器测试(iOS和Android同时测试)
ionic serve --lab


# iOS/Android 环境配置
# Android需要按照Android虚拟机,并创建4.2以上版本的模拟机
# iOS需要Xcode环境
ionic platform add ios/android
ionic run ios/android



几点建议

  1. 先看看别人踩过的坑:https://github.com/my101du/ionic-babythings
  2. iOS CORS跨域不行,没办法只能jsonp
  3. 尽量搞个Mac,提高工作效率
  4. iOS“无痕模式”不能写localstorage数据,这个只能提示用户不能使用
    # 在app就绪的时候提示,www/js/app.js
    
    
    .run(function($ionicPlatform) {
    	$ionicPlatform.ready(function() {
    		// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
    		// for form inputs)
    		if (window.cordova && window.cordova.plugins.Keyboard) {
    			cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
    		}
    		if (window.StatusBar) {
    			// org.apache.cordova.statusbar required
    			StatusBar.styleDefault();
    		}
    		
    		try {
    			window.localStorage.isBrowser = ionic.Platform.platforms[0] === 'browser';
    		} catch (_) {
    			alert("本地储存写入错误,请关闭“隐身模式”或“无痕浏览”。");
    		}
    	});
    })



  5. iOS真机测试,尽量搞个开发者账号,实在不行淘宝一个“开发者证书”,这样可以真机测试
    ionic build ios # 编译出xcode工程



  6. 根据《ionic action》一书说,如果ionic的某个组件在CSS和api中都有,请优先选用css
  7. 更改绑定IP
     
    ionic address # 重新选择绑定IP



PS:

附上我的网站:印象网盘搜索的Android版下载地址,iOS由于没开发者账号不发布。

Android: http://dl.impress.pw/impress-search.apk

wap: http://mobile.impress.pw 

样子基本一模一样。



© 著作权归作者所有

共有 人打赏支持
java_speed
粉丝 112
博文 44
码字总数 17031
作品 1
成都
程序员
私信 提问
Tonge/TongeNewsApp

注:此项目服务器已经关闭,接口已无法使用。 ###前言 这是一个系列文章,从环境搭建开始讲解,包括网络数据请求,将持续更新到项目完结。实战开发中遇到的各种问题的解决方案,也都将毫无保...

Tonge
2016/11/10
0
0
前端教程

IONIC(基于angular) 教程: 菜鸟教程:http://www.runoob.com/ionic/ionic-tutorial.html NPM: 1、安装依赖:npm install -g ionic cordova 2、创建项目:ionic start myIonicApp IONIC2......

jason_wu_2
2016/10/11
18
0
ionic-native-transitions让html5开发的app和原生一样快

Ionic(ionicframework)一款接近原生的Html5移动App开发框架 会html css js就可以开发跨平台的app 但是大家都知道 ionic在稍微低配置的android手机上面表现不是特别好。下面介绍的ionic-nat...

htzhanglong
2016/01/17
4.1K
2
移动开发者们,是时候使用HTML5了!

Html5喊了好多年了,至今仍没有被大规模的使用。依然记得2012年参加HTML5梦工厂(现在叫iWeb峰会)去了好多人,当时天真的以为,Html5真的开始流行起来了,于是就在会场卖书的地方买了本Htm...

OneAPM蓝海讯通
2015/07/10
252
2
Mobile first! Wijmo 5 + Ionic Framework之:Hello Wor

本教程中,我们用Wijmo 5 和 Ionic Framework实现一个Mobile的工程:Hello World。 Ionic是什么? Ionic是一个HTML5框架、免费、开源,用于帮助生成hybird mobile Apps (混合移动应用)。 Ioni...

葡萄城控件技术团队
2014/10/28
0
2

没有更多内容

加载失败,请刷新页面

加载更多

如何在 Linux 系统查询机器最近重启时间

在你的 Linux 或类 UNIX 系统中,你是如何查询系统上次重新启动的日期和时间?怎样显示系统关机的日期和时间? last 命令不仅可以按照时间从近到远的顺序列出该会话的特定用户、终端和主机名...

来来来来来
59分钟前
1
0
Redis协议是什么样的

前言 我们用过很多redis的客户端,有没有相过自己撸一个redis客户端? 其实很简单,基于socket,监听6379端口,解析数据就可以了。 redis协议 解析数据的过程主要依赖于redis的协议了。 我们...

春哥大魔王的博客
今天
3
0
乱入Linux界的我是如何学习的

欢迎来到建哥学Linux,咳!咳!咳!开个玩笑哈,我是一个IT男,IT界的入门选手,正在学习Linux。 在之前,一直想进军IT界,学习IT技术,但是苦于没有人指导,也不知道学什么,最开始我自己在...

linuxCool
今天
3
0
携程Apollo统一配置中心的搭建和使用(java)

一.Apollo配置中心介绍 1、What is Apollo 1.1 Apollo简介 Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到...

morpheusWB
今天
2
0
远程获得的有趣的linux命令

使用这些工具从远程了解天气、阅读资料等。 我们即将结束为期 24 天的 Linux 命令行玩具日历。希望你有一直在看,如果没有,请回到开始,从头看过来。你会发现 Linux 终端有很多游戏、消遣和...

Linux就该这么学
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部