HTML5 Plus移动App(5+App)

工具:

开发工具HBuilder下载下载地址

开发工具HBuilderX下载下载地址(替代HBuilder)

框架:

uni-app :是一个使用 Vue.js 开发跨平台应用的前端框架,开发者编写一套代码,可编译到iOS、Android、H5、小程序等多个平台 (文档地址     培训视频)

MUI:前端UI框架 与bootstrap相似

HTML5+扩展了JavaScript对象plus以实现pc端没有的功能

HTML5+包含HTML5Plus规范与Native.js

Native.js可以直接调ios和android的原生API :5+ App开发Native.js入门指南

在5+App里,同时包含了HTML5Plus规范和Native.js的实现,开发者可以在5+App里自由使用相关技术

最新规范请参考

首先开发者需要清楚你要做什么,是一个mobile web项目,运行在浏览器里?还是要做一个app,安装和运行在手机上?或者要把一个mobile web项目打包成app?

1、做一个mobile web项目

在这个模式下,开发者用不到HTML5Plus,使用标准的HTML5语法,运行在浏览器里。这不算5+ App。

此时开发者仍然可以使用HBuilder这个开发工具,新建项目时选择web项目。

开发者也仍然可以使用DCloud提供的mui开源框架,来简化ui的开发。

但这就是一个普通的web项目,b/s方式,不可脱线运行,不能调用HTML5Plus的增加api。

2、做一个正统的app

传统意义上的app,是c/s方式的,它的程序要安装和运行在手机上,不通过浏览器在线下载。

此时开发者在HBuilder里新建项目时,选择“移动App”。(HBuilderX里选择5+App)

在App项目下编写的HTML、js等文件,是会被打包到原生的安装包(Android是apk包、iOS是ipa包)里的。

此时本地的js和服务器通过ajax交互,由服务器按接口方式给出数据(一般是json),然后客户端的js文件解析json,并根据本地的业务逻辑来渲染页面和执行功能。

所以请不要在App项目中放置运行在服务器端的php等文件。

3、使用wap2app打包mobile web项目为app

如果开发者想把一个做好的mobile web站,方便快速的打包成app,那么要使用DCloud的wap2app框架。

在HBuilder中新建项目时,选wap2app项目,把mobile web站的url输入进去,参考框架的教程来配置。

wap2app不同于普通的web打包技术,wap2app可真正做达到原生应用的功能和性能体验。

具体教程另见:文档中心-wap2app

wap2app属于5+app,它底层也是强大的HTML5Plus规范和Native.js在支撑。

wap2app项目下的所有文件,也都是打包在本机运行的。

注意:如果你想开发一次,全端覆盖,那么需要使用DCloud的另一个产品uni-app

提升HTML5的性能体验系列之一 避免切页白屏

plus is not defined
只有HBuilder真机运行、打包后、或流应用环境下才能运行plus api。
在普通浏览器里运行时plus api时控制台必然会输出plus is not defined错误提示

不要在plus和mui未完成初始化时调用相关API

        function plusReady(){
// 在这里调用plus api
}
if(window.plus){
//初始化完成执行plusReady()函数直接调用plus
plusReady();
}else{
//初始化为完成 监听初始化,完成后执行plusReady()函数
document.addEventListener('plusready',plusReady,false);
} 经过MUI封装后如下:
mui.plusReady(function(){
// 在这里调用plus api
});

mui is not defined:MUI需要加载mui.js 且使用时也需要初始化完成才能使用

它在dom前久结束了所以无需
mui.ready(function () { })

 UNI-APP:

1.目录及文件

一个uni-app工程,默认包含如下目录及文件:

├─ components ··················· uni-app组件目录
└──comp-a.vue ··················· 可复用的a组件
├── pages ······················· 业务页面文件存放目录
├─ index ······················ 使用到的字体文件
└── index.vue ····················· index页面
├─ list ······················· 使用到的图片文件
└── list.vue ····················· list页面
├─ static ··· 存放应用引用静态资源(如图片、视频等)的地方,注意:静态资源只能存放于此
├─ main.js ······················· Vue初始化入口文件
├─ App.vue ··· 应用配置,用来配置App全局样式以及监听
├─ manifest.json ················ 配置应用名称、appid、logo、版本等打包信息
└─ pages.json················· 配置页面路由、导航条、选项卡等页面类信息

2.应用生命周期

函数名 说明
onLaunch 当uni-app 初始化完成时触发(全局只触发一次)
onShow 当 uni-app 启动,或从后台进入前台显示
onHide 当 uni-app 从前台进入后台

应用生命周期仅可在App.vue中监听,在其它页面监听无效。

3.页面生命周期

