Apicloud不同页面传值

前言

apicloud

标准开头,前一段时间因为需要开发一个简单的app,所以接触了一下Apicloud,因为没有native应用的开发知识,所以采用了Apicloud的web应用开发。其中不同页面的传值问题我具体研究一段时间,因为之前一直传值不成功。


正文

方法一:api.execScript

这个方法本来的功能是用来不同页面的函数的传递,当然,也可以用来传递值,将这个值作为函数的参数就可以传递到其他页面。具体:

index1:

//name是该页面函数的参数,作为参数传递到另一个页面
var str="test("+name+")";
api.exeScript({
    name:"index2",
    script:str});

index2:

//index2页面代码
function test(name){
alert(name);
}

方法:api.addEventListener&&api.sendEvent

这个是利用广播事件传递参数。

index1:发送广播

api.sendEvent({
    name:'myEvent',
    extra:{key1:'value',key2:'key2'}

});

index2:接受广播

api.addEventListener({
    name:'myEvent'},
    function(ret){
    if(ret&&ret.value){
    var value = ret.value;
    alert(value.key1+','+value.key2);
    }
});

方法三 :api.LocalStorage

这个方法很简单,采用了本地数据存储的方法来交换数据。

index1:

$api.setStorage('name','value');//数据存储

index2:

$api.getStorage('name');//取出name值

另外:

$api.rnStorage('name');//清除name值
$api.clearStorage('name');//清除所有本地数据

方法四 :api.openWin&api.openFrame&api.openFrameGroup

最后最简单的是采用打开窗口时可以顺带传值。

index1:

//打开新窗口
api.openWin({
    name:index2,
    url:index2.html,
    pageParam: {
        key : value,
        }
});


//打开frame组
api.openFrameGroup({
name: 'group1',
rect: {             //frame的位置
    x: 0,
    y: 0,
    w: 'auto',
    h: 'auto'
},
frames: [{           //frame组 
    name: 'frame1',
    url: 'frame1.html',
    bgColor: '#fff'
}, {
    name: 'frame2',
    url: 'frame2.html',
    bgColor: '#fff'
}]
}, function(ret, err) {			//回调函数
var index = ret.index;
});      

index2:

apiready=function(){
    var test=api.pageParam.key;
    alert(test);
    }

Powered by Hexo and Hexo-theme-hiker

Copyright © 2019 - 2024 My Wonderland All Rights Reserved.

UV : | PV :