html5+hbuilder+夜神模拟器+webview

HTML5 Plus应用概述

首先新建一个移动App项目,文件-->新建-->移动APP

 

HTML5 Plus移动App,简称5+App,是一种基于HTML、JS、CSS编写的运行于手机端的App,这种App可以通过扩展的JS API任意调用手机的原生能力,实现与原生App同样强大的功能和性能。

代码块

mdo 主题
mhe 标题栏 mhe带箭头的标题栏
msl 图片轮播
mgr 九宫格
mli 图文列表居左
mta底部选项卡

夜神模拟器

夜神安卓模拟器(夜神模拟器),是全新一代的安卓模拟器,与传统安卓模拟器相比,基于android4.4.2,兼容X86/AMD,在性能、稳定性、兼容性等方面有着巨大优势。

三、Webview

Webview模块管理应用窗口界面,实现多窗口的逻辑控制管理操作。通过plus.webview可获取应用界面管理对象。

http://www.html5plus.org/doc/zh_cn/webview.html

手势事件

点击:
tap 单击屏幕
doublatap 双击屏幕长按:
longtap 长按屏幕
hold 按住屏幕
release 离开屏幕对话框
alert 警告框
confirm 确认框
prompt 消息对话框
toast 消息提示框

实例

<script type="text/javascript">
mui.init();
//扩展API加载完成事件
mui.plusReady(function () {

})
//id为phone绑定tag(点击)事件
document.getElementById('phone').addEventListener('tap',function () {
mui.toast('你点击了 电话页面');
})

新页面传值

打开新页面 index.html
//id为phone绑定tag(点击)事件
document.getElementById("phone").addEventListener("tap", function() {// 自动消失提示框mui.toast("你点击了电话页面");mui.openWindow({url:"phone.html",//上面是穿的页面id:"phone.html",styles:{top:"0px",//新页面顶部位置bottom:"50px",//新页面底部位置},// 额外扩展参数extras:{user_id:123456}})
});####phone.html 获取参数,并弹框
document.getElementById('btn').addEventListener('tap', function() {
//获得webvies窗口native层实例对象
var sdata = plus.webview.currentWebview();
mui.alert(sdata.user_id);
})

subpage