函数名 说明 平台支持
onLoad 监听页面加载,其参数为上个页面传递的数据,参数类型为Object(用于页面传参
onShow 监听页面显示
onReady 监听页面初次渲染完成
onHide 监听页面隐藏
onUnload 监听页面卸载
onPullDownRefresh 监听用户下拉动作 ,一般用于下拉刷新
onReachBottom 页面上拉触底事件的处理函数
onPageScroll 监听页面滚动 ,参数为 Object
onTabItemTap 当前是 tab 页时,点击 tab 时触发。
onShareAppMessage 用户点击右上角分享 微信小程序

注意

  • 先触发 uni-app onReady ,后触发 vue 的 mounted
  • 建议使用uni-apponLoad 代替 vue的 created

生命周期官方链接

plusReady

5+App 基于HTML、JS、CSS编写的运行于手机端的App(DCloud开发)的更多相关文章

  1. 用JS写一个计算器(兼容手机端)

    先看成果:1.PC端2. 首先确立html,有哪些东西我们要知道.布局大概的样子在心里有个数 <!DOCTYPE html> <html> <head> <m ...

  2. 手机端调用app导航

    因为是在微信端中操作,所以只能使用腾讯地图才能调起手机的腾讯地图app <!doctype html> <html> <head> <meta charset ...

  3. 纯JS.CSS编写的可拖拽并左右分栏的插件(复制代码就能用)

    <!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equ ...

  4. js的let语句在安卓手机端的QQ浏览器出错的问题

    关于JavaScript里面的let,let 语句可以声明一个块级作用域的本地变量,并且可选的将其初始化为一个值. <ul id="list"> </ul> ...

  5. 用JS判断用户使用的是手机端还是pc端访问

    最近项目中用到一个应用,当访问同一个网站地址的时候,例如:www.xxx.com的时候,如果当前客户端是pc则跳转到专注于pc的部分,如果当前客户机是手机,则跳转到专注于手机的部分,秉承一贯的习惯,b ...

  6. fiddler学习总结--手机端(APP/微信小程序)抓包

    步骤一.手机和电脑要在同一个局域网中 步骤二.完成fiddler的基本配置,与web端抓包一样: TOOLS-->options-->connections-->1.设置端口:2.勾 ...

  7. Fiddler 抓包工具怎么使用?怎么在Android手机端的APP抓包

    https://blog.csdn.net/loner_fang/article/details/83309266 参考这个人的微博上有fiddler主要功能使用的步骤. 序章 Fiddler是一个蛮 ...

  8. win10下网狐荣耀手机端android app编译

    基于荣耀版(2017.5.21)12 款游戏..7z这款游戏,网上有下载的 1.解压后进入 cd shoujiduan 2.将client/base复制到client/ciphercode/下,也就是 ...

  9. JS判断是电脑浏览器还是手机端浏览器,并根据不同的终端跳转到不同的网址

    <!DOCTYPE html> <html> <script> function browserRedirect() { var sUserAgent = navi ...

随机推荐

  1. Selenium+Webdriver被检测识别出来的应对方案

    在写爬虫,面对很多js 加载的页面,很多人束手无策,更多的人喜欢用Senlenium+ Webdriver,古语有云:道高一尺魔高一丈.已淘宝为首,众多网站都针对 Selenium的js监测机制, 比 ...

  2. 第十篇:javaScript中的JSON总结

    参考网站:json中国,MDN json 一.必知基础    JSON 是JavaScript对象文字符号的一个子集,它可以自如的在JavaScript中使用.看下这个对象: var myJSONOb ...

  3. 搞笑:我是我们村唯一一个搞IT的!

    出自:http://codebay.cn/post/8033.html 当我跟村里人提起我是IT工程师时 他们内心是这样想的 ▼ 也有的朋友这样想 ▼ 爸爸问我,什么狮? ▼ 妈妈问我,工什么? ▼ ...

  4. Git上传文件指北

    PS:之前设置SSH密钥之类的步骤假设都已经完成,只需日常上传文件 1.仓库初始化 假设你已经新建好了一个仓库(New Repository),名为:RepoName 选择你代码所在的本地文件夹,鼠标 ...

  5. C++: Basic knowledge Part 1

    1.在 C++ 程序中调用被 C 编译器编译后的函数,为什么要加 extern “C”? 首先,extern 是 C/C++ 语言中表明函数和全局变量作用范围的关键字,该关键字告诉编译器,其声明的函数 ...

  6. apache配置域名子目录,访问不同子项目

    <VirtualHost *:443> DocumentRoot "E:/phpstudy/WWW/nextplus" ServerName local-main.co ...

  7. Spring简洁总结

    Spring简洁总结  要的对象不是自己建的,而是IOC容器(XML文件)给的,我们通过getbean来调用. 依赖注入的话就是对象(bean)的成员的赋值不是我们手动完成,而是容器(XML文件)给我 ...

  8. mybatis和java一些知识记录

    <where> <if test="userName != null and userName != ''"> and user_name like con ...

  9. OSG在VS2008下的配置安装

    一.准备工作 下载相关的工具软件: 1, 最新版的OSG库:OpenSceneGraph-2.8.2.zip. 2, 安装源代码所需要的工具:cmake-2.6.4-win32-x86.zip 3,  ...

  10. 基于宜搭的《T恤尺码收集》应用搭建

    简介: 在阿里,T恤是程序员必不可少的元素.每逢公司或者BU(部门)的重大节庆日,比如双11 .年会.新BU成立仪式.大型活动等,都会给员工定制发放统一的T恤或者POLO衫服装.而我们每次发放T恤之前 ...