HBuilder创建app 基础
一.了解HBuilder
HBuilder内封装了大量的书籍,极大方便了使用
官方文档:
http://dev.dcloud.net.cn/mui/ui/
关于布局:
mhead 表头.mbody 身子,mtap 尾部
操作:
1.跳转页面 mui.openWindow
document.getElementById("setting").addEventListener("tap",function(){ # tap 监听事件 dga快捷方式
mui.openWindow({ #mui.openWindow 跳转到新页面
"url":"new.html", #跳转的页面文件
"id":"new.html", #跳转的id
styles:{
top:"0px", # styles 样式 固定时必须用top作为参照
bottom:"50px"
},
extras:{ # extras 传值 需要在new.html上注入plusReady(function{}) ,内部填写 变量= plus.webview.currentWebview()接收.
name:""
}
});
});
2.点击显示提示 toast
document.getElementById('email').addEventListener('tap',function () {
mui.toast("你点击邮件了");
})
3.mui.fire 跨表发送数据
mui.plusReady(function(){
})
document.getElementById('email').addEventListener('tap',function () {
var new_page = plus.webview.getWebviewById("new.html"); #同过mui.fire传值的参数,指向id为要发送数据的html 的id,使用plus必须有 mui.plusReady(function()
mui.fire(new_page,'show_alert',{name:"chunsheng"}); #mui.fire三个参数(访问页面id,function回调函数名,字典形式内容),需要在访问html接收这个回调函数
})
另一端的接收
document.addEventListener("show_alert",function(data){ #这里全局监听传递的回调函数
console.log(JSON.stringify(data.detail.name)); #监听返回的函数必须 .detail 转换为Object字典形式
alert("欢迎观临");
})
4.json post请求
document.getElementById('login_btn').addEventListener('tap',function () {
var username = document.getElementById("username").value;
var password = document.getElementById("password").value;
mui.post('http://192.168.13.144:9527/login',{
username:username,
password:password
},function(data){
mui.toast(data.msg);
},'json'
);
})
mui.post('',#'' 存访问的地址
{
#传递的参数位置
},function(data){
#接收数据位置
},'json' #若为jsonity格式,可不告诉客户端请求头为json格式
);
5.图文列表,自己创建列表格式 通过createElement("")创建标签和appendChild()定义层级关系
function create_item(content){
var li = document.createElement("li");#创建标签li createElement
li.className ="mui-table-view-cell mui-media"; #配置class信息 className
var a = document.createElement("a");
var img = document.createElement("img");
img.className ="mui-media-object mui-pull-left";
img.src = "http://192.168.13.144:9527/get_image/"+content.image; #配置src 直接访问地址获取
var div = document.createElement("div");
div.className="mui-media-body";
div.innerText = content.tilte; #创建文本 innerText
var p = document.createElement("p");
p.className="mui-ellipsis";
p.innerText=content.text;
li.appendChild(a); #创建层级关系
a.appendChild(img);
a.appendChild(div);
div.appendChild(p);
document.getElementById("content_list").appendChild(li);
#注意,这是有名函数,需要调用才可用
}
调用函数
mui.plusReady(function () {
mui.post('http://192.168.13.144:9527/content_list',{
},function(data){
for (var i = 0; i < data.length; i++) {
// console.log(JSON.stringify(data[i]))
create_item(data[i]);#调用函数
}
},'json'
);
})
关于后端传递src
from flask import Flask,request,jsonify,send_file
from setting import MONGO_DB
@app.route("/content_list",methods=["POST"])
def content_list():
res = list(MONGO_DB.content.find({},{"_id":0}))
return jsonify(res) @app.route("/get_image/<filename>")
def get_image(filename):
import os
path = os.path.join("tupian",filename)
return send_file(path)
6.将其他页面在首页显示 mui.init( ) subpages
mui.init({
subpages:[{ #将main页面显示在首页的方法 subpages
url:'main.html',
id:'main.html',
styles:{
top:'0px',//mui标题栏默认高度为45px;
bottom:'50px'//默认为0px,可不定义;
}
}]
});
7.全局设置 mui.js
使用时一定要引用
<script src="js/mui.js" type="text/javascript" charset="utf-8"></script>
内容
window.serv = "http://192.168.13.189:9527";
window.serv_image = window.serv + "/get_image/";
window.serv_music = window.serv + "/get_music/";
在以后访问的路由中,都可以使用变量代替
8.将音频播放 myplayer
myplayer = plus.audio.createPlayer(window.serv_music + Sdata.audio); #后面是访问文件的地址
myplayer.play(); 播放
myplayer.pause(); #暂停
myplayer.resume(); #继续
myplayer.stop();#停止
9.查看自身ip
// var sdata = plus.webview.currentWebview(); # 在plusready ()使用
// console.log(JSON.stringify(sdata)) #这里获取的是页面的全部信息
10websocket访问
var ws = new WebSocket("ws://192.168.13.189:3721/app/app01");#这里同样可以通过websocket进行数据访问
document.addEventListener("send_music",function(data){
var send_str = data.detail // {to_user:"toy123",music:Sdata.audio}
ws.send(JSON.stringify(send_str));
})
HBuilder创建app 基础的更多相关文章
- HBuilder创建app
一.app登录注册实现 1.首先进行布局,mhead,mbody 在app index.html内创建一个 a链接通过mui.openWindow跳到登录页面 <a class="mu ...
- HBuilder创建app 3
一.Audio 模块实现开启手机摄像头 基于html5 plus http://www.html5plus.org/doc/zh_cn/audio.html 栗子: <!DOCTYPE html ...
- 一、数据库表中字段的增删改查,二、路由基础.三、有名无名分组.四、多app共存的路由分配.五、多app共存时模板冲突问题.六、创建app流程.七、路由分发.八、路由别名,九、名称空间.十、反向解析.十一、2.x新特性.十二、自定义转换器
一.数据库表中字段的增删改查 ''' 直接在modules中对字段进行增删改查 然后在tools下点击Run manage.py Task执行makemigrations和migrate 注意在执行字 ...
- pycharm上运行django服务器端、以及创建app方法
快来加入群[python爬虫交流群](群号570070796),发现精彩内容. 安装Django 下载Django包,解压缩. CMD 进入解压路径下. 执行:python setup.py in ...
- 使用Material Design 创建App翻译系列----材料主题的使用(Using Material Theme)
上一篇是使用Material Design 创建App翻译系列--開始学习篇,进入正题: 新的材料主题提供了下面内容: 1. 提供了同意设置颜色板的系统部件组件. 2. 为这些系统组件提供了触摸反馈动 ...
- HBuilder开发App教程04-最难搞定的是mui
前言 前几篇说到一些HBuilder开发app的基础教程, 现在来说一下HBuilder开发app的难点,或者说是上手的难点, 就是mui, 如果你没有研究mui就贸然的上手HBuilder,那你的开 ...
- springboot+layui实现PC端用户的增删改查 & 整合mui实现app端的自动登录和用户的上拉加载 & HBuilder打包app并在手机端下载安装
springboot整合web开发的各个组件在前面已经有详细的介绍,下面是用springboot整合layui实现了基本的增删改查. 同时在学习mui开发app,也就用mui实现了一个简单的自动登录和 ...
- App架构师实践指南一之App基础语法
第二章:App基础语法1.编程范式编程范型或编程范式(programming paradigm),是指从事软件工程的一类典型的编程风格.常见的编程范式有过程化(命令行)编程.事件驱动编程.面向对象编程 ...
- Hbuilder开发app实战-识岁03-文件上传
前言 做app不得不谈的问题就是文件上传.用hbuilder开发app让上传变的非常easy. Uploader Uploader模块管理网络上传任务,用于从本地上传各种文件到server,并支持跨域 ...
随机推荐
- day55_9_19模型层的操作
一.配置settings. 如果是queryset对象 那么可以点query直接查看该queryset的内部sql语句 将以下代码放入settings中.就可以实现当使用orm时查看sql语句: LO ...
- [C13] 应用实例:图片文字识别(Application Example: Photo OCR)
应用实例:图片文字识别(Application Example: Photo OCR) 问题描述和流程图(Problem Description and Pipeline) 图像文字识别应用所作的事是 ...
- win10打印所有进程
#include <map> #include <iostream> #include <string> #include <windows.h> #i ...
- idea多模块项目打开RunDashBoard(十)
在使用spring cloud微服务时,多个服务可以以多个独立子模块(module)的形式放在一个project里面,当服务过多时,一个个启动往往不是很方便,idea有一个贴心的RunDashBoar ...
- Django middleware (中间件)
关于中间价: django 中的中间件其实就是一个类,在请求到来和结束后,django会根据自己的规则在合适的时机执行中间件中相应的方法. 在django项目的settings中,有一个 MIDDLE ...
- 安装oracle 11g及初次链接使用, 解锁及常用命令
1. 安装方法参考原创: https://blog.csdn.net/projectNo/article/details/76533921 2.初次链接数据库时,注意以下: 1. window + r ...
- POJ2976Dropping tests(分数规划)
传送门 题目大意:n个二元组a[i],b[i],去掉k个,求sigma a[i]/ sigma b[i]的最大值 代码: #include<iostream> #include<cs ...
- c# 多线程 双色球
学习记录.仅供参考. 知识点: 多线程 Lock 环境: Visual Studio 2017 public partial class Form1 : Form { private static r ...
- vue 使用localstorage实现面包屑
mutation.js代码: changeRoute(state, val) { let routeList = state.routeList; let isFind = false; let fi ...
- python-9-列表的增删改查
前言 本节是:列表(list)的增删改查.什么是列表? 列表(list)是最常用的Python数据类型,它可以作为一个方括号[]内的逗号分割值出现.如:[1,5,"b"] 一.增 ...