写在前面

本系列文章我将介绍一下从零开始利用hubuild,mui实现微信app的开发,该系列是个人学习记录,所以在每篇文章中,都是从怎么去实现开始讲解,然后再把实例中涉及知识点做一个概述。

创建一个mui项目

HBuilder是DCloud(数字天堂)推出的一款支持HTML5的Web开发IDE,因为HBuilder内部集成了很多mui组件,所以用HBuilder可以实现mui的快速开发,在开始开发之前,我们首先需要利用HBuilder创建一个mui的项目,文件-新建-移动App,如下图:

布局篇

首页我们来看一下首页的布局,在首页中,页面可以分成三部分头部+主体部分+底部菜单,接下来我们将去讲解每一部分具体怎样实现

头部实现

在Hbuild中输入mh选择mHeader(标题栏),即可以快速生成一个app的头部,如下代码:

    <header class="mui-bar mui-bar-nav">
        <h1 class="mui-title">微信</h1>
    </header>

底部菜单栏

在Hbuild中输入mt选择mTab(底部选项卡),即可以快速生成app的底部菜单栏,如下代码:

效果预览:

通过上面两步,我们已经基本完成了微信的头部跟底部,但是这个跟微信首页还是有一些不一样的,首先微信的头部是那种黑灰色,而我们自动生成的微信头部是白色,底部菜单栏的图标也不一致,下面我们就针对这两个做一下微调

  1. 头部样式重写:

.mui-bar-nav{
    background-color: #242A2D;
}

.mui-bar-nav .mui-title{
    color: #fff;
}
  1. 底部菜单栏自定义图标:

  • mui添加自定义图标

