[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的三種方式:

  1. 編輯時,通過添加active 類名來指定默認view
  2. 運行時,通過錨定view的id來切換
  3. 運行時,通過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>
View Code

  五、導航歷史(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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM