本文档讲解如何使用ZDZSOFT的HTML框架开发混合手机应用。

代码下载:。


一、  主页面

如上图所示,页面包含标题栏、内容列表、底部切换和左侧按钮。

1.     标题栏

 

<div class="header">
         <span class="left"><imgid="menuBtn" src="images/menu.png"/></span>
         <spanclass="right"></span>
         <h1>移动HTML框架</h1>
</div>

 

2.     内容列表

<div class="pages"><divclass="pages-content">
         <divclass="page">
                   <divclass="content list">
                            <p></p>
                            <pclass="title"><imgsrc="images/zdz.png"/></p>
                            <pclass="info">北京掌舵者科技有限公司</p>
                            <ul>
                                     <liclass="blank"></li>
                                     <liclass="section">常用组件</li>
                                     <liclass="line" id="singleBtn">
                                               <spanclass="icon"><imgsrc="images/home.png"/></span>
                                               <spanclass="field">单页面</span>
                                               <spanclass="more"><img src="images/detail.png"/></span>
                                     </li>
                                     <liclass="line" id="layoutBtn">
                                               <spanclass="icon"><imgsrc="images/home.png"/></span>
                                               <spanclass="field">混合页面</span>
                                               <spanclass="more"><imgsrc="images/detail.png"/></span>
                                     </li>
                                     <liclass="line" id="formBtn">
                                               <spanclass="icon"><imgsrc="images/home.png"/></span>
                                               <spanclass="field">表单</span>
                                               <spanclass="more"><imgsrc="images/detail.png"/></span>
                                     </li>
                                     <liclass="line" id="dlgBtn">
                                               <spanclass="icon"><img src="images/home.png"/></span>
                                               <spanclass="field">对话框</span>
                                               <spanclass="more"><imgsrc="images/detail.png"/></span>
                                     </li>
                                     <liclass="blank"></li>
                            </ul>
                   </div>
         </div>
         <divclass="page">
                   <divclass="content list">
                            <p></p>
                            <pclass="title"><img src="images/zdz.png"/></p>
                            <pclass="info">北京掌舵者科技有限公司</p>
                            <ul>
                                     <liclass="blank"></li>
                                     <liclass="section">常用事件</li>
                                     <liclass="line" id="swipeBtn">
                                               <spanclass="icon"><imgsrc="images/home.png"/></span>
                                               <spanclass="field">页面切换</span>
                                               <spanclass="more"><imgsrc="images/detail.png"/></span>
                                     </li>
                                     <liclass="line" id="openBtn">
                                               <spanclass="icon"><imgsrc="images/home.png"/></span>
                                               <spanclass="field">多视图切换</span>
                                               <spanclass="more"><img src="images/detail.png"/></span>
                                     </li>
                                     <liclass="line" id="sideBtn">
                                               <spanclass="icon"><imgsrc="images/home.png"/></span>
                                               <spanclass="field">侧边菜单</span>
                                               <spanclass="more"><imgsrc="images/detail.png"/></span>
                                     </li>
                                     <liclass="line" id="callBtn">
                                               <spanclass="icon"><imgsrc="images/home.png"/></span>
                                               <spanclass="field">调用服务器</span>
                                               <spanclass="more"><imgsrc="images/detail.png"/></span>
                                     </li>
                                     <liclass="blank"></li>
                            </ul>
                   </div>
         </div>
         <divclass="page">
                   <divclass="content list">
                            <p></p>
                            <pclass="title"><imgsrc="images/zdz.png"/></p>
                            <pclass="info">北京掌舵者科技有限公司</p>
                            <ul>
                                     <liclass="blank"></li>
                                     <liclass="section">本地数据</li>
                                     <liclass="line" id="dataBtn">
                                               <spanclass="icon"><imgsrc="images/home.png"/></span>
                                               <spanclass="field">个人数据</span>
                                               <spanclass="more"><imgsrc="images/detail.png"/></span>
                                     </li>
                                     <liclass="line" id="wifiBtn">
                                               <spanclass="icon"><imgsrc="images/home.png"/></span>
                                               <spanclass="field">wifi列表</span>
                                               <spanclass="more"><imgsrc="images/detail.png"/></span>
                                     </li>
                                     <liclass="blank"></li>
                            </ul>
                   </div>
         </div>
         <divclass="page">
                   <divclass="content list">
                            <p></p>
                            <pclass="title"><img src="images/zdz.png"/></p>
                            <pclass="info">北京掌舵者科技有限公司</p>
                            <ul>
                                     <liclass="blank"></li>
                                     <liclass="section">插件扩展</li>
                                     <liclass="line" id="pluginBtn">
                                               <spanclass="icon"><imgsrc="images/home.png"/></span>
                                               <spanclass="field">自定义插件</span>
                                               <spanclass="more"><imgsrc="images/detail.png"/></span>
                                     </li>
                                     <liclass="blank"></li>
                            </ul>
                   </div>
         </div>
</div></div>

 

3.     底部切换

<div class="foot">
         <divclass="tabbar">
        <aclass="item">
            <divclass="icon"><imgsrc="images/home.png"></div>
            <pclass="label">组件</p>
        </a>
        <aclass="item">
            <divclass="icon"><imgsrc="images/user.png"></div>
            <pclass="label">事件</p>
        </a>
        <aclass="item">
            <divclass="icon"><imgsrc="images/work.png"></div>
            <pclass="label">数据</p>
        </a>
        <aclass="item">
            <divclass="icon"><imgsrc="images/setting.png"></div>
            <pclass="label">扩展</p>
        </a>
    </div>
</div>

 

4.     左侧按钮

<div class="nav nav-left">
         <divclass="nav-content">
                   <p></p>
                   <pclass="title"><imgsrc="images/zdz.png"/></p>
                   <pclass="info">北京掌舵者科技有限公司</p>
                   <ul>
                            <liclass="blank"></li>
                            <liclass="section">菜单</li>
                            <liclass="line" id="callBtn">
                                     <spanclass="icon"><imgsrc="images/home.png"/></span>
                                     <spanclass="field">菜单1</span>
                            </li>
                            <liclass="line" id="callBtn">
                                     <spanclass="icon"><imgsrc="images/home.png"/></span>
                                     <spanclass="field">菜单2</span>
                            </li>
                            <liclass="blank"></li>
                   </ul>
         </div>
</div>

 

5.     事件响应

function onPageLoad() {
         zdztool.full();
         zdztool.click("menuBtn",   onShowMenu);
         zdztool.href("singleBtn",  "single.html");
         zdztool.href("layoutBtn",  "layout.xml");
         zdztool.href("formBtn",    "form.html");
         zdztool.href("dlgBtn",     "dialog.html");
         zdztool.href("swipeBtn",   "pages.html");
         zdztool.href("openBtn",    "views.html");
         zdztool.href("sideBtn",    "side.html");
         zdztool.href("callBtn",    "call.html");
         zdztool.href("dataBtn",    "data.html");
         zdztool.href("wifiBtn",    "wifi.html");
         zdztool.href("pluginBtn",  "plugin.html");
}
function onShowMenu() {
         zdztool.showLeftNav();
}

 

6.     代码说明

(1)       页面初始化完成时,会自动检测是否存在onPageLoad这个函数,如果存在,则会调用。

(2)       zdz和zdztool是两个很重要的js对象,封装了各种事件和功能函数。

(3)       pages是多页面加载的方式,系统遇到这个标签时,会自动加载每个子页面,并且进行子页面排序编号。

(4)       foot的tabbar标签是页面底部切换菜单,系统会自动将这个标签和上面的子页面进行绑定,完成页面切换的功能。

(5)       nav和nav-left是指左侧弹出菜单,系统会自动将加载这个标签并放置在页面左侧隐藏的区域。

(6)       为每个需要响应事件的页面标签添加id,并调用zdztool.click或zdztool.href方法设置跳转事件。一般不建议使用onclick方法,系统使用FastClick来实现跳转事件,延迟只有50ms。

 

二、  列表页面

列表页面是一个简单的列表显示组件,用户可以在这个组件的基础上扩展样式和功能。

1.     列表

 

<div class="page">
         <divclass="header">
                   <spanclass="back"><img id="backBtn"src="images/back.png"/></span>
                   <spanclass="right"></span>
                   <h1>简单页面</h1>
         </div>
         <divclass="content list">
                   <p></p>
                   <pclass="title"><imgsrc="images/zdz.png"/></p>
                   <pclass="info">北京掌舵者科技有限公司</p>
                   <ul>
                            <liclass="blank"></li>
                            <liclass="section">这是简单页面</li>
                            <liclass="line">
                                     <spanclass="icon"><imgsrc="images/home.png"/></span>
                                     <spanclass="field">记录 ...</span>
                                     <spanclass="more"><imgsrc="images/detail.png"/></span>
                            </li>
                            <liclass="line">
                                     <spanclass="icon"><imgsrc="images/home.png"/></span>
                                     <spanclass="field">记录 ...</span>
                                     <spanclass="more"><img src="images/detail.png"/></span>
                            </li>
                            <liclass="line">
                                     <spanclass="icon"><imgsrc="images/home.png"/></span>
                                     <spanclass="field">记录 ...</span>
                                     <spanclass="more"><imgsrc="images/detail.png"/></span>
                            </li>
                            <liclass="line">
                                     <spanclass="icon"><img src="images/home.png"/></span>
                                     <spanclass="field">记录 ...</span>
                                     <spanclass="more"><imgsrc="images/detail.png"/></span>
                            </li>
                            <liclass="line">
                                     <spanclass="icon"><imgsrc="images/home.png"/></span>
                                     <spanclass="field">记录 ...</span>
                                     <spanclass="more"><imgsrc="images/detail.png"/></span>
                            </li>
                            <liclass="blank"></li>
                   </ul>
         </div>
</div>

 

2.     事件响应

function onPageLoad() {
         zdztool.full();
         zdztool.click("backBtn",onPrevious);
}
function onPrevious() {
         zdztool.previous();
}

3.     代码说明

(1)       这里要注意的是,使用zdztool.previous函数,可以返回原来的主页面。

 

 

三、  混合页面

混合页面使用原生的ZDZImageView来显示图片,在图片上定制菜单和搜索条。

1.     混合页面配置

 

<?xml version="1.0"encoding="utf-8"?>
<view name="root"type="group/ZDZViewGroup">
         <viewname="baidu" type="view/ZDZImageView"source="fit:FIT_XY; images/back.jpg"  layout="group/ZDZParamFull" constraint="margin_top:64" />
         <view name="title"type="web/ZDZWebView" source="local:layout.html"layout="group/ZDZParamFull" constraint="fill_y:fix; align_y:top; height: 260" />
</view>

配置了两个视图来显示该页面,其中ZDZImageView是原生图片显示组件,ZDZWebView是html显示组件,并定义了布局的约束条件。

 

2.     HTML页面

 

<div class="header">
         <spanclass="back"><img id="backBtn"src="images/back.png"/></span>
         <spanclass="right"></span>
         <h1>混合页面</h1>
</div>
<div class="search_bar">
         <table><tr><td>
                   <div><table><tr>
                            <tdclass="left"><canvasid="searchLine"></canvas></td>
                            <td><inputtype="text" id="fsearch" placeholder="请输入目的地" /></td>
                            <tdclass="right" width="40px"><imgid="searchbtn" src="images/search.png"/></td>
                   </tr></table></div>
         </td></tr></table>
</div>

 

显示一个标题栏和搜索条。

 

3.     事件响应

function onPageLoad() {
         zdztool.searchline("#0099e8");
         zdztool.click("backBtn",onPrevious);
}
function onPrevious() {
         zdztool.previous();
}

 

4.     代码说明

(1)       Html页面叠加在原生页面上

(2)       原生页面的js可以通过View视图的id来调用原生视图提供的功能。

 

 

四、  原生跳转页面

采用原生事件加载和跳转。

 

五、  插件说明页面

扩展原生插件和功能。

 

 

 

六、  表单页面

表单页面包含了常用的表单域组件。

 

1.     单选和多选页面

<div class="zdz_lines_title">单选列表项</div>
<div class="zdz_lines zdz_lines_radio">
    <labelclass="zdz_line zdz_check_label" for="x11">
        <divclass="zdz_line_bd zdz_line_primary">
           <p>zdz standard</p>
        </div>
        <divclass="zdz_line_ft">
            <inputtype="radio" class="zdz_check" name="radio1"id="x11">
            <spanclass="zdz_icon_checked"></span>
        </div>
    </label>
    <labelclass="zdz_line zdz_check_label" for="x12">
        <divclass="zdz_line_bd zdz_line_primary">
           <p>zdz standard</p>
        </div>
        <divclass="zdz_line_ft">
            <inputtype="radio" name="radio1" class="zdz_check"id="x12" checked="checked">
            <spanclass="zdz_icon_checked"></span>
        </div>
    </label>
</div>
<div class="zdz_lines_title">复选列表项</div>
<div class="zdz_lines zdz_lines_checkbox">
    <labelclass="zdz_line zdz_check_label" for="s11">
        <div class="zdz_line_hd">
            <inputtype="checkbox" class="zdz_check"name="checkbox1" id="s11" checked="checked">
            <iclass="zdz_icon_checked"></i>
        </div>
        <divclass="zdz_line_bd zdz_line_primary">
           <p>standard is dealt for u.</p>
        </div>
    </label>
    <labelclass="zdz_line zdz_check_label" for="s12">
        <divclass="zdz_line_hd">
            <inputtype="checkbox" name="checkbox1"class="zdz_check" id="s12">
            <iclass="zdz_icon_checked"></i>
        </div>
        <divclass="zdz_line_bd zdz_line_primary">
           <p>standard is dealicient for u.</p>
        </div>
    </label>
</div>

 

七、  对话框和按钮页面

对话框页面包含了常用的对话框、Toast、动画等组件。

 

1.     对话框、Toast页面

<div class="page">
         <divclass="header">
                   <spanclass="back"><img id="backBtn"src="images/back.png"/></span>
                   <spanclass="right"></span>
                   <h1>对话框</h1>
         </div>
         <divclass="content list">
                   <p></p>
                   <pclass="title"><imgsrc="images/zdz.png"/></p>
                   <pclass="info">北京掌舵者科技有限公司</p>
                   <aid="alert" class="zdz_btn zdz_btn_primary">提示框</a>
                   <aid="confirm" class="zdz_btn zdz_btn_warn">对话框</a>
                   <aid="toast" class="zdz_btnzdz_btn_default">toast</a>
                   <divclass="button_sp_area">
                            <aid="load" class="zdz_btn zdz_btn_plain_default">加载动画</a>
                            <aid="hide" class="zdz_btn zdz_btn_plain_primary">取消动画</a>
                   </div>
         </div>
</div>

 

2.     事件响应

 

function onPageLoad() {
         zdztool.full();
         zdztool.click("backBtn",onPrevious);
         zdztool.click("alert",   onAlert);
         zdztool.click("confirm",onConfirm);
         zdztool.click("toast",   onToast);
         zdztool.click("load",    onLoad);
         zdztool.click("hide",    onHide);
}
function onPrevious() {
         zdztool.previous();
}
function onAlert() {
         zdztool.showAlert("警告","发生错误");
}
function onConfirm() {
         zdztool.showConfirm("确认","请选择");
}
function onToast() {
         zdztool.showToast("请选择");
}
function onLoad() {
         zdztool.showLoading();
}
function onHide() {
         zdztool.hideLoading();
}

 

3.     代码说明

(1)       调用zdztool方法显示内容,无需引入其他内容