底部菜单栏的图标有的在mui的图标库中找不到匹配的,所以这里我们用到自定义的字体图标,字体图标可以在阿里巴巴矢量图标库中(http://www.iconfont.cn/)找到,图标找到之后全部添加入库,然后下载代码,为了统一目录,将下载下来的文件包里面的字体文件拷贝到我们项目的fonts文件夹中,将css文件拷贝到我们项目的css文件中,这里需要注意的是,拷贝之后,css中的字体css需要将路径改一下,如下图

  • 引用自定义图标

图标找到并且按照上面的方法设置好之后,接下来我们就可以在我们的项目中引用我们的图标了,引用的时候,只需要添加.icontfont类,字体图标相关的类,如下图:

主体部分实现

在mobile app开发过程中,经常遇到卡头卡尾的页面,此时若使用局部滚动在android手机上会出现滚动不流畅的问题; mui的解决思路是:将需要滚动的区域通过单独的webview实现,完全使用原生滚动。具体做法则是:将目标页面分解为主页面和内容页面,主页面显示卡头卡尾区域,比如顶部导航、底部选项卡等;内容页面显示具体需要滚动的内容。所以接下来我们先将创建子页面的相关知识点做一个概述。

Webview

首先我们介绍一个非常重要的知识点webview,Webview模块管理应用窗口界面,实现多窗口的逻辑控制管理操作。通过plus.webview可获取应用界面管理对象关于webviewde的详细介绍以及下面罗列知识点参数说明,可以查阅文档:http://www.html5plus.org/doc/zh_cn/webview.html

  • create

create创建Webview窗口,用于加载新的HTML页面,可通过styles设置Webview窗口的样式,创建完成后需要调用show方法才能将Webview窗口显示出来。

//语法:
WebviewObject plus.webview.create( url, id, styles, extras );
  • currentWebview

currentWebview用于获取当前窗口的WebviewObject对象

//语法
WebviewObject plus.webview.currentWebview();
  • hide

根据指定的WebviewObject对象或id隐藏Webview窗口,使得窗口不可见。

//语法
void plus.webview.hide( id_wvobj, aniHide, duration, extras );
  • show

示已创建或隐藏的Webview窗口,需先获取窗口对象或窗口id,并可指定显示窗口的动画及动画持续时间

//语法
void plus.webview.show( id_wvobj, aniShow, duration, showedCB, extras );
  • append

将另一个Webview窗口作为子窗口添加到当前Webview窗口中,添加后其所有权归父Webview窗口,当父窗口关闭时子窗口自动关闭。

void wobj.append( webview );

以上知识点只是接下来要用到的知识点,更多的关于webview的知识点可以自己查询上面链接学习

mui.plusReady()

在app开发中,若要使用HTML5+扩展api,必须等plusready事件发生后才能正常使用,mui将该事件封装成了mui.plusReady()方法,涉及到HTML5+的api,建议都写在mui.plusReady方法中。

事件绑定

除了可以使用addEventListener()方法监听某个特定元素上的事件外, 也可以使用.on()方法实现批量元素的事件绑定。在开发移动端应用的时候,单击事件是tap,而在web页面中,是click

具体实现:

首先,我们需要创建4个子页面,分别对应底部菜单栏,在本实例中四个子页面分别为'weixin.html','contact.html','find.html','own.html'。下面是创建子页面,已经实现tab切换的具体实现:

    <script type="text/javascript">
          var subPages=['weixin.html','contact.html','find.html','own.html'];  //创建一个数组,存放子页面
          var subPageStyle={
              top:'44px',
              bottom:'50px'
          }; //subPageStyle为子页面的样式
          mui.plusReady(function () {
              var self=plus.webview.currentWebview();  //获取到当前窗体
              for (var i=0;i<subPages.length;i++) {
                  var sub=plus.webview.create(subPages[i],subPages[i],subPageStyle); //创建子页面
                  sub.hide();   //隐藏子页面
                  self.append(sub); //将子页面插入到当前窗体中
              }
              plus.webview.show(subPages[0]);//让第一个子页面显示出来
          });

          mui('.mui-bar-tab').on('tap','a',function(e){
              var tagPage=this.getAttribute('href');
              plus.webview.show(tagPage,"fade-in",100);
          })    //点击切换对应子页面
    </script>

通过上面这些步骤的完成,我们基本上完成了一个微信首页的开发,也实现了底部菜单栏的切换

使用hubuild,mui开发微信app—首页(一)的更多相关文章

  1. 跨平台移动APP开发进阶(二)HTML5+、mui开发移动app教程

    前端开发APP,从HBuilder开始~ 序 通过 HTML5 开发移动App 时,会发现HTML5 很多能力不具备.为弥补HTML5 能力的不足,在W3C 中国的指导下成立了www.HTML5Plu ...

  2. php开发微信APP支付接口

    之前在开发APP中用到了微信支付,因为是第一次用,所以中途也遇到了好多问题,通过查看文档和搜集资料,终于完成了该功能的实现.在这里简单分享一下后台php接口的开发实例. 原文地址:代码汇个人博客 ht ...

  3. H5外包团队 H5开发微信APP的优势有哪些

    H5外包团队 H5开发微信APP的优势有哪些

  4. WeX5是主要进行app开发吗?能开发微信App吗?

    WeX5是一款html5开发工具,可以进行app开发,做出各种H5 App,同样也可以进行主要运行在PC的html5产品,. WeX5开发的应用,不仅可以在微信上运行,也可以直接手机浏览器运行,或者打 ...

  5. 开发微信App支付

    1.首先到官方下载Demo,地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1 下载后的目录结构如下:

  6. mui开发app之webview是什么

    WebView(网络视图)能加载显示网页,可以将其视为一个浏览器,webview被封装在html5+,plus对象中,底层由java,OC实现. 先来谈谈我对webview的理解: 使用mui开发的a ...

  7. 利用 MUI开发app, 如何实现侧滑菜单及其主体部分上下滑动

     利用mui开发APP 之侧滑菜单主内容滚动问题 MUI作为开发者常用的框架之一,其号称最接近原生APP体验的高性能前端框架.因此利用mui开发移动APP,可以为开发者提供很大的便利和接近原生的体验. ...

  8. mui开发webapp(2)

    前端开发APP,从HBuilder开始~ 序 通过 HTML5 开发移动App 时,会发现HTML5 很多能力不具备.为弥补HTML5 能力的不足,在W3C 中国的指导下成立了www.HTML5Plu ...

  9. HBuilder/Mui开发ios使用上拉刷新导致滚动条无法使用的解决方法

    HBuilder/Mui开发的APP使用上拉刷新,当滚动到底部是会触发上拉刷新,加载更多数据.但是ios上确是一个坑,导致滚动条无法滚动. 解决方法 放弃Mui的上拉刷新,自己使用JS实现. var ...

随机推荐

  1. UVa 10670 - Work Reduction

    题目大意:对n份文件进行处理使其减少到m份,有l个机构可供选择.每个机构提供两种方案:每减少一份收费a元,或者减少到文件数量的一半收费b元.根据各个机构收取费用进行排序. 很直接的题目,直接进行模拟就 ...

  2. 把windows的bat用好了,也很不错

    taskkill /f /t /im nginx.exe cp2nginx xcopy /e /i /y “D:\workspace\workspace1\aff\WebContent” “D:\ng ...

  3. 插入排序法-java案例详解

    /** * 功能:插入排序法 * 基本思想:把n个待排序的元素看成一个有序和无序表,开始时有序表中只包含一个元素, * 无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码 ...

  4. 在Delphi中隐藏程序进程

    在开发某些软件的时候,为了保护程序自身,就需要用到隐藏程序进程.以下通过实例来讲解隐藏程序进程的方法: 1.创建一个新的项目 Project1 选择File,New Application.在表单Fo ...

  5. qlv格式转换成MP4格式

    腾讯视频下载:1.先下载腾讯的客户端--->播放视频在客户端 2.播放视频一段后停止 3.点击腾讯客户端的右上角的设置 4.复制缓存地址(注意:在此之前需要设置"显示隐藏的文件夹&qu ...

  6. Handler消息传递机制——Handler、Loop、MessageQueue的工作原理

    为了更好地理解Handler的工作原理,先介绍一下与Handler一起工作的几个组件. Message:Handler接收和处理的消息对象. Looper:每个线程只能拥有一个Looper.它的loo ...

  7. eclipse 开始运行提示 Java was started but returned exit code=13

    Eclipse 是一个开放源代码的.基于Java的可扩展开发平台.就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境. 当我们安装使用时,会出现eclipse启动不了,出现" ...

  8. 实例:基于ListActivity实现列表

    如果程序的窗口仅仅需要显示一个列表,则可以直接让Activity继承ListActivity来实现,ListActivity的子类无须调用setContentView()方法来显示某个界面,而是可以直 ...

  9. HTML 颜色值

    HTML 颜色值 颜色由红(R).绿(G).蓝(B)组成. 颜色值 颜色值由十六进制来表示红.绿.蓝(RGB). 每个颜色的最低值为0(十六进制为00),最高值为255(十六进制为FF). 十六进制值 ...

  10. PHP生成短信验证码

    简单版本 <?php function generate_code($length = 6) { $min = pow(10 , ($length - 1)); $max = pow(10, $ ...