weex 小结--内建模块
使用以下模块时,需要导入依赖:var *** = require('@weex-module/****');
1. navigator --像浏览器一样切换页面
2. webview(module) --<web> 组件的刷新,后退,前进
3. dom --组件的滚动(只用于 <list>,<scroller>)
4. stream --网络请求
5. modal --各种提示框
6. animation --动画
7. storage --存储
8. clipboard --剪贴板
1. navigator 切换页面,url 只能是 .js 文件的地址(返回的是 js 文件)
//前进
var params = {'url':url,'animated':'true'};
navigator.push(params, function(e) {});
//后退---params 可以省略不写
var params = {'url':url,'animated':'true'};
navigator.pop(params, function(e) {});
2. webview
3. dom 组件滚动
// 获取目标组件对象
var el=this.$el('top');
// 参数:第一个为目标点,第二个为偏移值
dom.scrollToElement(el,this.$el('el-0'));
4. stream 网络请求,推荐 fetch()(sendhttp() 方法不建议使用)
/**
* @param optionsStr request options include:
* method: GET 、POST、PUT、DELETE、HEAD、PATCH
* headers:object,请求header(可以不用设置)
* url:
* body: "Any body that you want to add to your request"(格式为:“QueryType="+queryType+"&Params="+params+"&UserGuid="+userGuid“)
* type: json、text、jsonp(native实现时等价与json)
* @param callback finished callback,response object:
* status:status code
* ok:boolean 是否成功,等价于status200~299
* statusText:状态消息,用于定位具体错误原因
* data: 响应数据,当请求option中type为json,时data为object,否则data为string类型
* headers: object 响应头
*
* @param progressCallback in progress callback,for download progress and request state,response object:
* readyState: number 请求状态,1 OPENED,开始连接;2 HEADERS_RECEIVED;3 LOADING
* status:status code
* length:当前获取的字节数,总长度从headers里「Content-Length」获取
* statusText:状态消息,用于定位具体错误原因
* headers: object 响应头
*/
stream.fetch({method: 'GET',url: url,type:'json'}, function(res) {
try {
var results = res.data.data || []; // res,data 才是需要的数据
self.title=results.title;
self.content=results.content;
self.author=results.author.user_name;
console.log('i am the callback '+results.id);
} catch(e) {}
},function(res){});
5. modal 提示框
注:浏览器预览时显示不正常(高度太小,被挤压),移动端显示正常
// toast(params),alert(params,callback), confirm(params,callback), prompt(params,callback)
modal.toast({'message':self.message,'doation':2});
modal.alert({'message':self.message,'oktitle':'OK'},function(result){self.params = String(result);}),
// confirm 返回值的格式:{result: '按钮上的值'}
modal.confirm({'message':self.message,'okTitle': 'YES','cancelTitle': 'NO'},function (result) {self.params = String(result);});
// prompt 返回值 ret 格式:{result: '按钮上的值',data: '输入的值'}
modal.prompt({'message': 'I am a prompt','okTitle': 'YES', 'cancelTitle': 'NO'}, function (ret) {self.params = JSON.stringify(ret);});
6. animation 动画
// 旋转
rotate:function(){
var self = this;
self.current_rotate += 90;
self.animate({transform: 'rotate(' + self.current_rotate + 'deg)'}, 'ease-in-out', 500, function() {
if (self.current_rotate === 360) {
self.current_rotate = 0;
}else {
self.rotate();
}
});
},
// 放大 / 缩小
scale:function(){
var self=this;
self.current_scale=this.current_scale=== 2 ? .5 : 2;
self.anim({transform:'scale('+self.current_scale+')'},'linear',500,function(){});
},
// 移动
translate:function(){
var self=this;
self.current_translate=self.current_translate?'':'translate(50%,50%)';
self.anim({transform:self.current_translate},'ease-in',500,function(){});
},
// 横向移动
translateX:function(){
var self=this;
self.current_translate=self.current_translate?'':'translate(500%,0)';
self.animate({transform:self.current_translate},'ease-in',500,function(){});
},
// 竖向移动
translateY:function(){
var self=this;
self.current_translate=self.current_translate?'':'translate(0,100%)';
self.animate({transform:self.current_translate},'ease-in',500,function(){});
},
// 改变宽度
changeWidth:function(){
var self=this;
self.current_width=self.current_width===250?50:250;
self.animate({width:self.current_width},'linear',500,function(){});
},
// 改变高度
changeHeight:function(){
var self=this;
self.current_height=self.current_height===250?50:250;
self.animate({height:self.current_height},'ease-in',500,function(){});
},
// 改变背景颜色
changeColor:function(){
var self=this;
self.current_color=self.current_color==='#F0AD4E'?'#FF0000':'#F0AD4E';
self.animate({backgroundColor:self.current_color},'linear',500,function(){});
},
// 改变透明度
changeOpacity:function(){
var self=this;
self.current_opacity=self.current_opacity===1?0.3:1;
self.animate({opacity:self.current_opacity},'linear',500,function(){});
},
7. storage 本地存储
注: key 不可以为 “” 或者是 null
从本地获取数据时:使用 getAllKeys 方法获取所有的 key,从而匹配出我们需要的 key 来获取数据
//方法区分大小写,大小写出错可导致页面无法正常渲染
storage.getAllKeys(function(e){
if (e.result=='success'&&e.data.length) {
e.data.forEach(function(item){
if (item.indexOf('his_')>-1) {
self.his_list.push(item.split('his_')[1]);
}
});
}
});
向本地添加数据:使用 setItem(key,value,callback) 方法添加数据
storage.setItem('his_'+self.his_item,self.his_item,function(e){
// 返回值 e 格式:{result:'success', data:'****'} e.data 为空时返回 'undefine'
self.his_list.push(self.his_item);
});
获取一条数据: getItem(key,callbakc)
storage.getItem('foo', function (e) {
e.data
});
删除一条数据:removeItem(key,callback)
storage.removeItem('foo', function (e) {
e.result
e.data
})
获取本地存储的数量 :length(callback)
获取所有键值得数组: getAllKeys(callback)
8. clipboard 剪贴板 --将文本信息放到剪贴板,获取剪贴板的信息并粘贴
getString(text) : 将文本信息放到剪贴板
if (!e.value) return;
clipboard.setString(e.value);
setString(callback) : 获取剪贴板的信息并粘贴
if (!self.clipboardmess) return;
clipboard.getString(function(e){
self.clipboardmess=e.data;
});
weex 小结--内建模块的更多相关文章
- 四十六 常用内建模块 itertools
Python的内建模块itertools提供了非常有用的用于操作迭代对象的函数. 首先,我们看看itertools提供的几个“无限”迭代器: >>> import itertools ...
- Python常用的内建模块
PS:Python之所以自称“batteries included”,就是因为内置了许多非常有用的模块,无需额外安装和配置,即可直接使用.下面就来看看一些常用的内建模块. 参考原文 廖雪峰常用的内建模 ...
- Python内建模块--collections
python内建模块--collections collections是Python内建的一个集合模块,提供了许多有用的集合类. namedtuple 我们知道tuple可以表示不变集合,例如,一个点 ...
- Python常用内建模块
Python常用内建模块 datetime 处理日期和时间的标准库. 注意到datetime是模块,datetime模块还包含一个datetime类,通过from datetime import da ...
- Python3 内建模块 hashlib、itertools、HTMLParser、urllib
Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制 ...
- python常用内建模块 collections,bs64,struct,hashlib,itertools,contextlib,xml
# 2 collections 是Python内建的一个集合模块,提供了许多有用的集合类. # 2.1 namedtuple #tuple可以表示不变集合,例如,一个点的二维坐标就可以表示成: p ...
- Python的程序结构[5] -> 模块/Module[0] -> 内建模块 builtins
builtins 内建模块 / builtins Module 在Python的模块中,有一种特殊模块,无需导入便可以使用,其中包含了许多内建函数与类. builtins 模块内容 / builtin ...
- python的常用内建模块与常用第三方模块
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理 一.常用内置模块1.datetimePython 提供了一个 time 和 calendar 模块可 ...
- Python常用内建模块和第三方库
目录 内建模块 1 datetime模块(处理日期和时间的标准库) datetime与timestamp转换 str与datetime转换 datetime时间加减,使用timedelta这个类 转 ...
随机推荐
- 真正shopex分销王2代DRP系统源码正版安装版本终身商业授权
真正ShopEx分销王系统2代正版授权.该商业程序已经完整授权,已测试100%完整能用.很多朋友来问是否免费版的源码?错,这是和官方一样的平台版本,100%无限制功能使用,跟官方付费使用的授权版一样. ...
- Samba文件服务器详细配置步骤
准备安装 环境:CentOS 6.3_x64bit 安装:Minimal(最小) 1.配置IP地址 2.挂载:[root@localhost ~]# mount -t iso9660 /dev/cdr ...
- 二十二、Java基础--------GUI入门
在java学习过程中GUI是一个比较特殊的知识体系(笔者对安卓不是很了解),似乎在为安卓的学习做着准备,本文将将展示一个综合案例. 创建一个类似于记事本的程序,包含打开与保存功能. package G ...
- 写个shell脚本
以前更新网站程序都是手动噼里啪啦敲代码,即麻烦又慢,还神经紧张.终于忍不住写个shell脚本. cd /usr/local/tomcat7/apache-tomcat-9.0.0.M4/ bin/ ...
- Redmine自定义字段增多后会变慢
问题: 在Redmine部署使用后,发现更新事务时速度慢,进行了相关试验,去掉了可能影响速度的插件,仍然很慢.以下为对比试验: 1.包含12个自定义字段的项目,更新用时2136ms,记录如下: Sta ...
- [转]SSAS没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG)) (Microsoft Visual Studio)的解决办法
转自:http://www.cnblogs.com/xvqm00/archive/2011/07/15/2107338.html 打开SSAS 数据源视图浏览数据时,提示 没有注册类别 (异常来自 H ...
- win10 使用docker
新手 win10 下使用docker 1:下载docker for win 2:查看docker使用文档 https://github.com/widuu/chinese_docker 3 : 下载镜 ...
- Java 基础接口练习题
编写2个接口:InterfaceA和InterfaceB:在接口InterfaceA中有个方法void printCapitalLetter():在接口InterfaceB中有个方法void prin ...
- Radmin Center 1.54 测试版
软件简介:radmin center 用于集中管理安装了 radmin server 的服务器,支持一键远程管理,数据全部本地存储,关键数据使用RC4变形加密.同时保留了radmin的高安全性和高易用 ...
- Excel-漏斗图分析(差异分析)
漏斗图适用于业务流程比较规范.周期长.环节多的流程分析,通过漏斗各环节业务数据的比较,能够直观地发现和说明问题所在.在网站分析中,通常用于转化率比较,它不仅能展示用户从进入网站到实现购买的最终转化率, ...