[Learn AF3]第一章 如何使用App Framework 3.0 构造应用程序
af3的变化非常大。参见[译]Intel App Framework 3.0的变化
一、应用需要引用的js脚本:
af3中不在自己实现dom选择器,而是选择基于jquey或兼容jquery的库如zepto等,touch layer也依靠fastclick。下面就是af3应用的head部分示意代码,对比2.x变化很明显,这里引入了jquery和fastclick,没有了appframework.js
<head>
<title>LearAF3</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="js/af3.0/af.ui.css" />
<link rel="stylesheet" type="text/css" href="js/af3.0/icons.min.css" />
<script src="js/libs/jquery/jquery-2.1.1.min.js"></script>
<script src="js/libs/fastclick/fastclick-1.0.3.min.js"></script>
<script src="js/af3.0/appframework.ui.js"></script>
...
</head>
二、页面组织结构:
af3中应用视觉元素组织变化巨大,一改2.x时代panel和header,footer混乱的现象,3.0中新增加了一个顶级元素类型(除afui)view,现在header,footer和panel页面都属于view元素,一个view内部的panel有相同的header和footer,需要不同的footer或header需要创建新的view,窃以为这样清爽多了:),请看:
<body>
<div class="view" id="viewMain">
<header>
<h1 class="title">Main view</h1>
<a class="button icon menuButton" style="float:right"></a>
</header>
<div class="pages">
<div class="panel active" id="page01"> this is page in main view</div>
</div>
<footer>
<a data-transition="up-reveal" class="icon html5" onclick="$.afui.loadContent('#view2',false,false,'slide');">Next view</a>
</footer>
</div>
<div class="view active" id="view2">
<header>
<h1 class="title">view 22</h1>
<a class="button icon menuButton" style="float:right"></a>
</header>
<div class="pages">
<div class="panel active" id="page22" >
<p>this is page in view 2</p>
</div>
</div>
<footer>
<a href="#viewMain" data-transition="up-reveal:back" class="icon home">back to main view</a>
</footer>
</div>
</body>
需要注意的是,view中的panel元素,还需要包裹一层pages元素,即使只有一个panel。
代码中同时显示了切换view的三种方式:
- 编辑时,通过添加active 类名来指定默认view
- 运行时,通过锚定view的id来切换
- 运行时,通过js函数loadContent
三、自定义themes:
af3中默认使用系统theme,如果你需要自定义theme,需要设定useOSThemes为false
$.afui.useOSThemes=false; //This must be set before $(document).ready()
另外,还需要在view之外再包裹一层id为afui的div元素,并指定相应theme的class。af3内置的theme有:
ios,ios7,android(light,dark),win8(light dark),bb/*blackberry*/,tizen
四、总体代码:
<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
<head>
<title>LearAF3</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="js/af3.0/af.ui.base.css" />
<link rel="stylesheet" type="text/css" href="js/af3.0/af.ui.css" />
<link rel="stylesheet" type="text/css" href="js/af3.0/icons.min.css" />
<script src="js/libs/jquery/jquery-2.1.1.min.js"></script>
<script src="js/libs/fastclick/fastclick-1.0.3.min.js"></script>
<script src="js/af3.0/appframework.ui.js"></script>
<script>
$.afui.useOSThemes=false;
</script>
</head>
<body>
<div id="afui" class="bb">
<div id="splashscreen">
<h1>Lear App Framework 3</h1>
<span class="icon loading">loading...</span>
</div>
<div class="view" id="viewMain">
<header>
<h1 class="title">Main view</h1>
<a class="button icon menuButton" style="float:right"></a>
</header>
<div class="pages">
<div class="panel" id="page1">
<p>this is page in main view</p>
</div>
</div>
<footer>
<a data-transition="up" class="icon html5" onclick="$.afui.loadContent('#view2',false,false,'up');">Next view</a>
</footer>
</div>
<div class="view active" id="view2">
<header>
<h1 class="title">view 22</h1>
<a class="button icon menuButton" style="float:right"></a>
</header>
<div class="pages">
<div class="panel active" id="page2" >
<p>this is page in view 2</p>
</div>
</div>
<footer>
<a href="#viewMain" data-transition="up:back" class="icon home">back to main view</a>
</footer>
</div>
</div>
</body>
</html>
五、导航历史(history):
af3为每个view,单独记录页面(panel)的浏览记录。
目前发现af3中每个view下面必须指出默认panel,否则不显示默认panel。并且需要通过给panel添加active类名,而不是通过data-selected="true"
[译]Intel App Framework 3.0的变化 [Learn AF3系列] 第二章 学习App Framework 3.0的组件一:View
[Learn AF3]第一章 如何使用App Framework 3.0 构造应用程序的更多相关文章
- [译]Intel App Framework 3.0的变化
App Framework 3.0 原文 IAN M. (Intel) 发布于 2015-02-11 05:24 我们高兴地宣布App Framework 的新版本3.0发布了.你可以获得最新的代码 ...
- [Learn AF3]第二章 App Framework 3.0的组件View——AF3的驱动引擎
View:af3中的驱动引擎 组件名称:View 使用说明:按照官方的说法,view组件是af3的“驱动引擎(driving force)”,view是af3应用的基础,一个app中可以包 ...
- [Learn AF3]第六章 App Framework 3.0中的内置矢量图标
AF3的内置矢量图标 介绍:要使用af3中的图标,必须首先引入icon.css,由于文件中已经内置了字体文件数据,因此不需要引入字体文件支持. <link rel="styleshee ...
- 第一章:hybrid app开发之技术选型
伴随着移动互联网的兴起,越来越多的企业将部分资源投入其中,想在互联网+的大潮中分一杯羹,并期望着站在风口上,成为时代的弄潮儿. 现在不会做一个app都不好意思说是搞互联网的,那么开发一个app的方式有 ...
- 《Java从入门到失业》第一章:计算机基础知识(三):程序语言简介
1.3程序语言简介 我们经常会听到一些名词:低级语言.高级语言.编译型.解释型.面向过程.面向对象等.这些到底是啥意思呢?在正式进入Java世界前,笔者也尝试简单的聊一聊这块东西. 1.3.1低级语言 ...
- [Learn AF3]第三章 App Framework 3组件之Panel:afui的核心
Panel,afui的核心组件 组件名称:Panel 使用说明:按照官方的说法,panel组件是af3的“核心(heart of the ui)”,panel用于构造应用中独立的内容展示区域, ...
- [Learn AF3]第七章 App framework组件之Popup
AF3的弹出对话框Popup 组件名称:Popup 是否js控件:是,$.afui.popup 说明:af3中的popup和af2中相比变化不大,依然是通过插件popup来实现的 方法 ...
- [Learn AF3]第五章 App Framework 3组件之Drawer——Side Menu
Drawer——Side menu 组件名称:Drawer 说明:af3中的side menu和af2中有很大变化,af3中的side menu实际上是通过插件$.afui.drawer来实现 ...
- [AFUI]App Framework Quickstart
---------------------------------------------------------------------------------------------------- ...
随机推荐
- django模型查询
概述 查询集表示从数据库获取的对象的集合 查询集可以有多个过滤器 过滤器就是一个函数,基于所给的参数限制查询集结果 从SQL角度来说,查询集和select语句等价,过滤器就像where条件 查询集 在 ...
- Mybatis之工作原理
1.Mybatis的架构 1.1 Mybatis的框架分层 1.2 MyBatis的实现原理 mybatis底层还是采用原生jdbc来对数据库进行操作的,它支持定制化 SQL.存储过程以及高级映射的优 ...
- Android实例-调用GOOGLE的TTS实现文字转语音(XE7+小米2)(XE10.1+小米5)
相关资料: 注意:在手机上必须选安装文字转语音引擎“google Text To Speech”地址:http://www.shouji56.com/soft/GoogleWenZiZhuanYuYi ...
- C#学习笔记(27)——委托排序(1)
说明(2017-11-20 17:21:35): 1. 感觉难点都在冒泡排序上..貌似之前跳过去了没学啊!冒泡排序的精髓就在于,两两比较,最大的排到最后一位,再把前面的重新两两比较,把最大的排到倒数第 ...
- 解密SVM系列(二):SVM的理论基础
上节我们探讨了关于拉格朗日乘子和KKT条件.这为后面SVM求解奠定基础,本节希望通俗的细说一下原理部分. 一个简单的二分类问题例如以下图: 我们希望找到一个决策面使得两类分开.这个决策面一般表示就是W ...
- Postgres数据库补丁脚本示例
SET client_encoding = 'UTF8';-- 新建序列和表DROP TABLE IF EXISTS cms_user_unit;DROP SEQUENCE IF EXISTS cms ...
- linux软件管理(六)
[教程主题]:linux软件管理 [1]软件包管理 在系统管理中,软件包的管理是最重要的,是系统管理的基础的基础, 只有我们学会软件包的管理才能谈得上其它的应用. RPM RPM是软件管理程序,提供软 ...
- Android开发,使用背景图(xml drawable)为view 设置边框
Android 开发中,遇到需要设置边框的情景,使用背景图来实现,代码如下: <layer-list xmlns:android="http://schemas.android.com ...
- 微信小程序——picker通过value返回你想获取的值
关于微信小程序中的picker使用方法可以访问:picker-小程序 从它的官方文档中,可以看出它返回的value值是它range的下标: 在项目中,我们大多数时候传的值并不是需要这个下标,而是其他的 ...
- Java finally语句是在try或catch的retrurn之前还是之后执行
若try或catch中没有return语句,则按正常执行流,从上到下,finally里的所有修改都生效. 这里讨论的是try或catch里有return或throw语句的情形,此情形比较让人迷惑. 总 ...