窗口模块Window
appcan是多窗口的,该模块封装了关于窗口的基础操作
name:新窗口的的名称,如果窗口存在直接打开,如果不存在先创建然后打开
data:新窗口填充的数据
dataType:新窗口填充的数据类型
0: url
1: html 数据//必如传入的是一个<div></div>
2: html 和 url 混合数据
aniId:动画类型Id
0: 无动画
1: 从左向右推入
2: 从右向左推入
3: 从上向下推入
4: 从下向上推入
5: 淡入淡出
6: 左翻页
7: 右翻页
8: 水波纹
9: 由左向右切入
10: 由右向左切入
11: 由上先下切入
12: 由下向上切入
13: 由左向右切出
14: 由右向左切出
15: 由上向下切出
16: 由下向上切出
type:窗口类型
0: 普通窗口
1: OAuth 窗口
2: 加密页面窗口
4: 强制刷新
16: view不透明
32: 隐藏的window
64: 等待popOver加载完毕后显示
128: 支持手势
256: 标记open的window上一个window不隐藏
512: 标记open的浮动窗口用于打开webapp。此浮动窗口将不进行默认字体的设置,缩放比例的设置等,WebApp的排版适配交由系统处理。注意:此flag仅用于open浮动窗口。
width:要打开的窗口宽度,请传0
height:要打开的窗口高度,请传0
animDuration:动画执行时间
extraInfo:扩展参数,设置值时,animDuration参数必传
例子:
appcan.window.open({
name:name,
dataType:0,
aniId:2,
data:name + ".html",
extraInfo:{
opaque:true,
bgColor:bg
}
});
参数还可以以对象的形式传参:
{
name:"",
data:"",
dataType:"",
aniId:"",
type:"",
width:"",
height:"",
animDuration:""
}
例如:
//打开一个新demo窗口,并加载appcan.cn页面
appcan.window.open({
name:'demo',
dataType:0,
data:'http://appcan.cn'
});
//另外一种使用方式
var win = appcan.require('window');
win.open({
name:'demo',
dataType:0,
data:'http://appcan.cn'
});
appcan.window.close(aniId,animDuration) //关闭当前窗口
aniId:动画类型Id
0:无动画
1: 从左向右推入
2: 从右向左推入
3: 从上向下推入
4: 从下向上推入
5: 淡入淡出
6: 左翻页
7: 右翻页
8: 水波纹
9: 由左向右切入
10: 由右向左切入
11: 由上先下切入
12: 由下向上切入
13: 由左向右切出
14: 由右向左切出
15: 由上向下切出
16: 由下向上切出
animDuration:动画持续时间
参数还可以以对象的形式传参:
{
aniId:"",
animDuration:""
}
例如:
//关闭当前窗口
appcan.window.close({
aniId:17,
animDuration:1000
});
//另外一种使用方式
var win = appcan.require('window');
win.close({
aniId:17,
animDuration:1000
});
appcan.window.evaluateScript(name,scriptContent,type) //在指定的窗口脚本执行
name:要执行脚本的窗口名称
scriptContent:要执行的脚本
type:窗口类型
参数还可以以对象的形式传参:
{
name:'',
scriptContent:'',
type:''
}
例子:
//在demo窗口执行脚本
appcan.window.evaluateScript({
name:'demo',
scriptContent:'alert("hello world")'
});
//另一种使用方式
var win = appcan.require('window');
win.evaluateScript({
name:'demo',
scriptContent:'alert("hello world")'
});
appcan.window.evaluatePopoverScript(name,popName,scriptContent) //在指定的弹出窗内执行相应的脚本
name:要执行脚本的窗口名称
popName:要执行的弹出窗口的名称
scriptContent:要执行的脚本内容
参数还可以以对象的形式传参:
{
name:'',
popName:'',
scriptContent:''
}
例子:
//在demo窗口的弹出窗口执行脚本
appcan.window.evaluatePopoverScript({
name:'demo',
popName:'demoPop',
scriptContent:'alert("hello world")'
});
//另一种使用方式
var win = appcan.require('window');
win.evaluatePopoverScript({
name:'demo',
popName:'demoPop',
scriptContent:'alert("hello world")'
});
appcan.window.setBounce(bounceType,startPullCall,downEndCall,upEndCall,color,imgSettings) //设置上下弹动效果
bounceType:弹动的类型,如果为多个请用数组
0: 是向下拖动
1: 是向上拖动
startPullCall:开始滑动时触发回调
downEndCall:上拉或者下拉超过边界执行回调
upEndCall:上拉或者下拉,超过边界之后,恢复最初状态执行回调
color:如果超过了该边界显示的背景颜色
imgSettings:如果超过了该边界,并且想要设置显示的内容包括图片文字则设置该参数
关于imgSettings的设定的实例:
{
"imagePath":"res://reload.png",
"textColor":"#530606",
"pullToReloadText":"拖动刷新",
"releaseToReloadText":"释放刷新",
"loadingText":"加载中,请稍等"
}
参数还可以以对象的形式传参:
{
bounceType:'',
startPullCall:function(){
//do somethings
},
downEndCall:function(){
//do somethings
},
upEndCall:function(){
//do somethings
},
color:'',
imgSettings:{}
}
例如:
//给页面添加一个简单的弹动效果
appcan.window.setBounce({
bounceType:'1',
color:'#F00',
upEndCall:function(type){
}
});
//另一种使用方式
var win = appcan.require('window');
win.setBounce({
bounceType:'1',
color:'#F00',
upEndCall:function(type){
}
});
appcan.window.enableBounce() //开启页面弹动效果
如果调用该方法,则该webView具有弹动效果
例如:
//开启页面弹动效果
appcan.window.enableBounce()
//另一种使用方式
var win = appcan.require('window');
win.enableBounce()
appcan.window.disableBounce() //禁用页面弹动效果
如果调用该方法,则该webView不具有弹动效果
例如:
//禁用页面弹动效果
appcan.window.disableBounce();//禁用页面弹动效果
//另一种使用方式
var win = appcan.require('window');
win.disableBounce();
appcan.window.setBounceType(type,color,flag,callback) //设置页面弹动类型
前提是开启webView的弹动设置,如果没有开启调用了该方法则会默认开启页面弹动效果
type:页面的弹动类型
0: 无任何效果
1: 颜色弹动效果
2: 设置图片弹动
color:设置弹动结果的背景颜色
flag:是否显示内容,1:显示内容,0:不显示内容
callback(status,type):当设置成功后,如果滑动超过了弹动的边界,则会触发该回调,status: 当type=0时,值0为向下拉,1为超越边界,2为向上返回到最初状态;当type=1时,0为向上拉,1为超越边界,2为向下返回到最初状态。 type跟传入的参数type一致
参数还可以以对象的形式传参:
{
type:'',
callback:function(status,type){
//do somethings
},
flag:'',
color:''
}
例如:
//设置上边弹动
appcan.window.setBounceType({
type:1,
flag:1,
color:'#F00',
callback:function(status,type){
if(stats == 1){
//超过边界了
}
}
});
//另外一种使用方式
var win = appcan.require('window');
win.setBounceType({
type:1,
flag:1,
color:'#F00',
callback:function(status,type){
if(stats == 1){
//超过边界了
}
}
});
appcan.window.setBounceParams(position,data) //设置对应弹动显示的内容
position:页面的弹动位置
0: 顶端
1: 底部
data:超过页面边界显示的内容
关于data设置的实例:
{
"imagePath":"res://reload.png",
"textColor":"#530606",
"pullToReloadText":"拖动刷新",
"releaseToReloadText":"释放刷新",
"loadingText":"加载中,请稍等"
}
参数还可以以对象的形式传参:
{
position:'',
data:{}
}
例如:
//设置参数
appcan.window.setBounceParams({
position:1,
data:{
"imagePath":"res://reload.png",
"textColor":"#530606",
"pullToReloadText":"拖动刷新",
"releaseToReloadText":"释放刷新",
"loadingText":"加载中,请稍等"
}
});
//另外一种使用方式
var win = appcan.require('window');
win.setBounceParams({
position:1,
data:{
"imagePath":"res://reload.png",
"textColor":"#530606",
"pullToReloadText":"拖动刷新",
"releaseToReloadText":"释放刷新",
"loadingText":"加载中,请稍等"
}
});
appcan.window.resetBounceView(position) //恢复默认弹动
position:页面的弹动位置
0: 顶端
1: 底部
参数还可以以对象的形式传参:
{
position:''
}
例如:
//重置顶部效果
appcan.window.resetBounceView(0)
//另外一种使用方式
var win = appcan.require('window');
win.resetBounceView(0)
appcan.window.openToast(msg,duration,position,type) //打开一个toast弹出窗口
msg:toast要显示的内容
duration:toast显示的时间
position:toast显示在屏幕中的位置
1: left_top 左上
2: top 上中
3: right_top 右上
4: left 左中
5: middle 中间
6: right 右中
7: bottom_left 下左
8: bottom 下中
9: right_bottom 右下
type:toast的类型
0: 没有进度条
1: 有进度条
参数还可以以对象的形式传参:
{
msg:'',
duration:'',
position:'',
type:''
}
例如:
//打开一个没有弹出框的toast
appcan.window.openToast({
msg:'toast',
duration:1000,
position:9,
type:0
});
//另外一种使用方式
var win = appcan.require('window');
win.openToast({
msg:'toast',
duration:1000,
position:9,
type:0
});
appcan.window.closeToast() //关闭现在显示的toast
例如:
//关闭当前页面的toast
appcan.window.closeToast();
//另外一种使用方式
var win = appcan.requrie('window');
win.closeToast();
appcan.window.moveAnim(left,top,callback,duration) //以动画的形式,移动弹出窗口
left:距离左边的位置
top:距离上边的位置
callback:动画移动完成后的回调函数
duration:动画持续的时间
参数还可以以对象的形式传参:
{
left:'',
top:'',
callback:function(){
//do somethings
},
duration:''
}
例如:
//把弹出窗口移动到指定的位置
appcan.window.moveAnim({
left:10,
top:10,
callback:functin(){
//动画完成
}
});
//另外一种使用方式
var win = appcan.require('window');
win.moveAnim({
left:10,
top:10,
callback:functin(){
//动画完成
}
});
如果不存在则会先创建然后再打开,如果存在则直接打开
name:要打开弹出窗的名称
dataType:新窗口填充的数据类型
0: url
1: html 数据//必如传入的是一个<div></div>
2: html 和 url 混合数据
url:弹出框要加载的页面的地址
data:弹出框要加载的数据内容
left:弹出框距离左边的距离
top:弹出框距离上边的距离
width:弹出框的宽度
height:弹出框的高度
fontSize:页面基础的字体大小
type:窗口类型
0: 普通窗口
1: OAuth 窗口
2: 加密页面窗口
4: 强制刷新
16: view不透明
32: 隐藏的window
64: 等待popOver加载完毕后显示
128: 支持手势
256: 标记open的window上一个window不隐藏
512: 标记open的浮动窗口用于打开webapp。此浮动窗口将不进行默认字体的设置,缩放比例的设置等,WebApp的排版适配交由系统处理。注意:此flag仅用于open浮动窗口。
bottomMargin:浮动窗口相对父窗口底部的距离。为空或0时,默认为0。当值不等于0时,height参数无效
extraInfo:扩展参数,设置值时,bottomMargin参数必传
例子:
appcan.window.openPopover({
name:'demo',
dataType:0,
url:name + ".html",
top:100,
left:100,
width:1400,
height:2100,
extraInfo:{
opaque:true,
bgColor:bg
}
});
参数还可以以对象的形式传参:
{
name:'',
dataType:'',
url:'',
data:'',
left:'',
top:'',
width:'',
height:'',
fontSize:'',
type:''
bottomMargin:''
}
例如:
//弹出一个简单的demo窗口,并打开appcan.cn
appcan.window.openPopover({
name:'demo',
dataType:0,
url:'http://appcan.cn',
top:100,
left:100,
width:100,
height:100,
});
//另外一种使用方式
var win = appcan.require('window');
win.openPopover({
name:'demo',
dataType:0,
url:'http://appcan.cn',
top:100,
left:100,
width:100,
height:100,
});
appcan.window.closePopover(name) //关闭指定的弹出窗口
name:弹出窗口的名字
参数还可以以对象的形式传参:
{
name:''
}
例如:
//关闭demo弹出窗口
appcan.window.closePopover('demo');
//另外一种使用方式
var win = appcan.require('win');
win.closePopover('demo');
appcan.window.resizePopover(name,left,top,width,height) //重置指定弹出窗口的大小、位置
name:要重置的弹出窗口的名称
left:要重置弹出窗口距离左边的距离
top:要重置的弹出窗口距离上边的距离
width:要重置的弹出窗口的宽度
height:要重置弹出窗口的高度
参数还可以以对象的形式传参:
{
name:'',
left:'',
top:'',
width:'',
height:''
}
例如:
//修改demo弹出框的位置
appcan.window.resizePopover({
name:'demo',
left:100,
top:100,
width:102,
height:102
})
//另外一种使用方式
var win = appcan.require('window');
win.resizePopover({
name:'demo',
left:100,
top:100,
width:102,
height:102
})
appcan.window.alert(title,content,buttons,callback) //弹出一个确认弹出窗口
如果只有一个按钮弹出是警告框,如果是一个以上的按钮弹出的是提示框
title:弹出框的标题
content:弹出框的内容
buttons:弹出框的按钮列表最多是三个
callback(err,data,dataType,optId):当点击了其中一个按钮后的回调,如果只有一个确定按钮则不执行回调函数 第一个参数是Error对象如果为空则表示没有错误,否则表示操作出错了,data表示返回的操作结果,dataType操作结果的数据类型,optId该操作id
参数还可以以对象的形式传参:
//{
title:'',
content:'',
buttons:[],
callback:function(err,data,dataType,optId){
//do somethings
}
}
例如:
//打开一个提示框
appcan.window.alert({
title:'提示',
content:'小提示',
buttons:'确定'
});
//另外一种使用方式
var win = appcan.require('window');
win.alert({
title:'提示',
content:'小提示',
buttons:'确定'
});
appcan.window.confirm(title,content,buttons,callback) //弹出一个提示框
title:弹出框的标题
content:弹出框的内容
buttons:弹出框的按钮列表最多是三个
callback(err,data,dataType,optId):当点击了其中一个按钮后的回调, 第一个参数是Error对象如果为空则表示没有错误,否则表示操作出错了,data表示返回的操作结果,dataType操作结果的数据类型,optId该操作id
参数还可以以对象的形式传参:
{
title:'',
content:'',
buttons:[],
callback:function(err,data,dataType,optId){
//do somethings
}
}
例如:
//打开一个确认框
appcan.window.confirm({
title:'提示',
content:'小提示',
buttons:['确定','取消'],
callback:function(err,data,dataType,optId){
if(err){
//如果出错了
return;
}
//data 按照按钮的索引返回值
}
});
//另外一种使用方式
var win = appcan.require('window');
win.confirm({
title:'提示',
content:'小提示',
buttons:['确定','取消'],
callback:function(err,data,dataType,optId){
if(err){
//如果出错了
return;
}
//data 按照按钮的索引返回值
}
});
appcan.window.prompt(title,content,defaultValue,buttons,callback) //弹出一个可以输入内容的提示框
title:提示框的标题
content:提示框中显示的内容
defaultValue:(String类型) 必选 输入框默认文字
buttons:提示框显示的按钮,多个按钮可以为数组形式
callback(err,data,dataType,optId):当点击了其中一个按钮后的回调, 第一个参数是Error对象如果为空则表示没有错误,否则表示操作出错了,data表示返回的操作结果{index:'按钮的索引值',data:'输入框的值'},dataType操作结果的数据类型,optId该操作id
参数还可以以对象的形式传参:
{
title:'',
content:'',
defaultValue:'',
buttons:'',
callback:function(){}
}
`
appcan.window.bringPopoverToFront(name) //把指定的弹出窗口设置为最上层
name:要设置的弹出层的名称
参数还可以以对象的形式传参:
{
name:''
}
例如:
//把demo窗口显示到所有窗口最上面
appcan.window.bringPopoverToFront('demo');
//另外一种使用方式
var win = appcan.require('window');
win.bringPopoverToFront('demo');
id:指定元素的Id
url:要加载到弹出窗口中的地址
left:距离左边界的距离
top:距离上边界的距离
name:弹出窗口的名称,如果id没有指定的话用name,否则用id
extraInfo:扩展参数,json格式如下: {"extraInfo":{"opaque":"true","bgColor":"#011","delayTime":"250"}}
参数还可以以对象的形式传参:
{
id:'',
url:'',
left:'',
top:'',
name:''
}
例如:
//根据指定的元素打开弹出框,并打开appcan.cn
appcan.window.popoverElement({
id:'container',
url:'http://appcan.cn',
top:'100',
left:100
});
//另外一种使用方式
var win = appcan.require('window');
win.popoverElement({
id:'container',
url:'http://appcan.cn',
top:'100',
left:100
});
appcan.window.resizePopoverByEle(id,left,top,name) //设置指定的弹出窗口恢复到指定窗口的大小,并设置弹出窗的位置
id:指定的元素,根据该元素设置弹出窗口的大小
left:弹出窗口距离左边界的距离
top:弹出窗口距离上边界的距离
name:要设置的弹出窗口的名称,如果id没有传值的话使用这个值
参数还可以以对象的形式传参:
{
id:'',
left:'',
top:'',
name:''
}
例如:
//重置demo窗口,位置
appcan.window.popoverElement({
id:'container',
left:100,
top:100
});
//另外一种使用方式
var win = appcan.require('window');
win.popoverElement({
id:'container',
left:100,
top:100
});
打开多页面浮动窗口,页面之间可滑动切换,设置是否支持滑动参照setMultilPopoverFlippingEnbaled
popName:打开新窗口的名称
content:要传入的数据,一个json对象,或者json字符串,
结构必须为'{"content":[{"inPageName":"p1","inUrl":"xxx1.html","inData":"", {"extraInfo":{"opaque":"true","bgColor":"#011"}}},{"inPageName":"p2","inUrl":"xxx2.html","inData":"", {"extraInfo":{"opaque":"true","bgColor":"#011"}}}]}' 其中:inPageName:所包含的单页面窗口的名字,inUrl:url类型数据,inData:窗口的内容的二进制数据,可为空,extraInfo:extraInfo参数,opaque:是否透明 true/false默认为false,bgColor:背景色,支持图片和颜色,格式为#fff、#ffffff、rgba(r,g,b,a)等,图片路径支持res://、wgt://等AppCan协议路径
dataType:窗口载入的数据的类型
0:url方式载入;
1:html内容 方式载入;//必如传入的是一个<div></div>
2:既有url方式,又有html内容方式
left:距离左边界的距离
top:距离上边界的距离
width:窗口的宽
height:窗口的高
change(err,data):当浮动窗口的当前显示的值发生改变是触发的回调.
err:如果出错这个就是一个错误对象,否则为空.
data:{"multiPopName":"name","multiPopSelectedIndex":"index"}
fontSize:字体的大小
flag:窗口类型
0: 普通窗口
1: OAuth 窗口
2: 加密页面窗口
4: 强制刷新
8: url用系统浏览器打开
16: view不透明
32: 隐藏的window
64: 等待popOver加载完毕后显示
128: 支持手势
256: 标记open的window上一个window不隐藏
512: 标记被open的浮动窗口用于打开webapp.此浮动窗口将不进行默认字体的设置,缩放比例的设置等,WebApp的排版适配交由系统处理。注意:此flag仅用于open浮动窗口。
indexSelected:默认显示的索引项,默认显示第一项
extraInfo:扩展参数,json格式如下: {"extraInfo":{"opaque":"true","bgColor":"#011","delayTime":"250"}}
例子:
实例代码,相似用法appcan.frame.open
var content = {
content:[
{
inPageName:"p1",
inUrl:"pop1.html",
inData:"",
extraInfo:{
opaque:false,
bgColor:"#00000000"
}
},
{
inPageName:"p2",
inUrl:"pop2.html",
inData:"",
extraInfo:{
opaque:true,
bgColor:"#ccc"
}
}
]
};
appcan.window.openMultiPopover({
popName:name,
content:content,
top:0,
left:0,
height:500,
width:500,
dataType:0,
indexSelected:1,
extraInfo:{
opaque:false,
bgColor:bg
}
});
参数还可以以对象的形式传参:
{
popName:'',
content:'',
dataType:'',
left:'',
top:'',
width:'',
height:'',
change:'',
fontSize:'',
flag:'',
indexSelected:''
}
例如:
//打开一个四个窗口的弹出框
appcan.window.openMultiPopover({
popName:'nav',
content:{
content:[{
inPageName:'p1',
inUrl:'http://www.appcan.cn',
inData:''
},{
inPageName:'p2',
inUrl:'http://www.appcan.cn',
inData:''
},{
inPageName:'p3',
inUrl:'http://www.appcan.cn',
inData:''
},{
inPageName:'p4',
inUrl:'http://www.appcan.cn',
inData:''
}]
},
height:500,
dataType:0,
indexSelected:2
});
//另外一种使用方式
var win = appcan.require('window');
win.openMultiPopover({
popName:'nav',
content:{
content:[{
inPageName:'p1',
inUrl:'http://www.appcan.cn',
inData:''
},{
inPageName:'p2',
inUrl:'http://www.appcan.cn',
inData:''
},{
inPageName:'p3',
inUrl:'http://www.appcan.cn',
inData:''
},{
inPageName:'p4',
inUrl:'http://www.appcan.cn',
inData:''
}]
},
height:500,
dataType:0,
indexSelected:2
});
appcan.window.closeMultiPopover(popName) //关闭多页面浮动窗口
popName:多页面窗口的名称
参数还可以以对象的形式传参:
{
popName:''
}
例如:
//关闭指定的多页面浮动窗口
appcan.window.closeMultiPopover('nav');
//另外一种使用方式
var win = appcan.require('window');
win.closeMultiPopover('nav');
appcan.window.selectMultiPopover(popName,index) //设置多页面浮动窗口跳转到的子页面窗口的索引
popName:要设置的多页面浮动窗口的名称
index:要设置的多页面浮动窗口页面的索引
参数还可以以对象的形式传参:
{
popName:'',
index:''
}
例如:
//选择第三个页面
appcan.window.selectMultiPopover('nav',2);
//另外一种使用方式
var win = appcan.require('window');
win.selectMultiPopover('nav',2);
appcan.window.subscribe(channelId,callback) //订阅一个频道
如果有消息发给该频道,则会执行响应的回调;如果是用超链接打开的页面收不到消息。
channelId:订阅的的频道Id
callback(msg):当有消息发来的时候执行的对调,msg是传来的消息
参数还可以以对象的形式传参:
{
channelId:'',
callback:''
}
例如:
//接收2通道的消息
appcan.window.subscribe('2',function(msg){});
//另外一种使用方式
var win = appcan.require('window');
win.subscribe('2',function(msg){});
appcan.window.publish(channelId,msg) //向指定通道发送消息
channelId:发送指定消息的通道
msg:要发送的消息内容
参数还可以以对象的形式传参:
{
channelId:'',
msg:''
}
例如:
//向2通道发送消息
appcan.window.publish('2','hello')
//另外一种使用方式
var win = appcan.require('window');
win.publish('2','hello')
appcan.window.sendPopoverToBack(name) //把指定的浮动窗口设置到最下层
name:要设置的浮动窗口名称
参数还可以以对象的形式传参:
{
name:''
}
例如:
//把a窗口放到最下成
appcan.window.sendPopoverToBack('a')
//另外一种使用方式
var win = appcan.require('window');
win.sendPopoverToBack('a')
appcan.window.setWindowFrame(dx,dy,duration,callback) //移动当前Window相对屏幕的位置
dx: 相对屏幕左边的距离
dy: 相对屏幕上边的距离
duration: 动画执行的时间
callback: 当前窗口位置移动完成的回调方法
参数还可以以对象的形式传参:
{
dx:'',
dy:'',
duration:'',
callback:function(){}
}
例如:
//把窗口向左移动100像素
appcan.window.setWindowFrame(100,0,300,function(){})
//另外一种使用方式
var win = appcan.require('window');
win.setWindowFrame(100,0,300,function(){})
appcan.window.stateChange(callback) //窗口前后台状态变化
callback(state)回调方法,
state:(Number)状态值 ,0:回到前台;1:压入后台
appcan.window.onResume //窗口回到前台时调用该方法(不推荐)
appcan.window.onPause //窗口回到后台时调用该方法(不推荐)
appcan.window.on('resume',callback) //窗口回到前台时执行回调函数
appcan.window.on('resume',callback)
窗口回到前台时执行回调函数
appcan.window.on('pause',callback) //窗口回到后台时执行回调函数
appcan.window.on('pause',callback)
窗口回到后台时执行回调函数
appcan.window.monitorKey(id,enable,callback) //捕获android实体键
参数:
id:要拦截的键值id,0-返回键,1-菜单键
enable:是否拦截,0-不拦截,1-拦截
callback(id):(Function)点击实体键时的回调函数
id:按键的值,0:返回键;1:菜单键
JS SDK版本支持:
1.0.0+
例子:
appcan.window.monitorKey({
id:"0",
enable:"1",
callback:function(id){
alert("点击的按键:"id);
}
});
appcan.window.actionSheet(title,cancelText,buttons,callback) //弹出一个可选的菜单列表
参数:
title: 菜单列表的标题
cancelText: 取消按钮上显示文字内容
buttons:(Array)显示在菜单列表上的文字集合
callback(err,data): 菜单列表关闭的回调
err:Error对象,如果没错则为空
data:选择的按钮的索引值
JS SDK版本支持:
1.0.0+
例子:
appcan.window.actionSheet("title","cancel",[1,2,3],function(err,data){
alert(data)
});
或者
appcan.window.actionSheet({
title:"title",
cancelText:"cancel",
buttons:[1,2,3],
callback:function(err,data){
if(!err)alert(data)
}
});
appcan.window.setSlidingWindow(leftSliding,rightSliding,animationId,bg) //设置侧滑窗口
参数:
leftSliding: 左侧滑窗口,如:{width:240,url:”uexWindow_left.html”}
rightSliding: 右侧滑窗口,如:{width:240,url:”uexWindow_right.html”}
animationId: 打开窗口动画类型
bg:侧滑窗口背景图片
JS SDK版本支持:
1.0.0+
例子:
appcan.window.setSlidingWindow({
leftSliding : {
width : 240,
url : "slidingWindow/uexWindow_left.html"
},
rightSliding : {
width : 240,
url : "slidingWindow/uexWindow_left1.html"
},
animationId : '1', //仿QQ侧滑
bg : 'res://1_1.jpg' //仿QQ侧滑;注:res目录为js文件夹同级目录wgtRes
});
appcan.window.toggleSlidingWindow(mark,reload) //打开或关闭侧滑窗口
注:打开侧滑窗口前,需先调用setSlidingWindow设置打开的侧滑窗口信息
参数:
mark :必选, 左右侧窗口标识,0:左侧,1:右侧
reload :可选, 是否重新加载页面 ,1:重新加载
JS SDK版本支持:
1.0.0+
例子:
appcan.window.toggleSlidingWindow({
mark:0,
reload:1
})
appcan.window.toggleSlidingWindow({
mark:1
})
appcan.window.setSlidingWindowEnabled(enable) //设置侧滑窗口是否可用
参数:
enable 侧滑窗口是否可用,0:不可用,1:可用
JS SDK版本支持:
1.0.0+
例子:
appcan.window.setSlidingWindowEnabled(1);
appcan.window.getSlidingWindowState(callback) //获取侧滑窗口显示情况
参数:
callback(data):回调函数
data:返回的显示情况,0:左侧菜单显示;1:主界面显示;2:右侧菜单显示
JS SDK版本支持:
1.0.0+
例子:
appcan.window.getSlidingWindowState(function(data){
alert(data);
});
appcan.window.getUrlQuery(callback) //获取加载页面时传入的参数
(注:目前只支持IOS)
参数:
callback(data):回调函数
data:传入的参数数据内容
JS SDK版本支持:
1.0.0+
例子:
appcan.window.getUrlQuery(function(data){
alert(data);
//如id=123,则为id=123
});
appcan.window.setStatusBarTitleColor(type) //设置状态条上字体的颜色
(注:只支持IOS系统)
参数:
type:状态条上字体的颜色,0为白色(iOS7以上为透明底,iOS7以下为黑底), 1为黑色(iOS7以上为透明底,iOS7以下为白底)
JS SDK版本支持:
1.0.0+
例子:
appcan.window.setStatusBarTitleColor(1);
appcan.window.getState(callback) //获取窗口是否处于前台
参数:
callback(data):回调函数
data:返回的状态值,0:前台;1:后台;
JS SDK版本支持:
1.0.0+
例子:
appcan.window.getState(function(data){
if(data == 0){
alert("当前窗口处于前台")
}else if(data ==1){
alert("当前窗口处于后台");
}
});
参数:
enable: 滚动条的显示和隐藏,0:隐藏,1:显示
JS SDK版本支持:
1.0.0+
例子:
//滚动时不显示滚动条
appcan.window.setWindowScrollbarVisible(0);
//滚动时显示滚动条
appcan.window.setWindowScrollbarVisible(1)
appcan.window.hiddenBounceView(type) //隐藏弹动效果
参数:
type: 隐藏的位置,0:顶端,1:底部
JS SDK版本支持:
1.0.0+
例子:
//顶端隐藏弹动效果
appcan.window.hiddenBounceView(0);
//底部隐藏弹动效果
appcan.window.hiddenBounceView(1)
appcan.window.showBounceView(type,color,flag) //显示弹动效果
参数:
type: 弹动的位置,0:顶端弹动;1:底部弹动
color: 弹动显示部位的颜色值,内容不超过一屏时底部弹动内容不显示
flag: 是否显示内容,1:显示;0:不显示
JS SDK版本支持:
1.0.0+
例子:
appcan.window.showBounceView({
type:0,
color:'#fff000',
flag:1
});
appcan.window.insertAbove(name) //将当前浮动窗口插入到指定浮动窗口之上
参数:
name: 指定的浮动窗口的名称
JS SDK版本支持:
1.0.0+
例子:
//主窗口打开两个浮动窗口
appcan.window.openPopover({
name:"pop1",
url:"popFrame1.html",
top:200,
left:0,
height:200
});
appcan.window.openPopover({
name:"pop2",
url:"popFrame2.html",
top:300,
left:0,
height:200
});
//此时按打开先后pop2在上面
//pop1内执行以下代码则pop1浮动窗口插入到pop2浮动窗口上面
appcan.window.insertAbove("pop2");
appcan.window.insertBelow(name) //将当前浮动窗口插入到指定浮动窗口之下
参数:
name: 指定的浮动窗口的名称
JS SDK版本支持:
1.0.0+
例子:
//主窗口打开两个浮动窗口
appcan.window.openPopover({
name:"pop1",
url:"popFrame1.html",
top:200,
left:0,
height:200
});
appcan.window.openPopover({
name:"pop2",
url:"popFrame2.html",
top:300,
left:0,
height:200
});
//此时按打开先后pop2在上面
//pop2内执行以下代码则pop2浮动窗口插入到pop1浮动窗口下面
appcan.window.insertBelow("pop1");
appcan.window.insertPopoverAbovePopover(nameA,nameB) //将指定浮动窗口插入到另一浮动窗口之上,只在主窗口中有效
参数:
nameA: 指定浮动窗口A的名称
nameB: 指定浮动窗口B的名称
JS SDK版本支持:
1.0.0+
例子:
//主窗口打开两个浮动窗口
appcan.window.openPopover({
name:"pop1",
url:"popFrame1.html",
top:200,
left:0,
height:200
});
appcan.window.openPopover({
name:"pop2",
url:"popFrame2.html",
top:300,
left:0,
height:200
});
//此时按打开先后pop2在上面
//pop1插入到pop2上面
appcan.window.insertPopoverAbovePopover("pop1","pop2");
或者
appcan.window.insertPopoverAbovePopover({
nameA:"pop1",
nameB:"pop2"
});
appcan.window.insertPopoverBelowPopover(nameA,nameB) //将指定浮动窗口插入到另一浮动窗口之下,只在主窗口中有效
参数:
nameA: 指定浮动窗口A的名称
nameB: 指定浮动窗口B的名称
JS SDK版本支持:
1.0.0+
例子:
//主窗口打开两个浮动窗口
appcan.window.openPopover({
name:"pop1",
url:"popFrame1.html",
top:200,
left:0,
height:200
});
appcan.window.openPopover({
name:"pop2",
url:"popFrame2.html",
top:300,
left:0,
height:200
});
//此时按打开先后pop2在上面
//pop1插入到pop2上面
appcan.window.insertPopoverBelowPopover("pop2","pop1");
或者
appcan.window.insertPopoverBelowPopover({
nameA:"pop2",
nameB:"pop1"
});
appcan.window.insertWindowAboveWindow(nameA,nameB) //将指定窗口A插入到另一窗口B之上
该接口仅对显示在屏幕上且不被隐藏的window起作用。(即open该window时,type传入的是256)
参数:
nameA: 指定窗口A的名称
nameB: 指定窗口B的名称
JS SDK版本支持:
1.0.0+
例子:
appcan.window.insertWindowAboveWindow("window1","window2");
或者
appcan.window.insertWindowAboveWindow({
nameA:"window1",
nameB:"window2"
});
appcan.window.insertWindowBelowWindow(nameA,nameB) //将指定窗口A插入到另一窗口B之下
该接口仅对显示在屏幕上且不被隐藏的window起作用。(即open该window时,type传入的是256)
参数:
nameA: 指定窗口A的名称
nameB: 指定窗口B的名称
JS SDK版本支持:
1.0.0+
例子:
//window1插入到window2下面
appcan.window.insertWindowBelowWindow("window1","window2");
//或者
appcan.window.insertWindowBelowWindow({
nameA:"window1",
nameB:"window2"
});
appcan.window.onPopoverLoadFinishInRootWnd(callback) //浮动窗口加载完成的监听方法
参数:
callback(name,url):监听的回调函数
name:浮动窗口的名称
url:浮动窗口的url;当浮动窗口加载的是本地网页时,url返回网页的绝对路径(file:// 开头)当浮动窗口加载的是网络上的网页时,url返回网址(http:// 开头)
JS SDK版本支持:
1.0.0+
例子:
appcan.window.onPopoverLoadFinishInRootWnd(function(name,url){
if(name="pop1"){
alert("浮动窗口pop1加载完成!");
}
});
appcan.window.preOpenStart() //开始浮动窗口的预加载
说明:
popOver的预加载必须要与appcan.window.open中的type=64配合:即open时有此type方可对应使用预加载。开始popOver(浮动窗口)的预加载。即一个窗口中需要有多个浮动窗口,可以让这些浮动窗口预先加载出来。
其执行过程:A窗口打开B窗口,B窗口中需要预加载多个浮动窗口。那么A窗口中执行appcan.window.open时,其type参数需要为64配合使用,即open时有此type,B窗口方可使用预加载。此时在B窗口中,会等所有预加载的浮动窗口都加载完毕(不包括异步获取网络数据),方才显示B窗口。预加载的浮动窗口的开启函数,即appcan.window.openPopover,需要放置于appcan.window.preOpenStart和appcan.window.preOpenFinish之间。
参数:
无
JS SDK版本支持:
1.0.0+
例子:
//A窗口打开B窗口代码需要type为64
appcan.window.open("preOpen","preOpen.html",10,64);
或者
appcan.window.open({
name:"preOpen",
data:"preOpen.html",
type:64//此为必须
});
//B窗口即preOpen.html
appcan.ready(function() {
appcan.window.preOpenStart();
appcan.window.openPopover({
name:"content1",
url:"list/lv_thickline_multi_content.html",
top:200,
left:0,
height:200
});
appcan.window.openPopover({
name:"content2",
url:"http://wap.3g2win.com",
top:50,
left:0,
height:200
});
appcan.window.openPopover({
name:"content3",
url:"list/lv_thickline_icon_sub_angle_content.html",
top:400,
left:0,
height:200
});
appcan.window.preOpenFinish();
});
appcan.window.preOpenFinish() //结束浮动窗口的预加载
参数:
无
JS SDK版本支持:
1.0.0+
例子:
appcan.window.preOpenFinish();
appcan.window.windowForward(animId,animDuration) //在多窗口机制中,前进到下一个window
(前提是有打开的window窗口)
参数:
animId:动画类型Id
0: 无动画
1: 从左向右推入
2: 从右向左推入
3: 从上向下推入
4: 从下向上推入
5: 淡入淡出
6: 左翻页
7: 右翻页
8: 水波纹
9: 由左向右切入
10: 由右向左切入
11: 由上先下切入
12: 由下向上切入
13: 由左向右切出
14: 由右向左切出
15: 由上向下切出
16: 由下向上切出
animDuration:动画持续时长,单位为毫秒,默认为260毫秒
JS SDK版本支持:
1.0.0+
例子:
appcan.window.windowForward(0,200);
appcan.window.windowBack(animId,animDuration) //在多窗口机制中,用于返回上一个window
比如在Awindow中uexWindow.open了Bwindow,那么在Bwindow中返回Awindow就可使用此方法。
参数:
animId:动画类型Id
0: 无动画
1: 从左向右推入
2: 从右向左推入
3: 从上向下推入
4: 从下向上推入
5: 淡入淡出
6: 左翻页
7: 右翻页
8: 水波纹
9: 由左向右切入
10: 由右向左切入
11: 由上先下切入
12: 由下向上切入
13: 由左向右切出
14: 由右向左切出
15: 由上向下切出
16: 由下向上切出
animDuration:动画持续时长,单位为毫秒,默认250毫秒
JS SDK版本支持:
1.0.0+
例子:
appcan.window.windowBack(0,200);