##############子页面相当于在html中使用iframe,所有的浏览器都支持################
main.index 身体    index.底部部   muns
添加:
注意:mui.init里面是一个对象,必须先写{},再写 subpage。否则没有下面的效果!mui.init({// 子页面subpages: [{url: "main.html",id: "main.html",styles: {top: "0px", //新页面顶部位置bottom: "50px", //新页面底部位置},}]});

scroll区域滚动

main.html
#############滚动################
<script type="text/javascript">mui.init();mui('.mui-scroll-wrapper').scroll(); //初始化滚动</script>

登陆

############登陆###############
新增login.html代码
在index 设置中添加事件document.getElementById("login").addEventListener("tap", function() {mui.openWindow({url: "login.html",id: "login.html",styles: window.styles})})

ajex请求

##########ajax请求############
mpo
mui框架基于htm5plus的XMLHttpRequest,封装了常用的Ajax函数,支持GET、POST请求方式,支持返回json、xml、html、text、script数据类型
在login.html 登陆中按钮触发<script type="text/javascript">var server='http://192.168.14.173:5000'mui.init();document.getElementById("login").addEventListener("tap", function() {var uname = document.getElementById("username").value;var pwd = document.getElementById("pwd").value;mui.post(server + "/login", {username: uname,password: pwd},function(data) {mui.toast(data);});});</script>

--------------------后端代码-----------------
@app.route("/login",methods=['POST','GET'])
def login():
username=request.form.get("username")
password=request.form.get("password")
if username=='tang'and password=='123':
return '欢迎'
if __name__ == '__main__':
app.run("0.0.0.0",5000,debug=True)

自定义事件fire

##########自定义事件fire############
通过自定义事件,用户可以轻松实现多webview间数据传递。
通过mui.fire()方法可触发目标窗口的自定义事件:
.fire( target , event , data )data是一个json数据,它的key必须和事件名一致才行!否则Undefined注意:目标窗口,必须监听,才有效果!目录接收参数时,使用 data.detail.事件名


修改phone.html

document.getElementById("btn").addEventListener("tap", function() {

// 获取目标窗口id
var main = plus.webview.getWebviewById("main.html");

//如果是 index就是"HBuilder"

// 使用fire事件,发送一个数据对象
mui.fire(main,"talk",{talk:"我让你说啥,你就给我说啥"})

})

=========index取值==========

document.addEventListener("talk",function(data){
// 显示获取的值
mui.toast(data.detail.talk);
})

 storage

Storage模块管理应用本地数据存储区,用于应用数据的保存和读取。
应用本地数据与localStorage、sessionStorage的区别在于数据有效域不同,前者可在应用内跨域操作,数据存储期是持久化的,并且没有容量限制。
通过plus.storage可获取应用本地数据管理对象。
getLength: 获取应用存储区中保存的键值对的个数
getItem: 通过键(key)检索获取应用存储的值
setItem: 修改或添加键值(key-value)对数据到应用数据存储中
removeItem: 通过key值删除键值对存储的数据
clear: 清除应用所有的键值对存储数据
key: 获取键值对中指定索引值的key值
mui.post(server + "/login", {username: uname,password: pwd},function(data) {// 由于后端返回的是json,这里需要反序列化console.log(JSON.stringify(data));if(!data.code) {// index页面的WebviewById为HBuilder//                      var index = plus.webview.getWebviewById("HBuilder")// 触发fire事件,发送数据//                      mui.fire(index,"login",{msg:data.msg + data.data.user_id})mui.toast(data.msg + data.data.user_id);//修改或添加键值(key-value)对数据到应用数据存储中plus.storage.setItem("user", data.data.user_id);mui.openWindow({url: "user_info.html",id: "user_info.html",styles: window.styles,//使用 extras实现页面间传值extras: {// 传输user_iduser_id: data.data.user_id}})} else {mui.toast(data.msg)}}, 'json'
);
--------------------------------------------------------------
document.getElementById("logout").addEventListener("tap", function() {// 删除storage里面的user属性plus.storage.removeItem("user")// 跳转页面login.htmlmui.openWindow({url: "login.html",id: "login.html",styles: window.styles})
})

 

转载于:https://www.cnblogs.com/zaizai1573/p/10743474.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/248103.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

科学计算库学习报告

numpy与matplotlib的学习随笔 我爱代码 import numpy as npimport matplotlib.pyplot as pltimport matplotlibmatplotlib.rcParams[font.family]SimHeimatplotlib.rcParams[font.sans-serif][SimHei]labelsnp.array([第一次,第二次,第三次,第四次,第五次,第六次])nAttr6datanp…

数据库系统原理(第二章关系数据库 )

一、关系数据库概述 20世纪80年代后&#xff0c;在商用数据库管理系统中&#xff0c;&#xff08; 关系模型 &#xff09;逐渐取代早 期的网状模型和层次模型&#xff0c;成为主流数据模型 SQL3&#xff08;SQL-99&#xff09;:1999年 SQL2&#xff08;SQL-92&#xff09;&…

iOS NSMutableAttributedString常用方法总结

NSAttributedString 叫做富文本&#xff0c;是一种带有属性的字符串&#xff0c;通过它可以轻松的在一个字符串中表现出多种字体、字号、字体大小等各不相同的风格&#xff0c;还可以对段落进行格式化&#xff0c;一般都是对可变富文本&#xff08;NSMutableAttributedString&a…

软件开发工具(第1章:绪论)

一、 软件开发工具的由来 计算机语言和软件开发工具的发展和历史 机器语言&#xff08;第一代语言&#xff09;&#xff1a;难以记忆的、无意义的、二进 制的字符串 汇编语言&#xff08;第二代语言&#xff09;针对难以记忆的、无意义的、二进 制的字符串、人们试图用英语中具…

Saiku Table展示数据合并bug修复(二十五)

Saiku Table展示数据合并bug修复 Saiku以table的形式展示数据&#xff0c;如果点击了 非空的字段 按钮&#xff0c;则会自动进行数据合并&#xff0c;为空的数据行以及数据列都会自动隐藏掉。 首先我们应该定位问题&#xff1a; 1.查看接口返回值&#xff0c;会发现接口返回都正…

软件开发工具(第2章:软件开发过程及其组织)

一、软件开发的困难 程序员做好软件工作的关键是什么&#xff1f; 关键是两个转换&#xff1a; 第一个转换是用户对软件功能的理解与程序员对软件功能的理解之间的转换。 &#xff08;不同⾏业的⼈员对于事物的认识⽅法与描述⽅法是不同的。&#xff09; 第二个转换要解决的是人…

数据可视化(BI报表的开发)第四天

练习题&#xff1a; 先找出字符串 ‘8587263747153203552943982’ 中出现次数最多的数字及次数&#xff0c;然后去重后并排序&#xff08;不准使用sort&#xff09;&#xff0c;使得到结果为 ‘0123456789’。 要求1&#xff1a;找到出现最多的数字和出现的次数 // 1、找出出…

网络经济与企业管理(第 1 章:企业管理概论)

一、企业的概念 什么是企业&#xff1f; 1.企业以市场为导向&#xff0c;以价值增值作为经济活动的目的 2.企业是从事商品生产和流通的经济组织 3.企业经营过程中要自主经营、自负盈亏、独立核算和承担风险&#xff0c;具有法人资格的基本经济单位 企业发展的三个时期&#xff…

去死吧!USB转串口!!!

首先&#xff0c;这个题目有两种歧义&#xff1a;1、USB转232串口&#xff08;严格说就是这种&#xff09;&#xff01; 2、USB转USART串口&#xff08;通常都是这么叫&#xff0c;认为就是这&#xff0c;理论上是错误的&#xff0c;歧义所在&#xff09;&#xff01; USB转TTL…

IDEA微服务项目的application.yml没有绿色叶子的解决办法

1.今天在写微服务项目的时候成功入坑&#xff0c;那么问题是啥呢&#xff1f;接下来和我一起走入bug的世界吧&#xff0c;让我们看看究竟是怎么回事。 *问题描述    1.application.yml是灰色的小格子 2.实在难看 *需要解决的最终结果 1.有绿色的小叶子 解决方案上图 1. 2. …

Ajax — 第一天

上网的目的 本质目的&#xff1a;浏览和消费资源 资源&#xff1a;文字、图片、音频、视频…资源存在哪里&#xff1a;服务器上 服务器的概念 是负责存放和对外提供资源的电脑。它的性能比普通的计算机好太多了 客户端 获取和消费资源的电脑&#xff0c;叫做客户端。 我…

Swift傻傻分不清楚系列(四)基本运算符 o_O!???

本页包含内容&#xff1a; 术语赋值运算符算术运算符组合赋值运算符比较运算符三目运算符空合运算符区间运算符逻辑运算符 运算符是检查、改变、合并值的特殊符号或短语。例如&#xff0c;加号&#xff08;&#xff09;将两个数相加&#xff08;如 let i 1 2&#xff09;。更…

网络经济与企业管理(第 2 章:企业战略管理)

一、战略的性质与类型 什么是战略&#xff1a;企业发展的谋划 企业战略的三个层次&#xff1a; 企业总体战略&#xff1a;又称经营战略&#xff0c;是企业整体运营的指导思想事业层战略&#xff1a;又称竞争战略、业务层次战略、SBU战略&#xff0c; 指导具体战略经营单位。职能…

Ajax — 图书管理

注意&#xff1a;本项目基于 jQuery 文件下进行的 Ajax 请求项目&#xff0c;需要映入jQuery文件&#xff01; <body style"padding: 15px;"><!-- 添加图书的Panel面板 --><div class"panel panel-primary"><div class"panel-h…

错误: 找不到或无法加载主类 com.leyou.LeyouItemApplication Process finished with exit code 1...

在IDEA的使用过程中&#xff0c;经常断掉服务或者重启服务&#xff0c;最近断掉服务重启时突然遇到了一个启动报错&#xff1a; 错误&#xff1a;找不到或无法加载主类 猜测&#xff1a;1&#xff0c;未能成功编译&#xff1b; 尝试&#xff1a;菜单---》Build---》Rebuild Pro…

Ajax — 第二天

Ajax-02 今天内容&#xff1a; 安装浏览器插件 聊天机器人案例 Form表单提交 模板引擎&#xff08;新的概念&#xff0c;难点&#xff09; 两个案例 Chrome浏览器插件安装 安装步骤 下载插件的网站&#xff1a; https://www.gugeapps.net/ 无需扫码 http://www.cnplu…

Ajax — 评论列表

<body style"padding: 15px;"><!-- 评论面板 --><div class"panel panel-primary"><div class"panel-heading"><h3 class"panel-title">发表评论</h3></div><form class"panel-bod…

Swift傻傻分不清楚系列(七)控制流

本页包含内容&#xff1a; For-In 循环While 循环条件语句控制转移语句&#xff08;Control Transfer Statements&#xff09;提前退出检测 API 可用性 Swift提供了多种流程控制结构&#xff0c;包括可以多次执行任务的while循环&#xff0c;基于特定条件选择执行不同代码分支…

java课程之团队开发冲刺1.8

一.总结昨天进度 1.初步实现用户交互 增删课程表 二.遇到的困难 1.主界面一段程序一直报错 三.今天的任务 1.解决报错问题&#xff0c; 编写查询空教室功能 照片 燃尽图 转载于:https://www.cnblogs.com/qfsr/p/10873636.html

Ajax — 聊天机器人演示

<body><div class"wrap"><!-- 头部 Header 区域 --><div class"header"><h3>小思同学</h3><img src"img/person01.png" alt"icon" /></div><!-- 中间 聊天内容区域 --><div…