1、JS页面之间的正向传值:
navigator.push({
url:util.pushUrl + 'car/myindent/MyIndentInfo.js',
animated:true,
data:{
orderid:item.orderid,
userflag:self.params.userflag,
user:self.params.user,
sign:self.params.sign
}
},event=>{
});
说明:这里的参数名key值只能是data,里面的值可以无限加。
2、获取值(原生调起JS也是这样获取参数):
var data = weex.config.data;
3、JS页面之间的逆向传值:A跳转到B
①先在A页面注册一下接口,用来接收回调
//获取当前页面为唯一ID值
UtilModule.getInstanceId(function(result){
if(null != result)
{
const id = result.id;
//注册全局事件
const globalEvent = weex.requireModule('globalEvent');
//添加返回注册事件,该名字是固定的
globalEvent.addEventListener("longriseWeexBack", function (e) {
//判断该返回事件是否是当前页面发出的,这个判断一定要加,因为是全局事件,不然其他页面的关闭会影响这里
if(e != null)
{
if(id == e.id)
{
var param = e.data;//获取pop过来的参数
if(null != param && param != undefined)
{
modal.toast({ message: 'username:' + e.data.username, duration: 1 });
}
}
}
});
//注册其他全局事件,类似Android的广播和IOS的通知,根据方法名字来区分
globalEvent.addEventListener("testEvent", function (e) {
modal.toast({ message: 'testEvent', duration: 1 });
});
}
});
②B页面关闭时发起回调事件:
//============关闭页面,并传参数==========
navigator.pop({
animated: "true",
data:{
username:'程三',
password:123456
}
}, event => {
});
//=============发送全局消息=============
//定义JSON对象
var jsonObj = {};
jsonObj.name='程三';
UtilModule.sendGlobalMessage("testEvent",jsonObj)
4、JS页面调用原生的可以通过module来调用传值。
5、WEEX开发请导入阿里控件库,地址:https://alibaba.github.io/weex-ui/#/cn/
6、定义全局类:
const pushUrl='http://192.168.31.100:8081/dist/';//接口请求地址
const serverUrl="https://qcda.96520.com/restservices/";
const appgetversion="lcipzjapprest";
const imageUrl='https://gitee.com/longrise/CarImage/raw/master/image/';//图片地址
export default{
//暴露变量
serverUrl,
imageUrl,
pushUrl,
appgetversion
}
使用:1、导入:import util from '../../util' 这的点表示层级,从顶层开始算起。 2、使用详见接口请求示例。
7、接口请求:
var jsonObj = {};
jsonObj.company='';
jsonObj.userflag=params.userflag;
jsonObj.pagesize=self.pagesize;
jsonObj.pagenum=self.currentnum;
jsonObj.user=params.user;
jsonObj.sign=params.sign;
UtilModule.log("longrise",JSON.stringify(jsonObj));
//参数:url地址/接口名/json字符串参数/回调方法,返回json字符串的接口
UtilModule.okhttp(util.serverUrl,util.appgetversion+"/appcarsearchappointment",JSON.stringify(jsonObj),function(result){
//json字符串转JSON对象
var tempData = JSON.parse(result);
});
8、请求接口和初始化一些参数都可以在created方法中执行,如:
created:function(){
self=this;
self.carSrc = util.imageUrl+"car_car_iconx.png";
self.timeSrc = util.imageUrl+"car_time_icon.png";
self.params = data;
this.request(self.params);
//modal.toast({ message: "userId:"+data.userId, duration: 1 })
}
9、weex图片的存放,图片下载蓝湖中web类型的@2X类型,开发取尺寸时选择像素px,不要选择Android或者IOS。下载图片后可是放在一个文件件里面和工程一起提交到git中,然后图片就有地址了,如:
created:function(){
self=this;
//util.imageUrl为固定值,上线后图片放置到后台服务器,这里修改成服务器地址即可。
self.carSrc = util.imageUrl+"car_car_iconx.png";
self.timeSrc = util.imageUrl+"car_time_icon.png";
self.params = data;
this.request(self.params);
//modal.toast({ message: "userId:"+data.userId, duration: 1 })
}
10、标签下只能有一个div标签,在这个div标签下面在加多个控件,有点类似Android的scrollView
11、不支持slot。
12、图片动态赋值:src里面是对应的图片地址变量
简写:
13、WEEX里面有作用域概念,所以需要定义一个全局的this变量来调用变量和方法,如:
①定义全局变量:var self;
②在onCreate方法中赋值:
created:function(){
self=this;
},
14、6、JSON字符串转对象:
var obj = str.parseJSON(); //由JSON字符串转换为JSON对象
或者
var obj = JSON.parse(str); //由JSON字符串转换为JSON对象
15、7、拼接JSON字符串:
var jsonObj = {};
jsonObj.userflag=params.userflag;
jsonObj.pagesize=10;
jsonObj.pagenum=1;
jsonObj.user=params.user;
jsonObj.sign=params.sign;
//转成字符串
JSON.stringify(jsonObj)
16、JS文件配置远程和本地地址:
远程:const pushUrl='http://192.168.1.121:8081/dist/';//远程跳转地址
本地:const pushUrl='dist/';//本地跳转地址