mui 移动webapp - CSDN
精华内容
参与话题
  • HTML5+、mui开发移动app

    万次阅读 2019-06-28 18:02:38
    跨平台移动APP开发进阶(二)HTML5+、mui开发移动app教程 作者:sunhuaqiang1 前端开发APP,从HBuilder开始~ 序 通过HTML5开发移动App时,会发现HTML5很多能力不具备。为弥补HTML5能力的不足,在W3C中国的指导下...

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

    作者:sunhuaqiang1

    前端开发APP,从HBuilder开始~

    通过 HTML5 开发移动App 时,会发现HTML5 很多能力不具备。为弥补HTML5 能力的不足,在W3C 中国的指导下成立了www.HTML5Plus.org组织,推出HTML5+规范。

    HTML5+扩展了JavaScript 对象plus,使得js 可以调用各种浏览器无法实现或实现不佳的系统能力,设备能力如摄像头、陀螺仪、文件系统等,业务能力如上传下载、二维码、地图、支付、语音输入、消息推送等。

    HBuilder 的手机原生能力调用分2 个层面:

    a) 跨手机平台的能力调用都在HTML5+ 规范里,比如二维码、语音输入,使用plus.barcode 和plus.speech。编写一次,可跨平台运行。

    b) JS Bridge是另一项创新技术,通过js 可以直接调ios 和android 的原生API,这部分就不再跨平台,比如调ios game center,或在android 手机桌面创建快捷方式。

    JSB 的用法是var obj = plus.android.import("android.content.Intent");将一个原生对象android.content.Intent 映射为js 对象obj,然后在js 里操作obj对象的方法属性就可以了。

    注:使用 HTML5+开发的移动App 并非mobileweb页面。这是新手最容易混淆的地方。mobileweb 的文件存放在web 服务器上,而移动App 的文件存放在手机本地,编写移动App 的html、js、css文件被打包到ipa或apk等原生安装包,在手机客户端运行。

    当然这些移动 App 里某些页面也可以继续从服务器端以网页方式运行。所以mobile web,在HBuilder 里新建项目时,属于web 项目。不要放置到移动App 项目。mobile web 项目也不能真机联调和打包.

    内容简介

    介绍目前前端人员开发app的几种方法,具体介绍hbuilder开发app,一扇赞新的大门~

    无所不能的js

    最开始js仅仅局限于网页上一些效果,操作网页内容等,但是nodejs把js带入了后端,也就是服务器端,从此前端人员可以涉及后端,前后通吃,native.js(以及其他js,稍候介绍)把js带入了移动端,从此前端人员前后移动通吃。

    前端涉及app的两种方式

    适应移动端的网页

    大家都很熟悉的bootstrap,和现在刚出来的amazeui就是这种方法的代表,说的简单点就是对移动端做了适配,布局样式组件都适合移动端展示。

    缺陷:毕竟不是app,不管怎样也没办法取代app的便捷和功能强大。

    js+html+css+打包技术

    比较有名的就是phonegap了,国内的是hbuilder,大概的意思是html负责页面内容,js负责效果以及调用原生app方法,ui框架负责样式,最后打包成apk或者ipa

    hbuilder(http://www.dcloud.io/)

    不谈phonegap,不适用国内国情,是的,你没有看错,这是一个开发的ide,其实就是对eclipse进行了深度定制。

    特点是快捷键比较多,支持移动app开发(h5+方式)。

    h5+(http://www.html5plus.org/#home)

    可以说nodejs将js带到后端,h5+将js带到移动端。

    原理

    上面说过的原理,再次说一遍:

    • html负责页面,也就是的内容和框架;
    • js负责调用方法,也就是调用一些移动端原生;
    • ui负责样式,比较有名的bootstrap,amazeui,jquery mobile,mui

    ui比较

    上面说的几个ui,做下简单比较,仅代表个人观点,

    1. Amazeui:功能和bootstrap重复,官方解释是对中文排版做了优化,个人觉得有点多余,bootstrap就很好。
    2. Bootstrap:适合移动端浏览网页适配,移动端浏览效果不错,但是还是网页。
    3. jquery mobile:专门对移动端做定制,看起来就像手机应用一样,js+css,国外的,不推荐,有坑。
    4. Mui:这个是推荐的,比较了jqmobile和mui,显然mui效果样式好点,估计也会有坑,但是支持国产吧。

    前端开发app

    搭建开发环境:不需要搭建ios和android的开发环境,只需要下载hbuilder(估计需要java环境支持)。

    选定ui:目前推荐mui,效果不错

    写事件:通过js调用原生方法实现app效果

    写业务逻辑

     

    环境搭建

    前言

    本教程是介绍使用html5+(nativejs)和mui开发移动app(包括android和ios),

    感兴趣请继续,不感兴趣请跳过,大部分来自官方api,增加了一些自己的总结。

    HBuilder

    • 说明:用h5+开发app的环境,也是ide,对eclipse做了深度定制,以前使用过eclipse或者myeclipse的童鞋可以直接上手。
    • 官网:http://www.dcloud.io/
    • 下载:在官网上点击下载,安装好后可以自己将文件夹压缩成zip,方便以后使用,解压就可以用。
    • 依赖:估计会需要jre环境,没有试过,如果需要请自行百度搜索jre安装方法。
    • 上手:打开HBuilder之后默认会有一个项目“HelloHBuilder”,里面有HBuilder使用的介绍。
    • 快捷键:HBuilder一大亮点是快捷键,但是如果习惯了自己之前的快捷键会很别扭,需要自己在工具——选项——常规——快捷键中修改。
    • 插件:HBuilder将插件做了下优化,提供了最长用的一些插件,并且使用dcloud网站下载,速度很快,eclipse自带插件安装需要翻墙。

    打开工具——插件安装,安装自己需要的插件,例如我安装了如下插件:

     

    完成

    环境搭建就完成了,这应该是所有开发环境搭建中最简单的了。、

     

    原理介绍

    1.原理

    html5+开发app的原理大概是这样:

    • html页面负责内容;
    • ui负责页面样式;
    • js负责调用原生app方法。

    2.html5

    html5这部分负责页面,也就是app中你看到的东西,大概的架构和内容

    3.ui

    ui负责页面样式,既然要做移动app,那做出的效果就得和移动端靠近,这里并没有局限于用哪种ui,比较常见的适配移动端的ui框架有:

    • bootstrap

    介绍:Twitter开发的ui框架,特点是可以简介美观,可以适配移动端(例如本站:http://uikoo9.com/

    中文官网:http://v3.bootcss.com/

    • amazeui

    介绍:国人模仿bootstrap做的一个ui框架,个人感觉有点多余,有兴趣的可以看看。

    官网:http://amazeui.org/

    • jquery mobile

    介绍:HBuilder其实是模仿国外的phonegap,通用mui是模仿jquery mobile,但是感觉也不错

    官网:http://jquerymobile.com/

    • mui

    介绍:和HBuilder相搭配的移动ui,也和nativejs相搭配,感觉还不错,模仿的ios7界面风格。

    官网:http://dcloudio.github.io/mui/

    • framework7

    介绍:国外一块模仿ios7的ui框架,赞

    官网:http://www.idangero.us/framework7/

    • nativejs

    介绍:一个可以调用android和ios原生方法的js

    入门:http://ask.dcloud.net.cn/article/88

    搭配

    选择:目前比较好的搭配是mui+nativejs+hbuilder,你也可以尝试其他的组合,例如jqmobile+nativejs等

    mui-demo:http://www.dcloud.io/hellomui/

    nativejs-demo:http://www.html5plus.org/#case#/case/id/4.html

     

    mui开发示例

    前言

    看了前面两篇内容是否有点跃跃欲试了?

    下面就开始一个简单的例子,以及mui相关内容

    mui

    官网:http://dcloudio.github.io/mui/

    说明:希望你可以把官网内容通读一遍,这是以后开发的基础

    开始

    新建项目

    在首页点击新建移动App,如下:

    或者在项目管理器内右键新建,或者快捷键ctrl+n+a

    选择模版

    这里选择mui项目,会自动引入mui的js和css,如下:

    文件结构

    默认有以下几个文件夹:css,fonts,js,如下:

     

    简单开发

    header

    打开index.html后在body内输入mh后回车,如下:

    body

    同样输入mbo后回车

    list

    在mbody中添加一些列表

    最后的代码

    <!DOCTYPE html>  
    <html>  
    <head>  
        <meta charset="utf-8">  
        <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />  
        <title></title>  
        <script src="js/mui.min.js"></script>  
        <link href="css/mui.min.css" rel="stylesheet"/>  
        <script type="text/javascript" charset="utf-8">  
           mui.init();  
        </script>  
    </head>  
    <body>  
        <header class="mui-bar mui-bar-nav">  
            <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>  
            <h1 class="mui-title">我的标题</h1>  
        </header>  
        <div class="mui-content">  
            <ul class="mui-table-view" id="my_task_list">  
                <li class="mui-table-view-cell">  
                    <div class="mui-slider-right mui-disabled">  
                        <a class="mui-btn mui-btn-red">删除</a>  
                    </div>  
                    <div class="mui-slider-handle">  
                       待办事项1  
                    </div>  
                </li>  
                <li class="mui-table-view-cell">  
                    <div class="mui-slider-right mui-disabled">  
                        <a class="mui-btn mui-btn-red">删除</a>  
                    </div>  
                    <div class="mui-slider-handle">  
                        待办事项2  
                    </div>  
                </li>  
            </ul>  
        </div>  
    </body>  
    </html>  

    调试(android为例)

    连接手机

    首先需要连接手机

    运行

    选择运行——手机运行——在xx设备上运行

    或者使用快捷键ctrl+r

    效果

    现在你就可以在手机上看效果了

    注意

    需要开启开发者模式

    打包

    dcloud证书打包

    选择发行——App打包——选择android以及dcloud公用证书,如下:

    参数配置

    可能有时候会提示参数配置错误,这是你需要打开项目下manifest.json文件,并去掉第三方插件,如下:

     

    等待

    返回上一步的发行打包,点击打包后会提示你已经到云端打包,你只需要等待了,

    一小会之后就打包好了,这时你就可以把apk拷贝到自己手机使用了,

    mui中几种open页面的区别

    使用hbuilder+mui做app一段时间,期间遇到问题不少,自己摸索,做了个app,详见:http://uikoo9.com/dishi/download

    如果您水平比这个高,那就不用看了,直接跳过。

    【水平】

    由于用hbuilder+mui出于兴趣,也就没有去看源码,停留在使用总结层次,所以有说的不对的地方还请见谅。

    【几种打开页面的方式】

    • 1.初始化时创建子页面
    • 2.直接打开新页面
    • 3.预加载页面

    【示例】

    1.初始化时创建子页面

    mui.init({  
        subpages: [{  
            url: your - subpage - url, //子页面HTML地址,支持本地地址和网络地址  
            id: your - subpage - id, //子页面标志  
            styles: {  
                top: subpage - top - position, //子页面顶部位置  
                bottom: subpage - bottom - position, //子页面底部位置  
                width: subpage - width, //子页面宽度,默认为100%  
                height: subpage - height, //子页面高度,默认为100%  
                ......  
            },  
            extras: {} //额外扩展参数  
        }]  
    });  

     2.直接打开新页面

     

    mui.openWindow({  
        url: new - page - url,  
        id: new - page - id,  
        styles: {  
            top: newpage - top - position, //新页面顶部位置  
            bottom: newage - bottom - position, //新页面底部位置  
            width: newpage - width, //新页面宽度,默认为100%  
            height: newpage - height, //新页面高度,默认为100%  
            ......  
        },  
        extras: {  
            ..... //自定义扩展参数,可以用来处理页面间传值  
        }  
        show: {  
            autoShow: true, //页面loaded事件发生后自动显示,默认为true  
            aniShow: animationType, //页面显示动画,默认为”slide-in-right“;  
            duration: animationTime //页面动画持续时间,Android平台默认100毫秒,iOS平台默认200毫秒;  
        },  
    
        waiting: {  
            autoShow: true, //自动显示等待框,默认为true  
            title: '正在加载...', //等待对话框上显示的提示内容  
            options: {  
                width: waiting - dialog - widht, //等待框背景区域宽度,默认根据内容自动计算合适宽度  
                height: waiting - dialog - height, //等待框背景区域高度,默认根据内容自动计算合适高度  
                ......  
            }  
        }  
    })  

    3.预加载页面
     

    // 方式1  
    
    mui.init({  
        preloadPages: [{  
            url: prelaod - page - url,  
            id: preload - page - id,  
            styles: {}, //窗口参数  
            extras: {}, //自定义扩展参数  
            subpages: [{}, {}] //预加载页面的子页面  
        }]  
    });  
    
      
    
    // 方式2  
    
    var page = mui.preload({  
        url: new - page - url,  
        id: new - page - id, //默认使用当前页面的url作为id  
        styles: {}, //窗口参数  
        extras: {} //自定义扩展参数  
    });  
    
    

    【一些区别】

    • 1.子页面和非子页面

    以上三种方式中,2,3打开的页面非子页面,区别是子页面相当于html中的iframe,而非子页面相当于新开了一个浏览器窗口加载了一个html

    • 2.子页面适用于侧滑菜单

    子页面有其特点,特别适用与index.html+list.html这种情况,如果用index.html(主页面)+list.html(子页面)实现的话,当主页面右滑时子页面会自动跟随,而用index.html(主页面)+list.html(新页面)实现的话,主页面右滑,新页面不右滑,还得单独处理新页面。

    • 3.子页面使用频繁切换的情况

    如果频繁左滑右滑,在配置较低的手机上会出现list.html遮住index.html的情况,采用子页面模式就不会,采用新页面模式几率很大。

    • 4.子页面适用与下拉刷新和上拉加载

    之前做向下拉刷新的时候,采用的是新页面的形式,按照官网教程,怎么搞都不成功,后来看了下源码,发现下拉刷新必须采用子页面的形式,也就是你的list.html必须是index.html的子页面,才可以下拉刷新。

    • 5.新页面适用于新页面

    open一个新页面,适用于查看详情之类的,需要打开一个新页面的情况,并且mui自己封装了新页面的back方法,你就不需要去操心了。

    • 6.预加载页面的两种方式

    第一种是在初始化的时候预加载,这种情况适合在你这个页面在很久之后才会用,如果你要立即到的页面并使用,那么你会得到null。第二种方式类似与open,个人感觉没有什么太大的区别,唯一的区别是open就直接打开了,preload只是加载,你可以之后选择打开的时机。

    • 7.总结

    需要下拉刷新上拉加载请使用子页面,需要打开一个新页面请使用新页面方式,需要加载一个页面但是暂时不使用请使用预加载方式。

     

    展开全文
  • 前言由于自己平时做项目(自己做或者帮朋友做的移动APP,webAPP,机器学习算法类)比较多,做的东西大多没有整理成文档,现在就把之前做的项目整理成文档分享给大家,好大家以后做相关项目有个参考! 在做HTML5开发时一直在...

    前言

    由于自己平时做项目(自己做或者帮朋友做的移动APP,webAPP,机器学习算法类)比较多,做的东西大多没有整理成文档,现在就把之前做的项目整理成文档分享给大家,好大家以后做相关项目有个参考!

    在做HTML5开发时一直在使用Hbuilder进行代码的编辑,发现Hbuilder写代码的速度非常的快,同时它也有自己的一套开发web APP 的框架MUI,今天有时间给大家介绍一下,怎么完整的去开发一套商城类APP整个流程.这里着重给大家介绍功能点的集成和开发,如果这个掌握了,其他框架开发的APP功能的集成都是一模一样的了!

    之后也会给大家介绍利用ionic框架,React Native框架,vue框架开发一款APP.

    目录

    1.[webAPP项目]基于MUI框架webAPP开发功能流程之引导图制作详解01

    2.[webAPP项目]基于MUI框架webAPP开发功能流程之头部导航与底部导航制作详解02

    3.[webAPP项目]基于MUI框架webAPP开发功能流程之轮播图制作详解03

    4.[webAPP项目]基于MUI框架webAPP开发功能流程之接口解析及数组展示详解04

    5.[webAPP项目]基于MUI框架webAPP开发功能流程之页面传值详解05

    6.[webAPP项目]基于MUI框架webAPP开发功能流程之购物车制作详解06

    7.[webAPP项目]基于MUI框架webAPP开发功能流程之第三方登录集成详解07

    8.[webAPP项目]基于MUI框架webAPP开发功能流程之第三方分享集成详解08

    9.[webAPP项目]基于MUI框架webAPP开发功能流程之支付宝支付集成详解09

    10.[webAPP项目]基于MUI框架webAPP开发功能流程之微信支付集成详解10

    11.[webAPP项目]基于MUI框架webAPP开发功能流程之即时通讯集成详解11

    12.[webAPP项目]基于MUI框架webAPP开发功能流程之第三方地图集成详解12

    目前列了大纲,还没更新,之后会持续更新,发布!

    展开全文
  • mui开发webapp(2)

    2019-09-23 21:58:52
    通过HTML5开发移动App时,会发现HTML5很多能力不具备。为弥补HTML5能力的不足,在W3C中国的指导下成立了www.HTML5Plus.org组织,推出HTML5+规范。 HTML5+扩展了JavaScript对象plus,使得js可以调用各种浏览器无法...

    前端开发APP,从HBuilder开始~

    通过 HTML5 开发移动App 时,会发现HTML5 很多能力不具备。为弥补HTML5 能力的不足,在W3C 中国的指导下成立了www.HTML5Plus.org组织,推出HTML5+规范。

     

    HTML5+扩展了JavaScript 对象plus,使得js 可以调用各种浏览器无法实现或实现不佳的系统能力,设备能力如摄像头、陀螺仪、文件系统等,业务能力如上传下载、二维码、地图、支付、语音输入、消息推送等。

     

    HBuilder 的手机原生能力调用分2 个层面:

     

    a) 跨手机平台的能力调用都在HTML5+ 规范里,比如二维码、语音输入,使用plus.barcode 和plus.speech。编写一次,可跨平台运行。

     

    b) JS Bridge是另一项创新技术,通过js 可以直接调ios 和android 的原生API,这部分就不再跨平台,比如调ios game center,或在android 手机桌面创建快捷方式。

    JSB 的用法是var obj = plus.android.import("android.content.Intent");将一个原生对象android.content.Intent 映射为js 对象obj,然后在js 里操作obj对象的方法属性就可以了。

     

    注:使用 HTML5+开发的移动App 并非mobileweb页面。这是新手最容易混淆的地方。mobileweb 的文件存放在web 服务器上,而移动App 的文件存放在手机本地,编写移动App 的html、js、css文件被打包到ipa或apk等原生安装包,在手机客户端运行。

     

    当然这些移动 App 里某些页面也可以继续从服务器端以网页方式运行。所以mobile web,在HBuilder 里新建项目时,属于web 项目。不要放置到移动App 项目。mobile web 项目也不能真机联调和打包.

    内容简介

    介绍目前前端人员开发app的几种方法,具体介绍hbuilder开发app,一扇赞新的大门~

    无所不能的js

    最开始js仅仅局限于网页上一些效果,操作网页内容等,但是nodejs把js带入了后端,也就是服务器端,从此前端人员可以涉及后端,前后通吃,native.js(以及其他js,稍候介绍)把js带入了移动端,从此前端人员前后移动通吃。

     

    前端涉及app的两种方式

    适应移动端的网页

    大家都很熟悉的bootstrap,和现在刚出来的amazeui就是这种方法的代表,说的简单点就是对移动端做了适配,布局样式组件都适合移动端展示。

     

    缺陷:毕竟不是app,不管怎样也没办法取代app的便捷和功能强大。

     

    js+html+css+打包技术

    比较有名的就是phonegap了,国内的是hbuilder,大概的意思是html负责页面内容,js负责效果以及调用原生app方法,ui框架负责样式,最后打包成apk或者ipa。

     

    hbuilder(http://www.dcloud.io/)

    不谈phonegap,不适用国内国情,是的,你没有看错,这是一个开发的ide,其实就是对eclipse进行了深度定制。

     

    特点是快捷键比较多,支持移动app开发(h5+方式)。

     

    h5+(http://www.html5plus.org/#home)

    可以说nodejs将js带到后端,h5+将js带到移动端。

     

    原理

    上面说过的原理,再次说一遍:

     

    html负责页面,也就是的内容和框架;

     

    js负责调用方法,也就是调用一些移动端原生;

     

    ui负责样式,比较有名的bootstrap,amazeui,jquery mobile,mui

     

    ui比较

    上面说的几个ui,做下简单比较,仅代表个人观点,

     

    Amazeui:功能和bootstrap重复,官方解释是对中文排版做了优化,个人觉得有点多余,bootstrap就很好。

     

    Bootstrap:适合移动端浏览网页适配,移动端浏览效果不错,但是还是网页。

     

    jquery mobile:专门对移动端做定制,看起来就像手机应用一样,js+css,国外的,不推荐,有坑。

     

    Mui:这个是推荐的,比较了jqmobile和mui,显然mui效果样式好点,估计也会有坑,但是支持国产吧。

     

    前端开发app

     

    搭建开发环境

    不需要搭建ios和android的开发环境,只需要下载hbuilder(估计需要java环境支持)。

     

    选定ui

    目前推荐mui,效果不错

     

    写事件

    通过js调用原生方法实现app效果

     

    写业务逻辑

    环境搭建

    前言

    本教程是介绍使用html5+(nativejs)和mui开发移动app(包括android和ios),

     

    感兴趣请继续,不感兴趣请跳过,大部分来自官方api,增加了一些自己的总结。

     

    HBuilder

     

    说明

    用h5+开发app的环境,也是ide,对eclipse做了深度定制,以前使用过eclipse或者myeclipse的童鞋可以直接上手。

     

    官网

    http://www.dcloud.io/

     

    下载

    在官网上点击下载,安装好后可以自己将文件夹压缩成zip,方便以后使用,解压就可以用。

     

    依赖

    估计会需要jre环境,没有试过,如果需要请自行百度搜索jre安装方法。

     

    上手

    打开HBuilder之后默认会有一个项目“HelloHBuilder”,里面有HBuilder使用的介绍。

     

    快捷键

    HBuilder一大亮点是快捷键,但是如果习惯了自己之前的快捷键会很别扭,需要自己在工具——选项——常规——快捷键中修改。

     

    插件

    HBuilder将插件做了下优化,提供了最长用的一些插件,并且使用dcloud网站下载,速度很快,eclipse自带插件安装需要翻墙。

     

    打开工具——插件安装,安装自己需要的插件,例如我安装了如下插件:

     

     

    完成

    环境搭建就完成了,这应该是所有开发环境搭建中最简单的了。

     

     

    原理介绍

    原理

    html5+开发app的原理大概是这样:

     

    html页面负责内容;

     

    ui负责页面样式;

     

    js负责调用原生app方法。

     

    html5

    html5这部分负责页面,也就是app中你看到的东西,大概的架构和内容

     

    ui

    ui负责页面样式,既然要做移动app,那做出的效果就得和移动端靠近,这里并没有局限于用哪种ui,比较常见的适配移动端的ui框架有:

     

    bootstrap

    介绍:Twitter开发的ui框架,特点是可以简介美观,可以适配移动端(例如本站:http://uikoo9.com/

     

    中文官网:http://v3.bootcss.com/

     

    amazeui

    介绍:国人模仿bootstrap做的一个ui框架,个人感觉有点多余,有兴趣的可以看看。

     

    官网:http://amazeui.org/

     

    jquery mobile

    介绍:HBuilder其实是模仿国外的phonegap,通用mui是模仿jquery mobile,但是感觉也不错

     

    官网:http://jquerymobile.com/

     

    mui

    介绍:和HBuilder相搭配的移动ui,也和nativejs相搭配,感觉还不错,模仿的ios7界面风格。

     

    官网:http://dcloudio.github.io/mui/

     

    framework7

    介绍:国外一块模仿ios7的ui框架,赞

     

    官网:http://www.idangero.us/framework7/

     

     

    nativejs

    介绍:一个可以调用android和ios原生方法的js

    入门:http://ask.dcloud.net.cn/article/88

     

    搭配

    选择:目前比较好的搭配是mui+nativejs+hbuilder,你也可以尝试其他的组合,例如jqmobile+nativejs等

     

    mui-demo:http://www.dcloud.io/hellomui/

     

    nativejs-demo:http://www.html5plus.org/#case#/case/id/4.html

     

    mui开发示例

    前言

    看了前面两篇内容是否有点跃跃欲试了?

     

    下面就开始一个简单的例子,以及mui相关内容

     

    mui

    官网:http://dcloudio.github.io/mui/

     

    说明:希望你可以把官网内容通读一遍,这是以后开发的基础

     

    开始

    新建项目

    在首页点击新建移动App,如下:

     

    或者在项目管理器内右键新建,或者快捷键ctrl+n+a

     

    选择模版

    这里选择mui项目,会自动引入mui的js和css,如下:

    文件结构

    默认有以下几个文件夹:css,fonts,js,如下:

     

    简单开发

    header

    打开index.html后在body内输入mh后回车,如下:

     

    body

    同样输入mbo后回车

     

    list

    在mbody中添加一些列表

    最后的代码

    <!DOCTYPE html>  

    <html>  

    <head>  

        <meta charset="utf-8">  

        <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />  

        <title></title>  

        <script src="js/mui.min.js"></script>  

        <link href="css/mui.min.css" rel="stylesheet"/>  

        <script type="text/javascript" charset="utf-8">  

            mui.init();  

        </script>  

    </head>  

    <body>  

        <header class="mui-bar mui-bar-nav">  

            <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>  

            <h1 class="mui-title">我的标题</h1>  

        </header>  

        <div class="mui-content">  

            <ul class="mui-table-view" id="my_task_list">  

                <li class="mui-table-view-cell">  

                    <div class="mui-slider-right mui-disabled">  

                        <a class="mui-btn mui-btn-red">删除</a>  

                    </div>  

                    <div class="mui-slider-handle">  

                        待办事项1  

                    </div>  

                </li>  

                <li class="mui-table-view-cell">  

                    <div class="mui-slider-right mui-disabled">  

                        <a class="mui-btn mui-btn-red">删除</a>  

                    </div>  

                    <div class="mui-slider-handle">  

                        待办事项2  

                    </div>  

                </li>  

            </ul>  

        </div>  

    </body>  

    </html>  

     

    调试(android为例)

    连接手机

    首先需要连接手机

     

    运行

    选择运行——手机运行——在xx设备上运行

    或者使用快捷键ctrl+r

     

    效果

    现在你就可以在手机上看效果了

     

    注意

    需要开启开发者模式

     

    打包

    dcloud证书打包

    选择发行——App打包——选择android以及dcloud公用证书,如下:

     

    参数配置

    可能有时候会提示参数配置错误,这是你需要打开项目下manifest.json文件,并去掉第三方插件,如下:

     

     

    等待

    返回上一步的发行打包,点击打包后会提示你已经到云端打包,你只需要等待了,

     

    一小会之后就打包好了,这时你就可以把apk拷贝到自己手机使用了,

    mui中几种open页面的区别

    使用hbuilder+mui做app一段时间,期间遇到问题不少,自己摸索,做了个app,详见:http://uikoo9.com/dishi/download

     

    如果您水平比这个高,那就不用看了,直接跳过。

     

    【水平】

     

    由于用hbuilder+mui出于兴趣,也就没有去看源码,停留在使用总结层次,所以有说的不对的地方还请见谅。

     

    【几种打开页面的方式】

     

    1.初始化时创建子页面

     

    2.直接打开新页面

     

    3.预加载页面

     

    【示例】

     

    1.初始化时创建子页面

     

    mui.init({  

        subpages: [{  

            url: your - subpage - url, //子页面HTML地址,支持本地地址和网络地址  

            id: your - subpage - id, //子页面标志  

            styles: {  

                top: subpage - top - position, //子页面顶部位置  

                bottom: subpage - bottom - position, //子页面底部位置  

                width: subpage - width, //子页面宽度,默认为100%  

                height: subpage - height, //子页面高度,默认为100%  

                ......  

            },  

            extras: {} //额外扩展参数  

        }]  

    });  

     

    2.直接打开新页面

     

    mui.openWindow({  

        url: new - page - url,  

        id: new - page - id,  

        styles: {  

            top: newpage - top - position, //新页面顶部位置  

            bottom: newage - bottom - position, //新页面底部位置  

            width: newpage - width, //新页面宽度,默认为100%  

            height: newpage - height, //新页面高度,默认为100%  

            ......  

        },  

        extras: {  

            ..... //自定义扩展参数,可以用来处理页面间传值  

        }  

        show: {  

            autoShow: true, //页面loaded事件发生后自动显示,默认为true  

            aniShow: animationType, //页面显示动画,默认为”slide-in-right“;  

            duration: animationTime //页面动画持续时间,Android平台默认100毫秒,iOS平台默认200毫秒;  

        },  

        waiting: {  

            autoShow: true, //自动显示等待框,默认为true  

            title: '正在加载...', //等待对话框上显示的提示内容  

            options: {  

                width: waiting - dialog - widht, //等待框背景区域宽度,默认根据内容自动计算合适宽度  

                height: waiting - dialog - height, //等待框背景区域高度,默认根据内容自动计算合适高度  

                ......  

            }  

        }  

    })  

     

    3.预加载页面

     

    // 方式1  

    mui.init({  

        preloadPages: [{  

            url: prelaod - page - url,  

            id: preload - page - id,  

            styles: {}, //窗口参数  

            extras: {}, //自定义扩展参数  

            subpages: [{}, {}] //预加载页面的子页面  

        }]  

    });  

      

    // 方式2  

    var page = mui.preload({  

        url: new - page - url,  

        id: new - page - id, //默认使用当前页面的url作为id  

        styles: {}, //窗口参数  

        extras: {} //自定义扩展参数  

    });  

     

     

     

    【一些区别】

     

    1.子页面和非子页面

     

    以上三种方式中,2,3打开的页面非子页面,

     

    区别是子页面相当于html中的iframe,而非子页面相当于新开了一个浏览器窗口加载了一个html

     

    2.子页面适用于侧滑菜单

     

    子页面有其特点,特别适用与index.html+list.html这种情况,

     

    如果用index.html(主页面)+list.html(子页面)实现的话,当主页面右滑时子页面会自动跟随,

     

    而用index.html(主页面)+list.html(新页面)实现的话,主页面右滑,新页面不右滑,还得单独处理新页面。

     

     

    3.子页面使用频繁切换的情况

     

    如果频繁左滑右滑,在配置较低的手机上会出现list.html遮住index.html的情况,采用子页面模式就不会,采用新页面模式几率很大。

     

    4.子页面适用与下拉刷新和上拉加载

     

    之前做向下拉刷新的时候,采用的是新页面的形式,按照官网教程,怎么搞都不成功,后来看了下源码,发现下拉刷新必须采用子页面的形式,也就是你的list.html必须是index.html的子页面,才可以下拉刷新。

     

    5.新页面适用于新页面

     

    open一个新页面,适用于查看详情之类的,需要打开一个新页面的情况,并且mui自己封装了新页面的back方法,你就不需要去操心了。

     

    6.预加载页面的两种方式

     

    第一种是在初始化的时候预加载,这种情况适合在你这个页面在很久之后才会用,如果你要立即到的页面并使用,那么你会得到null。第二种方式类似与open,个人感觉没有什么太大的区别,唯一的区别是open就直接打开了,preload只是加载,你可以之后选择打开的时机。

     

    7.总结

     

    需要下拉刷新上拉加载请使用子页面,需要打开一个新页面请使用新页面方式,需要加载一个页面但是暂时不使用请使用预加载方式。

    转载于:https://www.cnblogs.com/siwy/p/5045349.html

    展开全文
  • 基于MUI的电影新闻的webapp项目开发

    千次阅读 多人点赞 2018-08-22 15:50:31
    之前,本人在自学webapp的过程中,一直没有找到一份比较完整的开发步骤文档,都是一些零零散散的文档,走了很多弯路,也耽误了很多的时间,其中尝试了多种框架,感觉MUI这种H5+的模式是比较适合的一种WEBAPP开发模式...

    写在前面:之前,本人在自学webapp的过程中,一直没有找到一份比较完整的开发步骤文档,都是一些零零散散的文档,走了很多弯路,也耽误了很多的时间,其中尝试了多种框架,感觉MUI这种H5+的模式是比较适合的一种WEBAPP开发模式,开发难度稍高于纯H5,但应用流畅度接近原生APP(本人和dcloud没有一毛钱关系),是值得推荐的一种混合型APP开发模式。为了让广大WEBAPP初学者少走弯路,大家可以跟着本项目文档走下来,基本上就掌握了WEBAPP开发的很多方面。本项目不涉及服务端,服务端实现较为简单,可以使用任意的语言实现,只需要能根据url返回json数据即可,所以本项目直接使用了网上公开的数据API。

    1    项目简介
    项目功能为加载知乎日报和豆瓣电影信息,可以查看新闻、影评和观看预告片。
    2    项目资源
    https://www.jianshu.com/p/42630373e1bc 
    2.1    知乎日报API
    2.1.1    最新新闻列表:https://news-at.zhihu.com/api/4/news/latest 
    2.1.2    某条新闻内容:https://news-at.zhihu.com/api/4/news/3892357 
    2.2    豆瓣电影API
    2.2.1    在映电影列表:https://douban.uieee.com/v2/movie/in_theaters?city=福州  
    2.2.2    某部电影信息:https://douban.uieee.com/v2/movie/subject/26985127 
    2.3    Json格式工具
    打开http://www.bejson.com/,把获得的json字符串直接粘贴到输入框,然后验证
    2.4    HTML模板工具
    http://www.jq22.com/jquery-info1097 
    JS资源下载
    打开https://github.com/aui/art-template/tree/master/lib ,下载template-web.js
     
    3    开发工具
    3.1    HBuilder
    http://download.dcloud.net.cn/HBuilder.9.1.14.windows.zip 
    3.2    夜神安卓模拟器
    https://res06.bignox.com/full/20180816/b78465a3b8a9457eb47df54e477a1a60.exe?filename=nox_setup_v6.2.2.3_full.exe

    4    开发过程
    4.1    项目创建
    使用Hbuilder新建移动APP项目,把template-web.js拷贝到js目录下; 新建subpages子目录,以后的页面都是放在该目录下。
    4.2    入口页开发
    打开index.html,写上一个页头mHeader和一个页脚导航mTab,修改链接和名称。
     
     效果如下:


    在subpages目录下,新建对应的四个页面,先写上简单的文字标识,后面会进行功能完善。
     
    采用webView的方式来进行Tab切换,代码有点多,可以拷贝官方文档,进行局部修改,其实只要修改subpages即可,主要要和mTab中的设置要一致,否则会报告错误,因为名字错了,就无法找到文件资源,也就无法初始化了。
     
    ※初始化代码要写在plusReady事件中。
    4.3    首页开发
    暂时先留空,因为这个页面的内容是其他模块信息的综合而已,先做其他页面,在来组装本页的内容
    4.4    新闻列表
    打开newslist.html,新建一个mbody,
    引入<script src="../js/template-web.js" type="text/javascript" charset="utf-8"></script>
    在mui.plusReady中编写ajax,获取数据
     
    新建一个mListMedia块,删除多余的li,留下一个,用于制作模板(具体做法请参考art-template),最后模板如下:
     
    ※注意此图与上图的对应关系,script的id=“newlistScript”与template函数的参数名“newlistScript”是对应的。Mui(“#newlist”)是放置当前模板内容的父元素id,要记得给mbody的div加上id=‘newlist’。
    ※在这个过程当中,可以先用浏览器查询下数据,把数据放入www.bejson.com中进行观察,来指导编写代码。

    绑定新闻条目的点击事件:
     
    ※解释:off是为了先把以前绑定的事件解除(一般不做也没有关系),on绑定tap点击事件到当前元素下的所有li元素上;this.getAttribute是获得li上的id属性值;openWindow是当点击某个li后,打开下一个网页,extras是传参;
    页面效果如下:
     
    4.5    新闻详情页
    新建一个mHeader,取名为新闻详情,并带有返回键<
    创建一个mBody,取id为news
    引入template-web.js
    创建mui.plusReady事件,编写代码:
     
    创建一个卡片视图,(奇怪,hbuilder没有卡片的自动生成快捷键?),删除多余的div,留下一个做为模板用,模板最后如下:
     
    页面效果如下:
     
    4.6    豆瓣电影
    打开movielist.html,
    创建一个mbody
    引入template-web.js
    创建mui.plusReady事件,并编写代码
     
    创建自定义模板
     
    绑定tap事件

    5    电影详情页
    创建movie.html,
    创建mHeader,创建mbody,取id为movie
    创建卡片布局(见官网)
    创建mui.plusReady事件,并编写代码
     
    创建模板
    把影片图片放在卡片的头部,把影片信息,预告片信息,影评信息分别放入卡片布局的内容区,具体代码见源代码。
     
     


    ※由于横向滚动条的预告片部分是动态生成的,所以要让它有滚动效果,必须重新初始化
     
    6    首页开发
    6.1    头部滚动条
    滚动条为当前评分较高的电影海报,
    在mui.plusReady中获取电影列表
     
    自定义排序比较函数:降序排序
     
    模板生成
     
    6.2    下部列表
    在mui.plusReady中拉数据
     
    生成模板
     
    7    项目效果预览

    首页:

    新闻列表

    豆瓣电影

    新闻详情页:

    电影详情页:

    预告片播放:

    8. 项目源代码:

    https://download.csdn.net/download/luoshao2000/10618471

     

    展开全文
  • webapp mui & HTML5+ (一) 之 环境

    千次阅读 2017-10-30 13:28:08
    webapp mui & HTML5+ (一) 之 环境最近需要开发一款简单app,没有招原生,最后领导大大们商量决定,做webapp,于是这个光荣的任务就落在了小弟身上小弟以前是做过app,但那是有原生的大神们啊,我做的只是写页面而已...
  • 本人在写写这篇文章的到时候使用的是mui的3.3版本 GitHub上的mui是3.6版本,如下的是github项目地址,大家可以下载 https://github.com/dcloudio/mui 总体感觉各种动画效果很流畅,demo很丰富,api也很详细,提供的...
  • MUI框架-01-介绍-创建项目-简单页面

    万次阅读 2018-09-25 18:15:36
    MUI框架-01-介绍-准备-创建项目 从0开始快速高效学习 MUI 框架 (1)MUI 介绍 MUI 是什么,解决了什么问题? MUI 官方号称最接近原生APP体验的高性能前端框架 简单的说就是webapp的以个开发框架 webapp...
  • 移动webapp前端ui用哪个框架好?

    千次阅读 2017-09-22 17:36:00
    默认排序 itlr ...看你做什么,如果对性能要求苛刻,比如地图App这种,应该考虑React Native或者NativeScript这样的技术,因为可以编译成原生App。否则我会推荐
  • MUI+VUE开发基于H5移动APP的定位问题

    千次阅读 2018-05-17 15:52:10
    从今年三月中旬到现在接触Mui+Vue也有一段时间了,也从之前的前端小白到现在能够独立开发功能。因为时间问题项目比较赶基本上处于边学习边开发的状态,开发与学习过程中遇到的一些问题在此记录一下。 功能的大致需求...
  • 因为移动市场的盛行带动了移动社交、移动购物、手游、智能化硬件等多个新兴领域。智能终端硬件水平越来越高,运行其上的web浏览器能力也越来越强,加上HTML5\JS\CSS的蓬勃发展,Web已经能够展现出非常不错的体验。...
  • 通过实际的商城app开发前端页面的案例向大家介绍了如何使用mui进行app开发。
  • 使用mui制作一个web2app类型的app

    千次阅读 2018-06-04 10:41:54
    mui是Hbuilder自己研发的一套框架,它可以制作三种app:移动app:即与cordova一样将web的资源全部打包为本地文件,这样的app上线后不会再从服务器请求资源,每次更改需要重新上传新的app。webapp:可以用浏览器打开...
  • 商品配送系统手机WebApp开发(Asp.Net MVC5、HTML5、jQuery Mobile、Backbone)适合人群:中级课时数量:18课时用到技术:Asp.Net MVC5、HTML5、jQuery Mobile、Backbone涉及项目:手机WebApp、消息推送、富文本编辑...
  • 1.Jquery Mobilehttp://demos.jquerymobile.com/1.4.5/button-markup/http://andymatthews.net/code/jQuery-Mobile-Bootstrap-Theme/listviews.html2.GMU(百度移动web框架)...
  • 基于HTML5移动app开发教程一

    万次阅读 2019-04-20 21:46:43
    一 摘要现在教大家创建第一个移动APP应用,在这里不需要大家对HTML相关知识特别熟练,只要大家能看懂html,js代码,就可以轻松创建一个基于HTML5 webAPP应用.二 整体效果三 整个框架图四 具体实现1.页面引导图第一步 ...
  • 刚开始知道这5+ mui、uni-app这些名词的时候,只知道是中国自己的产品,并且是关于用html5等开发类似原生app的框架。 刚好最近接手一个app的开发任务,...uni-app和5+ mui按照官网所说的,应该是uni-app是5+ mui的...
  • 基于mui+html实现分享给微信好友和微信朋友圈 基于mui+html实现分享给微信好友和微信朋友圈,效果如下图所示。 ![分享待](https://img-blog.csdnimg.cn/20190508175029660.png 第一步 初始准备 微信开放平台的...
  • HBuilder之MUI开发

    2017-02-18 16:18:02
    官方关于MUI开发的网址:http://dev.dcloud.net.cn/mui/ init mui封装了很多常用的页面方法 ,都 需要在init中 设置 ,例如: 1.和上拉加载,下拉刷新配套的加载子页面 mui.init({  subpages : ...
1 2 3 4 5 ... 20
收藏数 915
精华内容 366
热门标签
关键字:

mui 移动webapp