app开发-1
一.了解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:"666"
}
});
});
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));
})
app开发-1的更多相关文章
- 从中间件的历史来看移动App开发的未来
在移动开发领域我们发现一个很奇怪的现象:普通菜鸟新手经过3个月的培训就可以拿到 8K 甚至上万的工作:在北京稍微有点工作经验的 iOS 开发,就要求 2 万一个月的工资.不知道大家是否想过:移动应用开 ...
- app开发外包注意事项,2017最新资讯
我们见过很多创业者,栽在这app外包上.很多创业者对于app外包这件事情不是特别重视,以为将事情交给app外包公司就完事了,实际上不是的.无论是从选择app外包公司还是签订合同.售后维护等各方面都有许 ...
- 前端移动App开发环境搭建
移动App开发环境安装 一.环境安装准备软件 二.node的安装 像安装普通软件一样,安装对应版本的node软件,安装好之后就可以运行npm命令行,比如npm init .npm install -g ...
- 一个小白App开发需要了解的基本技术
本文针对小白用户对App做一个简单的介绍,首先要了解App都有哪些类型,不同的类型适用于哪些需求,用户可以根据自己的需求选择不同的App开发. 一 App有哪些形式 WebApp:简单来说,Web A ...
- 移动web app开发必备 - 异步队列 Deferred
背景 移动web app开发,异步代码是时常的事,比如有常见的异步操作: Ajax(XMLHttpRequest) Image Tag,Script Tag,iframe(原理类似) setTimeo ...
- 移动web app开发必备 - Deferred 源码分析
姊妹篇 移动web app开发必备 - 异步队列 Deferred 在分析Deferred之前我觉得还是有必要把老套的设计模式给搬出来,便于理解源码! 观察者模式 观察者模式( 又叫发布者-订阅者模 ...
- html5 app开发,你知道多少?
随着大量新生移动设备的兴起,改变了互联网的未来,html5技术为开发者提供了一个跨平台的移动app开发方案,并且该方案具有很好的扩展性和灵活性,但就国内使用html5开发app应用技术来讲,还是有欠缺 ...
- 选择App开发外包时,你该了解哪些法律常识?
随着App需求的激增,选择App外包服务的客户也多了起来.然而客户和开发方对于其中的法律条款却不甚了解,导致在服务过程中,时常会发生一些分歧和纠纷,最终致使项目搁浅. 为了普及App外包的法律常识,移 ...
- phongap、APICloud、ionic等app开发平台你都知道吗?
大众创业热,很多人都想在互联网大展拳脚,然而大部分人却是非技术背景.针对这个行业痛点,现在国内外涌现出众多APP开发工具,开发者只要有相关的HTML5.CSS和JavaScript知识,便可以轻松快速 ...
- iOS APP开发的小知识(分享)
亿合科技小编发现从2007年第一款智能手机横空出世,由此开启了人们的移动智能时代.我们从一开始对APP的陌生,到现在的爱不释手,可见APP开发的出现对我们的生活改变有多巨大.而iOS AP ...
随机推荐
- go 单元测试框架介绍
最近项目在补充单元测试,这里介绍以下几个go里流行的单元测试框架. gomock gostub monkey Convey 下面介绍下各个框架的主要用途 convey 主要用途是用来组织测试用例的 g ...
- 史上最全的中高级Java面试题汇总
原文链接:https://blog.csdn.net/shengqianfeng/article/details/102572691 memcache的分布式原理 memcached 虽然称为 “ 分 ...
- WebGL学习笔记二——绘制基本图元
webGL的基本图元点.线.三角形 gl.drawArrays(mode, first,count) first,代表从第几个点开始绘制即顶点的起始位置 count,代表绘制的点的数量. mode,代 ...
- [转帖]linux下安装7z命令及7z命令的使用
linux下安装7z命令及7z命令的使用 https://www.cnblogs.com/yiwd/p/3649094.html yum install p7zip 执行命令为 7za x 或者是 7 ...
- 简单的爬虫程序以及使用PYQT进行界面设计(包含源码解析)
由于这个是毕业设计的内容,而且还是跨专业的.爬虫程序肯定是很简单的,就是调用Yahoo的API进行爬取图片.这篇博客主要讲的是基础的界面设计. 放上源码,然后分部解析一下重要的地方.注:flickra ...
- python3:使用for循环打印九九乘法表
for i in range(1, 10): for j in range(1, i + 1): print(j, '*', i, '=', i * j, end=" ") #en ...
- GoLang基础数据类型---字典
Map 是 Go 中的内置类型,它将键与值绑定到一起.可以通过键获取相应的值. 如何创建 map? 可以通过将键和值的类型传递给内置函数 make 来创建一个 map.语法为:make(map[Key ...
- C# vb .net图像合成-多图片叠加合成
在.net中,如何简单快捷地实现图像合成呢,比如合成文字,合成艺术字,多张图片叠加合成等等?答案是调用SharpImage!专业图像特效滤镜和合成类库.下面开始演示关键代码,您也可以在文末下载全部源码 ...
- 使用poi调整字体格式、添加单元格注释、自动调整列宽
1 创建新的工作铺 import java.io.FileOutputStream; import org.apache.poi.hssf.usermodel.HSSFCell; import org ...
- 2019 世纪龙java面试笔试题 (含面试题解析)
本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.世纪龙等公司offer,岗位是Java后端开发,因为发展原因最终选择去了世纪龙,入职一年时间了,也成为了面试官 ...