下载文档

窗口模块Window
更新时间:2016-05-05

appcan是多窗口的,该模块封装了关于窗口的基础操作

appcan.window.open(name,data,aniId,type,dataType,width,height,animDuration,extraInfo)

打开一个新的窗口

  1. name:新窗口的的名称,如果窗口存在直接打开,如果不存在先创建然后打开
  2. data:新窗口填充的数据
  3. dataType:新窗口填充的数据类型
  4. 0: url
  5. 1: html 数据//必如传入的是一个<div></div>
  6. 2: html url 混合数据
  7. aniId:动画类型Id
  8. 0: 无动画
  9. 1: 从左向右推入
  10. 2: 从右向左推入
  11. 3: 从上向下推入
  12. 4: 从下向上推入
  13. 5: 淡入淡出
  14. 6: 左翻页
  15. 7: 右翻页
  16. 8: 水波纹
  17. 9: 由左向右切入
  18. 10: 由右向左切入
  19. 11: 由上先下切入
  20. 12: 由下向上切入
  21. 13: 由左向右切出
  22. 14: 由右向左切出
  23. 15: 由上向下切出
  24. 16: 由下向上切出
  25. type:窗口类型
  26. 0: 普通窗口
  27. 1: OAuth 窗口
  28. 2: 加密页面窗口
  29. 4: 强制刷新
  30. 16: view不透明
  31. 32: 隐藏的window
  32. 64: 等待popOver加载完毕后显示
  33. 128: 支持手势
  34. 256: 标记openwindow上一个window不隐藏
  35. 512: 标记open的浮动窗口用友打开wabapp
  36. width:要打开的窗口宽度,请传0
  37. height:要打开的窗口高度,请传0
  38. animDuration:动画执行时间
  39. extraInfo:扩展参数,设置值时,animDuration参数必传

例子:

  1. appcan.window.open({
  2. name:name,
  3. dataType:0,
  4. aniId:2,
  5. data:name + ".html",
  6. extraInfo:{
  7. opaque:true,
  8. bgColor:bg
  9. }
  10. });

参数还可以以对象的形式传参:

  1. {
  2. name:"",
  3. data:"",
  4. dataType:"",
  5. aniId:"",
  6. type:"",
  7. width:"",
  8. height:"",
  9. animDuration:""
  10. }

例如:

  1. //打开一个新demo窗口,并加载appcan.cn页面
  2. appcan.window.open({
  3. name:'demo',
  4. dataType:0,
  5. data:'http://appcan.cn'
  6. });
  7. //另外一种使用方式
  8. var win = appcan.require('window');
  9. win.open({
  10. name:'demo',
  11. dataType:0,
  12. data:'http://appcan.cn'
  13. });

appcan.window.close(aniId,animDuration)

关闭当前窗口

  1. aniId:动画类型Id
  2. 0:无动画
  3. 1: 从左向右推入
  4. 2: 从右向左推入
  5. 3: 从上向下推入
  6. 4: 从下向上推入
  7. 5: 淡入淡出
  8. 6: 左翻页
  9. 7: 右翻页
  10. 8: 水波纹
  11. 9: 由左向右切入
  12. 10: 由右向左切入
  13. 11: 由上先下切入
  14. 12: 由下向上切入
  15. 13: 由左向右切出
  16. 14: 由右向左切出
  17. 15: 由上向下切出
  18. 16: 由下向上切出
  19. animDuration:动画持续时间

参数还可以以对象的形式传参:

  1. {
  2. aniId:"",
  3. animDuration:""
  4. }

例如:

  1. //关闭当前窗口
  2. appcan.window.close({
  3. aniId:17,
  4. animDuration:1000
  5. });
  6. //另外一种使用方式
  7. var win = appcan.require('window');
  8. win.close({
  9. aniId:17,
  10. animDuration:1000
  11. });

appcan.window.evaluateScript(name,scriptContent,type)

在指定的窗口脚本执行

  1. name:要执行脚本的窗口名称
  2. scriptContent:要执行的脚本
  3. type:窗口类型

参数还可以以对象的形式传参:

  1. {
  2. name:'',
  3. scriptContent:'',
  4. type:''
  5. }

例子:

  1. //在demo窗口执行脚本
  2. appcan.window.evaluateScript({
  3. name:'demo',
  4. scriptContent:'alert("hello world")'
  5. });
  6. //另一种使用方式
  7. var win = appcan.require('window');
  8. win.evaluateScript({
  9. name:'demo',
  10. scriptContent:'alert("hello world")'
  11. });

appcan.window.evaluatePopoverScript(name,popName,scriptContent)

在指定的弹出窗内执行相应的脚本

  1. name:要执行脚本的窗口名称
  2. popName:要执行的弹出窗口的名称
  3. scriptContent:要执行的脚本内容

参数还可以以对象的形式传参:

  1. {
  2. name:'',
  3. popName:'',
  4. scriptContent:''
  5. }

例子:

  1. //在demo窗口的弹出窗口执行脚本
  2. appcan.window.evaluatePopoverScript({
  3. name:'demo',
  4. popName:'demoPop',
  5. scriptContent:'alert("hello world")'
  6. });
  7. //另一种使用方式
  8. var win = appcan.require('window');
  9. win.evaluatePopoverScript({
  10. name:'demo',
  11. popName:'demoPop',
  12. scriptContent:'alert("hello world")'
  13. });

appcan.window.setBounce(bounceType,startPullCall,downEndCall,upEndCall,color,imgSettings)

设置上下弹动效果

  1. bounceType:弹动的类型,如果为多个请用数组
  2. 0: 是向下拖动
  3. 1: 是向上拖动
  4. startPullCall:开始滑动时触发回调
  5. downEndCall:上拉或者下拉超过边界执行回调
  6. upEndCall:上拉或者下拉,超过边界之后,恢复最初状态执行回调
  7. color:如果超过了该边界显示的背景颜色
  8. imgSettings:如果超过了该边界,并且想要设置显示的内容包括图片文字则设置该参数

关于imgSettings的设定的实例:

  1. {
  2. "imagePath":"res://reload.png",
  3. "textColor":"#530606",
  4. "pullToReloadText":"拖动刷新",
  5. "releaseToReloadText":"释放刷新",
  6. "loadingText":"加载中,请稍等"
  7. }

参数还可以以对象的形式传参:

  1. {
  2. bounceType:'',
  3. startPullCall:function(){
  4. //do somethings
  5. },
  6. downEndCall:function(){
  7. //do somethings
  8. },
  9. upEndCall:function(){
  10. //do somethings
  11. },
  12. color:'',
  13. imgSettings:{}
  14. }

例如:

  1. //给页面添加一个简单的弹动效果
  2. appcan.window.setBounce({
  3. bounceType:'1',
  4. color:'#F00',
  5. upEndCall:function(type){
  6. }
  7. });
  8. //另一种使用方式
  9. var win = appcan.require('window');
  10. win.setBounce({
  11. bounceType:'1',
  12. color:'#F00',
  13. upEndCall:function(type){
  14. }
  15. });

appcan.window.enableBounce()

开启页面弹动效果,如果调用该方法,则该webView具有弹动效果
例如:

  1. //开启页面弹动效果
  2. appcan.window.enableBounce()
  3. //另一种使用方式
  4. var win = appcan.require('window');
  5. win.enableBounce()

appcan.window.disableBounce()

禁用页面弹动效果,如果调用该方法,则该webView不具有弹动效果
例如:

  1. //禁用页面弹动效果
  2. appcan.window.disableBounce();//禁用页面弹动效果
  3. //另一种使用方式
  4. var win = appcan.require('window');
  5. win.disableBounce();

appcan.window.setBounceType(type,color,flag,callback)

设置页面弹动类型,前提是开启webView的弹动设置,如果没有开启调用了该方法则会默认开启页面弹动效果

  1. type:页面的弹动类型
  2. 0: 无任何效果
  3. 1: 颜色弹动效果
  4. 2: 设置图片弹动
  5. color:设置弹动结果的背景颜色
  6. flag:是否显示内容,1:显示内容,0:不显示内容
  7. callback(status,type):当设置成功后,如果滑动超过了弹动的边界,则会触发该回调,status: type=0时,值0为向下拉,1为超越边界,2为向上返回到最初状态;当type=1时,0为向上拉,1为超越边界,2为向下返回到最初状态。 type跟传入的参数type一致

参数还可以以对象的形式传参:

  1. {
  2. type:'',
  3. callback:function(status,type){
  4. //do somethings
  5. },
  6. flag:'',
  7. color:''
  8. }

例如:

  1. //设置上边弹动
  2. appcan.window.setBounceType({
  3. type:1,
  4. flag:1,
  5. color:'#F00',
  6. callback:function(status,type){
  7. if(stats == 1){
  8. //超过边界了
  9. }
  10. }
  11. });
  12. //另外一种使用方式
  13. var win = appcan.require('window');
  14. win.setBounceType({
  15. type:1,
  16. flag:1,
  17. color:'#F00',
  18. callback:function(status,type){
  19. if(stats == 1){
  20. //超过边界了
  21. }
  22. }
  23. });

appcan.window.setBounceParams(position,data)

设置对应弹动显示的内容

  1. position:页面的弹动位置
  2. 0: 顶端
  3. 1: 底部
  4. data:超过页面边界显示的内容

关于data设置的实例:

  1. {
  2. "imagePath":"res://reload.png",
  3. "textColor":"#530606",
  4. "pullToReloadText":"拖动刷新",
  5. "releaseToReloadText":"释放刷新",
  6. "loadingText":"加载中,请稍等"
  7. }

参数还可以以对象的形式传参:

  1. {
  2. position:'',
  3. data:{}
  4. }

例如:

  1. //设置参数
  2. appcan.window.setBounceParams({
  3. position:2,
  4. data:{
  5. "imagePath":"res://reload.png",
  6. "textColor":"#530606",
  7. "pullToReloadText":"拖动刷新",
  8. "releaseToReloadText":"释放刷新",
  9. "loadingText":"加载中,请稍等"
  10. }
  11. });
  12. //另外一种使用方式
  13. var win = appcan.require('window');
  14. win.setBounceParams({
  15. position:2,
  16. data:{
  17. "imagePath":"res://reload.png",
  18. "textColor":"#530606",
  19. "pullToReloadText":"拖动刷新",
  20. "releaseToReloadText":"释放刷新",
  21. "loadingText":"加载中,请稍等"
  22. }
  23. });

appcan.window.resetBounceView(position)

恢复默认弹动

  1. position:页面的弹动位置
  2. 0: 顶端
  3. 1: 底部

参数还可以以对象的形式传参:

  1. {
  2. position:''
  3. }

例如:

  1. //重置顶部效果
  2. appcan.window.resetBounceView(0)
  3. //另外一种使用方式
  4. var win = appcan.require('window');
  5. win.resetBounceView(0)

appcan.window.openToast(msg,duration,position,type)

打开一个toast弹出窗口

  1. msg:toast要显示的内容
  2. duration:toast显示的时间
  3. position:toast显示在屏幕中的位置
  4. 1: left_top 左上
  5. 2: top 上中
  6. 3: right_top 右上
  7. 4: left 左中
  8. 5: middle 中间
  9. 6: right 右中
  10. 7: bottom_left 下左
  11. 8: bottom 下中
  12. 9: right_bottom 右下
  13. type:toast的类型
  14. 0: 没有进度条
  15. 1: 有进度条

参数还可以以对象的形式传参:

  1. {
  2. msg:'',
  3. duration:'',
  4. position:'',
  5. type:''
  6. }

例如:

  1. //打开一个没有弹出框的toast
  2. appcan.window.openToast({
  3. msg:'toast',
  4. duration:1000,
  5. position:9,
  6. type:0
  7. });
  8. //另外一种使用方式
  9. var win = appcan.require('window');
  10. win.openToast({
  11. msg:'toast',
  12. duration:1000,
  13. position:9,
  14. type:0
  15. });

appcan.window.closeToast()

关闭现在显示的toast
例如:

  1. //关闭当前页面的toast
  2. appcan.window.closeToast();
  3. //另外一种使用方式
  4. var win = appcan.requrie('window');
  5. win.closeToast();

appcan.window.moveAnim(left,top,callback,duration)

以动画的形式,移动弹出窗口

  1. left:距离左边的位置
  2. top:距离上边的位置
  3. callback:动画移动完成后的回调函数
  4. duration:动画持续的时间

参数还可以以对象的形式传参:

  1. {
  2. left:'',
  3. top:'',
  4. callback:function(){
  5. //do somethings
  6. },
  7. duration:''
  8. }

例如:

  1. //把弹出窗口移动到指定的位置
  2. appcan.window.moveAnim({
  3. left:10
  4. top:10,
  5. callback:functin(){
  6. //动画完成
  7. }
  8. });
  9. //另外一种使用方式
  10. var win = appcan.require('window');
  11. win.moveAnim({
  12. left:10
  13. top:10,
  14. callback:functin(){
  15. //动画完成
  16. }
  17. });

appcan.window.openPopover(name,dataType,url,data,left,top,width,height,fontSize,type,bottomMargin,extraInfo)

打开一个浮动窗口/弹出框,如果不存在则会先创建然后再打开,如果存在则直接打开

  1. name:要打开弹出窗的名称
  2. dataType:新窗口填充的数据类型
  3. 0: url
  4. 1: html 数据//必如传入的是一个<div></div>
  5. 2: html url 混合数据
  6. url:弹出框要加载的页面的地址
  7. data:弹出框要加载的数据内容
  8. left:弹出框距离左边的距离
  9. top:弹出框距离上边的距离
  10. width:弹出框的宽度
  11. height:弹出框的高度
  12. fontSize:页面基础的字体大小
  13. type:窗口类型
  14. 0: 普通窗口
  15. 1: OAuth 窗口
  16. 2: 加密页面窗口
  17. 4: 强制刷新
  18. 16: view不透明
  19. 32: 隐藏的window
  20. 64: 等待popOver加载完毕后显示
  21. 128: 支持手势
  22. 256: 标记openwindow上一个window不隐藏
  23. 512: 标记open的浮动窗口用友打开wabapp
  24. bottomMargin:浮动窗口相对父窗口底部的距离。为空或0时,默认为0。当值不等于0时,height参数无效
  25. extraInfo:扩展参数,设置值时,bottomMargin参数必传

例子:

  1. appcan.window.openPopover({
  2. name:'demo',
  3. dataType:0,
  4. url:name + ".html",
  5. top:100,
  6. left:100,
  7. width:1400,
  8. height:2100,
  9. extraInfo:{
  10. opaque:true,
  11. bgColor:bg
  12. }
  13. });

参数还可以以对象的形式传参:

  1. {
  2. name:'',
  3. dataType:'',
  4. url:'',
  5. data:'',
  6. left:'',
  7. top:'',
  8. width:'',
  9. height:'',
  10. fontSize:'',
  11. type:''
  12. bottomMargin:''
  13. }

例如:

  1. //弹出一个简单的demo窗口,并打开appcan.cn
  2. appcan.window.openPopover({
  3. name:'demo',
  4. dataType:0,
  5. url:'http://appcan.cn',
  6. top:100,
  7. left:100,
  8. width:100,
  9. height:100,
  10. });
  11. //另外一种使用方式
  12. var win = appcan.require('window');
  13. win.openPopover({
  14. name:'demo',
  15. dataType:0,
  16. url:'http://appcan.cn',
  17. top:100,
  18. left:100,
  19. width:100,
  20. height:100,
  21. });

appcan.window.closePopover(name)

关闭指定的弹出窗口

  1. name:弹出窗口的名字

参数还可以以对象的形式传参:

  1. {
  2. name:''
  3. }

例如:

  1. //关闭demo弹出窗口
  2. appcan.window.closePopover('demo');
  3. //另外一种使用方式
  4. var win = appcan.require('win');
  5. win.closePopover('demo');

appcan.window.resizePopover(name,left,top,width,height)

重置指定弹出窗口的大小、位置

  1. name:要重置的弹出窗口的名称
  2. left:要重置弹出窗口距离左边的距离
  3. top:要重置的弹出窗口距离上边的距离
  4. width:要重置的弹出窗口的宽度
  5. height:要充值弹出窗口的高度

参数还可以以对象的形式传参:

  1. {
  2. name:'',
  3. left:'',
  4. top:'',
  5. width:'',
  6. height:''
  7. }

例如:

  1. //修改demo弹出框的位置
  2. appcan.window.resizePopover({
  3. name:'demo',
  4. left:100,
  5. top:100,
  6. width:102,
  7. height:102
  8. })
  9. //另外一种使用方式
  10. var win = appcan.require('window');
  11. win.resizePopover({
  12. name:'demo',
  13. left:100,
  14. top:100,
  15. width:102,
  16. height:102
  17. })

appcan.window.alert(title,content,buttons,callback)

弹出一个确认弹出窗口,如果只有一个按钮弹出是警告框,如果是一个以上的按钮弹出的是提示框

  1. title:弹出框的标题
  2. content:弹出框的内容
  3. buttons:弹出框的按钮列表最多是三个
  4. callback(err,data,dataType,optId):当点击了其中一个按钮后的回调,如果只有一个确定按钮则不执行回调函数 第一个参数是Error对象如果为空则表示没有错误,否则表示操作出错了,data表示返回的操作结果,dataType操作结果的数据类型,optId该操作id

参数还可以以对象的形式传参:

  1. //{
  2. title:'',
  3. content:'',
  4. buttons:[],
  5. callback:function(err,data,dataType,optId){
  6. //do somethings
  7. }
  8. }

例如:

  1. //打开一个提示框
  2. appcan.window.alert({
  3. title:'提示',
  4. content:'小提示',
  5. buttons:'确定'
  6. });
  7. //另外一种使用方式
  8. var win = appcan.require('window');
  9. win.alert({
  10. title:'提示',
  11. content:'小提示',
  12. buttons:'确定'
  13. });

appcan.window.confirm(title,content,buttons,callback)

弹出一个提示框

  1. title:弹出框的标题
  2. content:弹出框的内容
  3. buttons:弹出框的按钮列表最多是三个
  4. callback(err,data,dataType,optId):当点击了其中一个按钮后的回调, 第一个参数是Error对象如果为空则表示没有错误,否则表示操作出错了,data表示返回的操作结果,dataType操作结果的数据类型,optId该操作id

参数还可以以对象的形式传参:

  1. {
  2. title:'',
  3. content:'',
  4. buttons:[],
  5. callback:function(err,data,dataType,optId){
  6. //do somethings
  7. }
  8. }

例如:

  1. //打开一个确认框
  2. appcan.window.confirm({
  3. title:'提示',
  4. content:'小提示',
  5. buttons:['确定','取消'],
  6. callback:function(err,data,dataType,optId){
  7. if(err){
  8. //如果出错了
  9. return;
  10. }
  11. //data 按照按钮的索引返回值
  12. }
  13. });
  14. //另外一种使用方式
  15. var win = appcan.require('window');
  16. win.confirm({
  17. title:'提示',
  18. content:'小提示',
  19. buttons:['确定','取消'],
  20. callback:function(err,data,dataType,optId){
  21. if(err){
  22. //如果出错了
  23. return;
  24. }
  25. //data 按照按钮的索引返回值
  26. }
  27. });

appcan.window.prompt(title,content,defaultValue,buttons,callback)

弹出一个可以输入内容的提示框

  1. title:提示框的标题
  2. content:提示框中显示的内容
  3. defaultValue:(String类型) 必选 输入框默认文字
  4. buttons:提示框显示的按钮,多个按钮可以为数组形式
  5. callback(err,data,dataType,optId):当点击了其中一个按钮后的回调, 第一个参数是Error对象如果为空则表示没有错误,否则表示操作出错了,data表示返回的操作结果{num:'按钮的索引值',value:'输入框的值'},dataType操作结果的数据类型,optId该操作id

参数还可以以对象的形式传参:

  1. {
  2. title:'',
  3. content:'',
  4. defaultValue:'',
  5. buttons:'',
  6. callback:function(){}
  7. }
  8. `

appcan.window.bringPopoverToFront(name)

把指定的弹出窗口设置为最上层

  1. name:要设置的弹出层的名称

参数还可以以对象的形式传参:

  1. {
  2. name:''
  3. }

例如:

  1. //把demo窗口显示到所有窗口最上面
  2. appcan.window.bringPopoverToFront('demo');
  3. //另外一种使用方式
  4. var win = appcan.require('window');
  5. win.bringPopoverToFront('demo');

appcan.window.popoverElement(id,url,left,top,name,extraInfo)

根据给定元素的样式弹出样式相似的弹出窗口

  1. id:指定元素的Id
  2. url:要加载到弹出窗口中的地址
  3. left:距离左边界的距离
  4. top:距离上边界的距离
  5. name:弹出窗口的名称,如果id没有指定的话用name,否则用id
  6. extraInfo:扩展参数,json格式如下: {"extraInfo":{"opaque":"true","bgColor":"#011","delayTime":"250"}}

参数还可以以对象的形式传参:

  1. {
  2. id:'',
  3. url:'',
  4. left:'',
  5. top:'',
  6. name:''
  7. }

例如:

  1. //根据指定的元素打开弹出框,并打开appcan.cn
  2. appcan.window.popoverElement({
  3. id:'container',
  4. url:'http://appcan.cn',
  5. top:'100',
  6. left:100
  7. });
  8. //另外一种使用方式
  9. var win = appcan.require('window');
  10. win.popoverElement({
  11. id:'container',
  12. url:'http://appcan.cn',
  13. top:'100',
  14. left:100
  15. });

appcan.window.resizePopoverByEle(id,left,top,name)

设置指定的弹出窗口恢复到指定窗口的大小,并设置弹出窗的位置

  1. id:指定的元素,根据该元素设置弹出窗口的大小
  2. left:弹出窗口距离左边界的距离
  3. top:弹出窗口距离上边界的距离
  4. name:要设置的弹出窗口的名称,如果id没有传值的话使用这个值

参数还可以以对象的形式传参:

  1. {
  2. id:'',
  3. left:'',
  4. top:'',
  5. name:''
  6. }

例如:

  1. //重置demo窗口,位置
  2. appcan.window.popoverElement({
  3. id:'container',
  4. left:100,
  5. top:100
  6. });
  7. //另外一种使用方式
  8. var win = appcan.require('window');
  9. win.popoverElement({
  10. id:'container',
  11. left:100,
  12. top:100
  13. });

appcan.window.openMultiPopover(popName,content,dataType, left, top, width, height,change, fontSize, flag, indexSelected,extraInfo)

打开多页面浮动窗口,页面之间可滑动切换,设置是否支持滑动参照setMultilPopoverFlippingEnbaled

  1. popName:打开新窗口的名称
  2. content:要传入的数据,一个json对象,或者json字符串,
  3. 结构必须为'{"content":[{"inPageName":"p1","inUrl":"xxx1.html","inData":"", {"extraInfo":{"opaque":"true","bgColor":"#011"}}},{"inPageName":"p2","inUrl":"xxx2.html","inData":"", {"extraInfo":{"opaque":"true","bgColor":"#011"}}}]}' 其中:inPageName:所包含的单页面窗口的名字,inUrlurl类型数据,inData:窗口的内容的二进制数据,可为空,extraInfo:extraInfo参数,opaque:是否透明 true/false默认为false,bgColor:背景色,支持图片和颜色,格式为#fff、#ffffffrgba(r,g,b,a)等,图片路径支持res://、wgt://等AppCan协议路径
  4. dataType:窗口载入的数据的类型
  5. 0url方式载入;
  6. 1html内容 方式载入;//必如传入的是一个<div></div>
  7. 2:既有url方式,又有html内容方式
  8. left:距离左边界的距离
  9. top:距离上边界的距离
  10. width:窗口的宽
  11. height:窗口的高
  12. change(err,data):当浮动窗口的当前显示的值发生改变是触发的回调.
  13. err:如果出错这个就是一个错误对象,否则为空.
  14. data:{"multiPopName":"name","multiPopSelectedIndex":"index"}
  15. fontSize:字体的大小
  16. flag:窗口类型
  17. 0: 普通窗口
  18. 1: OAuth 窗口
  19. 2: 加密页面窗口
  20. 4: 强制刷新
  21. 8: url用系统浏览器打开
  22. 16: view不透明
  23. 32: 隐藏的window
  24. 64: 等待popOver加载完毕后显示
  25. 128: 支持手势
  26. 256: 标记openwindow上一个window不隐藏
  27. 512: 标记open的浮动窗口用于打开wabapp
  28. indexSelected:默认显示的索引项,默认显示第一项
  29. extraInfo:扩展参数,json格式如下: {"extraInfo":{"opaque":"true","bgColor":"#011","delayTime":"250"}}

例子:
实例代码,相似用法appcan.frame.open

  1. var content = {
  2. content:[
  3. {
  4. inPageName:"p1",
  5. inUrl:"pop1.html",
  6. inData:"",
  7. extraInfo:{
  8. opaque:false,
  9. bgColor:"#00000000"
  10. }
  11. },
  12. {
  13. inPageName:"p2",
  14. inUrl:"pop2.html",
  15. inData:"",
  16. extraInfo:{
  17. opaque:true,
  18. bgColor:"#ccc"
  19. }
  20. }
  21. ]
  22. };
  23. appcan.window.openMultiPopover({
  24. popName:name,
  25. content:content,
  26. top:0,
  27. left:0,
  28. height:500,
  29. width:500,
  30. dataType:0,
  31. indexSelected:1,
  32. extraInfo:{
  33. opaque:false,
  34. bgColor:bg
  35. }
  36. });

参数还可以以对象的形式传参:

  1. {
  2. popName:'',
  3. content:'',
  4. dataType:'',
  5. left:'',
  6. top:'',
  7. width:'',
  8. height:'',
  9. change:'',
  10. fontSize:'',
  11. flag:'',
  12. indexSelected:''
  13. }

例如:

  1. //打开一个四个窗口的弹出框
  2. appcan.window.openMultiPopover({
  3. popName:'nav',
  4. content:{
  5. content:[{
  6. inPageName:'p1',
  7. inUrl:'http://www.appcan.cn',
  8. inData:''
  9. },{
  10. inPageName:'p2',
  11. inUrl:'http://www.appcan.cn',
  12. inData:''
  13. },{
  14. inPageName:'p3',
  15. inUrl:'http://www.appcan.cn',
  16. inData:''
  17. },{
  18. inPageName:'p4',
  19. inUrl:'http://www.appcan.cn',
  20. inData:''
  21. }]
  22. },
  23. height:500,
  24. dataType:0,
  25. indexSelected:2
  26. });
  27. //另外一种使用方式
  28. var win = appcan.require('window');
  29. win.openMultiPopover({
  30. popName:'nav',
  31. content:{
  32. content:[{
  33. inPageName:'p1',
  34. inUrl:'http://www.appcan.cn',
  35. inData:''
  36. },{
  37. inPageName:'p2',
  38. inUrl:'http://www.appcan.cn',
  39. inData:''
  40. },{
  41. inPageName:'p3',
  42. inUrl:'http://www.appcan.cn',
  43. inData:''
  44. },{
  45. inPageName:'p4',
  46. inUrl:'http://www.appcan.cn',
  47. inData:''
  48. }]
  49. },
  50. height:500,
  51. dataType:0,
  52. indexSelected:2
  53. });

appcan.window.closeMultiPopover(popName)

关闭多页面浮动窗口

  1. popName:多页面窗口的名称

参数还可以以对象的形式传参:

  1. {
  2. popName:''
  3. }

例如:

  1. //关闭指定的多页面浮动窗口
  2. appcan.window.closeMultiPopover('nav');
  3. //另外一种使用方式
  4. var win = appcan.require('window');
  5. win.closeMultiPopover('nav');

appcan.window.selectMultiPopover(popName,index)

设置多页面浮动窗口跳转到的子页面窗口的索引

  1. popName:要设置的多页面浮动窗口的名称
  2. index:要设置的多页面浮动窗口页面的索引

参数还可以以对象的形式传参:

  1. {
  2. popName:'',
  3. index:''
  4. }

例如:

  1. //选择第三个页面
  2. appcan.window.selectMultiPopover('nav',2);
  3. //另外一种使用方式
  4. var win = appcan.require('window');
  5. win.selectMultiPopover('nav',2);

appcan.window.subscribe(channelId,callback)

订阅一个频道,如果有消息发给该频道,则会执行响应的回调
如果是用超链接打开的页面收不到消息

  1. channelId:订阅的的频道Id
  2. callback(msg):当有消息发来的时候执行的对调,msg是传来的消息

参数还可以以对象的形式传参:

  1. {
  2. channelId:'',
  3. callback:''
  4. }

例如:

  1. //接收2通道的消息
  2. appcan.window.subscribe('2',function(msg){});
  3. //另外一种使用方式
  4. var win = appcan.require('window');
  5. win.subscribe('2',function(msg){});

appcan.window.publish(channelId,msg)

向指定通道发送消息

  1. channelId:发送指定消息的通道
  2. msg:要发送的消息内容

参数还可以以对象的形式传参:

  1. {
  2. channelId:'',
  3. msg:''
  4. }

例如:

  1. //向2通道发送消息
  2. appcan.window.publish('2','hello')
  3. //另外一种使用方式
  4. var win = appcan.require('window');
  5. win.publish('2','hello')

appcan.window.sendPopoverToBack(name)

把指定的浮动窗口设置到最下层

  1. name:要设置的浮动窗口名称

参数还可以以对象的形式传参:

  1. {
  2. name:''
  3. }

例如:

  1. //把a窗口放到最下成
  2. appcan.window.sendPopoverToBack('a')
  3. //另外一种使用方式
  4. var win = appcan.require('window');
  5. win.sendPopoverToBack('a')

appcan.window.setWindowFrame(dx,dy,duration,callback)

移动当前Window相对屏幕的位置

  1. dx: 相对屏幕左边的距离
  2. dy: 相对屏幕上边的距离
  3. duration: 动画执行的时间
  4. callback: 当前窗口位置移动完成的回调方法

参数还可以以对象的形式传参:

  1. {
  2. dx:'',
  3. dy:'',
  4. duration:'',
  5. callback:function(){}
  6. }

例如:

  1. //把窗口向左移动100像素
  2. appcan.window.setWindowFrame(100,0,300,function(){})
  3. //另外一种使用方式
  4. var win = appcan.require('window');
  5. win.setWindowFrame(100,0,300,function(){})

appcan.window.stateChange(callback)

  1. 窗口前后台状态变化,
  2. callback(state)回调方法,
  3. state:(Number)状态值 0:回到前台;1:压入后台

appcan.window.onResume

窗口回到前台时调用该方法(不推荐)

appcan.window.onPause

窗口回到后台时调用该方法(不推荐)

appcan.window.on(‘resume’,callback)

  1. appcan.window.on('resume',callback)

窗口回到前台时执行回调函数

appcan.window.on(‘pause’,callback)

  1. appcan.window.on('pause',callback)

窗口回到后台时执行回调函数

appcan.window.monitorKey(id,enable,callback)

捕获android实体键

参数:

  1. id:要拦截的键值id,0-返回键,1-菜单键
  2. enable:是否拦截,0-不拦截,1-拦截
  3. callback(id):(Function)点击实体键时的回调函数
  4. id:按键的值,0:返回键;1:菜单键

JS SDK版本支持:

1.0.0+

例子:

  1. appcan.window.monitorKey({
  2. id:"0",
  3. enable:"1",
  4. callback:function(id){
  5. alert("点击的按键:"id);
  6. }
  7. });

appcan.window.actionSheet(title,cancelText,buttons,callback)

弹出一个可选的菜单列表

参数:

  1. title 菜单列表的标题
  2. cancelText 取消按钮上显示文字内容
  3. buttons:(Array)显示在菜单列表上的文字集合
  4. callback(err,data): 菜单列表关闭的回调
  5. err:Error对象,如果没错则为空
  6. data:选择的按钮的索引值

JS SDK版本支持:

1.0.0+

例子:

  1. appcan.window.actionSheet("title","cancel",[1,2,3],function(err,data){
  2. alert(data)
  3. });
  4. 或者
  5. appcan.window.actionSheet({
  6. title:"title",
  7. cancelText:"cancel",
  8. buttons:[1,2,3],
  9. callback:function(err,data){
  10. if(!err)alert(data)
  11. }
  12. });

appcan.window.setSlidingWindow(leftSliding,rightSliding,animationId,bg)

设置侧滑窗口

参数:

  1. leftSliding 左侧滑窗口,如:{width:240,url:”uexWindow_left.html”}
  2. rightSliding 左侧滑窗口,如:{width:240,url:”uexWindow_right.html”}
  3. animationId 打开窗口动画类型
  4. bg:侧滑窗口背景图片

JS SDK版本支持:

1.0.0+

例子:

  1. appcan.window.setSlidingWindow({
  2. leftSliding : {
  3. width : 240,
  4. url : "slidingWindow/uexWindow_left.html"
  5. },
  6. rightSliding : {
  7. width : 240,
  8. url : "slidingWindow/uexWindow_left1.html"
  9. },
  10. animationId : '1', //仿QQ侧滑
  11. bg : 'res://1_1.jpg' //仿QQ侧滑;注:res目录为js文件夹同级目录wgtRes
  12. });

appcan.window.toggleSlidingWindow(mark,reload)

打开或关闭侧滑窗口,注:打开侧滑窗口前,需先调用setSlidingWindow设置打开的侧滑窗口信息

参数:

  1. mark :必选, 左右侧窗口标识,0:左侧,1:右侧
  2. reload :可选, 是否重新加载页面 1:重新加载

JS SDK版本支持:

1.0.0+

例子:

  1. appcan.window.toggleSlidingWindow({
  2. mark:0,
  3. reload:1
  4. })
  5. appcan.window.toggleSlidingWindow({
  6. mark:1
  7. })

appcan.window.setSlidingWindowEnabled(enable)

设置侧滑窗口是否可用

参数:

  1. enable 侧滑窗口是否可用,0:不可用,1:可用

JS SDK版本支持:

1.0.0+

例子:

  1. appcan.window.setSlidingWindowEnabled(1);

appcan.window.getSlidingWindowState(callback)

获取侧滑窗口显示情况

参数:

  1. callback(data):回调函数
  2. data:返回的显示情况,0:左侧菜单显示;1:主界面显示;2:右侧菜单显示

JS SDK版本支持:

1.0.0+

例子:

  1. appcan.window.getSlidingWindowState(function(data){
  2. alert(data);
  3. });

appcan.window.getUrlQuery(callback)

获取加载页面时传入的参数(注:目前只支持IOS)

参数:

  1. callback(data):回调函数
  2. data:传入的参数数据内容

JS SDK版本支持:

1.0.0+

例子:

  1. appcan.window.getUrlQuery(function(data){
  2. alert(data);
  3. //如id=123,则为id=123
  4. });

appcan.window.setStatusBarTitleColor(type)

设置状态条上字体的颜色(注:只支持IOS系统)

参数:

  1. type:状态条上字体的颜色,0为白色(iOS7以上为透明底,iOS7以下为黑底), 1为黑色(iOS7以上为透明底,iOS7以下为白底)

JS SDK版本支持:

1.0.0+

例子:

  1. appcan.window.setStatusBarTitleColor(1);

appcan.window.getState(callback)

获取窗口是否处于前台

参数:

  1. callback(data):回调函数
  2. data:返回的状态值,0:前台;1:后台;

JS SDK版本支持:

1.0.0+

例子:

  1. appcan.window.getState(function(data){
  2. if(data == 0){
  3. alert("当前窗口处于前台")
  4. }else if(data ==1){
  5. alert("当前窗口处于后台");
  6. }
  7. });

appcan.window.setWindowScrollbarVisible(enable)

设置内容超过一屏滚动的时候滚动条的显示和隐藏

参数:

  1. enable: 滚动条的显示和隐藏,0:隐藏,1:显示

JS SDK版本支持:

1.0.0+

例子:

  1. //滚动时不显示滚动条
  2. appcan.window.setWindowScrollbarVisible(0);
  3. //滚动时显示滚动条
  4. appcan.window.setWindowScrollbarVisible(1)

appcan.window.hiddenBounceView(type)

隐藏弹动效果

参数:

  1. type: 隐藏的位置,0:顶端,1:底部

JS SDK版本支持:

1.0.0+

例子:

  1. //顶端隐藏弹动效果
  2. appcan.window.hiddenBounceView(0);
  3. //底部隐藏弹动效果
  4. appcan.window.hiddenBounceView(1)

appcan.window.showBounceView(type,color,flag)

显示弹动效果

参数:

  1. type: 弹动的位置,0:顶端弹动;1:底部弹动
  2. color 弹动显示部位的颜色值,内容不超过一屏时底部弹动内容不显示
  3. flag 是否显示内容,1:显示;0:不显示

JS SDK版本支持:

1.0.0+

例子:

  1. appcan.window.showBounceView({
  2. type:0,
  3. color:'#fff000',
  4. flag:1
  5. });

appcan.window.insertAbove(name)

将当前浮动窗口插入到指定浮动窗口之上

参数:

  1. name: 指定的浮动窗口的名称

JS SDK版本支持:

1.0.0+

例子:

  1. //主窗口打开两个浮动窗口
  2. appcan.window.openPopover({
  3. name:"pop1",
  4. url:"popFrame1.html",
  5. top:200,
  6. left:0,
  7. height:200
  8. });
  9. appcan.window.openPopover({
  10. name:"pop2",
  11. url:"popFrame2.html",
  12. top:300,
  13. left:0,
  14. height:200
  15. });
  16. //此时按打开先后pop2在上面
  17. //pop1内执行以下代码则pop1浮动窗口插入到pop2浮动窗口上面
  18. appcan.window.insertAbove("pop2");

appcan.window.insertBelow(name)

将当前浮动窗口插入到指定浮动窗口之下

参数:

  1. name: 指定的浮动窗口的名称

JS SDK版本支持:

1.0.0+

例子:

  1. //主窗口打开两个浮动窗口
  2. appcan.window.openPopover({
  3. name:"pop1",
  4. url:"popFrame1.html",
  5. top:200,
  6. left:0,
  7. height:200
  8. });
  9. appcan.window.openPopover({
  10. name:"pop2",
  11. url:"popFrame2.html",
  12. top:300,
  13. left:0,
  14. height:200
  15. });
  16. //此时按打开先后pop2在上面
  17. //pop2内执行以下代码则pop2浮动窗口插入到pop1浮动窗口下面
  18. appcan.window.insertBelow("pop1");

appcan.window.insertPopoverAbovePopover(nameA,nameB)

将指定浮动窗口插入到另一浮动窗口之上,只在主窗口中有效

参数:

  1. nameA 指定浮动窗口A的名称
  2. nameB 指定浮动窗口B的名称

JS SDK版本支持:

1.0.0+

例子:

  1. //主窗口打开两个浮动窗口
  2. appcan.window.openPopover({
  3. name:"pop1",
  4. url:"popFrame1.html",
  5. top:200,
  6. left:0,
  7. height:200
  8. });
  9. appcan.window.openPopover({
  10. name:"pop2",
  11. url:"popFrame2.html",
  12. top:300,
  13. left:0,
  14. height:200
  15. });
  16. //此时按打开先后pop2在上面
  17. //pop1插入到pop2上面
  18. appcan.window.insertPopoverAbovePopover("pop1","pop2");
  19. 或者
  20. appcan.window.insertPopoverAbovePopover({
  21. nameA:"pop1",
  22. nameB:"pop2"
  23. });

appcan.window.insertPopoverBelowPopover(nameA,nameB)

将指定浮动窗口插入到另一浮动窗口之下,只在主窗口中有效

参数:

  1. nameA 指定浮动窗口A的名称
  2. nameB 指定浮动窗口B的名称

JS SDK版本支持:

1.0.0+

例子:

  1. //主窗口打开两个浮动窗口
  2. appcan.window.openPopover({
  3. name:"pop1",
  4. url:"popFrame1.html",
  5. top:200,
  6. left:0,
  7. height:200
  8. });
  9. appcan.window.openPopover({
  10. name:"pop2",
  11. url:"popFrame2.html",
  12. top:300,
  13. left:0,
  14. height:200
  15. });
  16. //此时按打开先后pop2在上面
  17. //pop1插入到pop2上面
  18. appcan.window.insertPopoverBelowPopover("pop2","pop1");
  19. 或者
  20. appcan.window.insertPopoverBelowPopover({
  21. nameA:"pop2",
  22. nameB:"pop1"
  23. });

appcan.window.insertWindowAboveWindow(nameA,nameB)

将指定窗口A插入到另一窗口B之上,该接口仅对显示在屏幕上且不被隐藏的window起作用。(即open该window时,type传入的是256)

参数:

  1. nameA 指定窗口A的名称
  2. nameB 指定窗口B的名称

JS SDK版本支持:

1.0.0+

例子:

  1. appcan.window.insertWindowAboveWindow("window1","window2");
  2. 或者
  3. appcan.window.insertWindowAboveWindow({
  4. nameA:"window1",
  5. nameB:"window2"
  6. });

appcan.window.insertWindowBelowWindow(nameA,nameB)

将指定窗口A插入到另一窗口B之下,该接口仅对显示在屏幕上且不被隐藏的window起作用。(即open该window时,type传入的是256)

参数:

  1. nameA 指定窗口A的名称
  2. nameB 指定窗口B的名称

JS SDK版本支持:

1.0.0+

例子:

  1. //window1插入到window2下面
  2. appcan.window.insertWindowBelowWindow("window1","window2");
  3. //或者
  4. appcan.window.insertWindowBelowWindow({
  5. nameA:"window1",
  6. nameB:"window2"
  7. });

appcan.window.onPopoverLoadFinishInRootWnd(callback)

浮动窗口加载完成的监听方法

参数:

  1. callback(name,url):监听的回调函数
  2. name:浮动窗口的名称
  3. url:浮动窗口的url;当浮动窗口加载的是本地网页时,url返回网页的绝对路径(file:// 开头)当浮动窗口加载的是网络上的网页时,url返回网址(http:// 开头)

JS SDK版本支持:

1.0.0+

例子:

  1. appcan.window.onPopoverLoadFinishInRootWnd(function(name,url){
  2. if(name="pop1"){
  3. alert("浮动窗口pop1加载完成!");
  4. }
  5. });

appcan.window.preOpenStart()

开始浮动窗口的预加载

说明:

  1. popOver的预加载必须要与appcan.window.open中的type=64配合:即open时有此type方可对应使用预加载。开始popOver(浮动窗口)的预加载。即一个窗口中需要有多个浮动窗口,可以让这些浮动窗口预先加载出来。
  2. 其执行过程:A窗口打开B窗口,B窗口中需要预加载多个浮动窗口。那么A窗口中执行appcan.window.open时,其type参数需要为64配合使用,即open时有此typeB窗口方可使用预加载。此时在B窗口中,会等所有预加载的浮动窗口都加载完毕(不包括异步获取网络数据),方才显示B窗口。预加载的浮动窗口的开启函数,即appcan.window.openPopover,需要放置于appcan.window.preOpenStartappcan.window.preOpenFinish之间。

参数:

JS SDK版本支持:

1.0.0+

例子:

  1. //A窗口打开B窗口代码需要type为64
  2. appcan.window.open("preOpen","preOpen.html",10,64);
  3. 或者
  4. appcan.window.open({
  5. name:"preOpen",
  6. data:"preOpen.html",
  7. type:64//此为必须
  8. });
  9. //B窗口即preOpen.html
  10. appcan.ready(function() {
  11. appcan.window.preOpenStart();
  12. appcan.window.openPopover({
  13. name:"content1",
  14. url:"list/lv_thickline_multi_content.html",
  15. top:200,
  16. left:0,
  17. height:200
  18. });
  19. appcan.window.openPopover({
  20. name:"content2",
  21. url:"http://wap.3g2win.com",
  22. top:50,
  23. left:0,
  24. height:200
  25. });
  26. appcan.window.openPopover({
  27. name:"content3",
  28. url:"list/lv_thickline_icon_sub_angle_content.html",
  29. top:400,
  30. left:0,
  31. height:200
  32. });
  33. appcan.window.preOpenFinish();
  34. });

appcan.window.preOpenFinish()

结束浮动窗口的预加载

参数:

JS SDK版本支持:

1.0.0+

例子:

  1. appcan.window.preOpenFinish();

appcan.window.windowForward(animId,animDuration)

在多窗口机制中,前进到下一个window。(前提是有打开的window窗口)

参数:

  1. animId:动画类型Id
  2. 0: 无动画
  3. 1: 从左向右推入
  4. 2: 从右向左推入
  5. 3: 从上向下推入
  6. 4: 从下向上推入
  7. 5: 淡入淡出
  8. 6: 左翻页
  9. 7: 右翻页
  10. 8: 水波纹
  11. 9: 由左向右切入
  12. 10: 由右向左切入
  13. 11: 由上先下切入
  14. 12: 由下向上切入
  15. 13: 由左向右切出
  16. 14: 由右向左切出
  17. 15: 由上向下切出
  18. 16: 由下向上切出
  19. animDuration:动画持续时长,单位为毫秒,默认为260毫秒

JS SDK版本支持:

1.0.0+

例子:

  1. appcan.window.windowForward(0,200);

appcan.window.windowBack(animId,animDuration)

在多窗口机制中,用于返回上一个window,比如在Awindow中uexWindow.open了Bwindow,那么在Bwindow中返回Awindow就可使用此方法。

参数:

  1. animId:动画类型Id
  2. 0: 无动画
  3. 1: 从左向右推入
  4. 2: 从右向左推入
  5. 3: 从上向下推入
  6. 4: 从下向上推入
  7. 5: 淡入淡出
  8. 6: 左翻页
  9. 7: 右翻页
  10. 8: 水波纹
  11. 9: 由左向右切入
  12. 10: 由右向左切入
  13. 11: 由上先下切入
  14. 12: 由下向上切入
  15. 13: 由左向右切出
  16. 14: 由右向左切出
  17. 15: 由上向下切出
  18. 16: 由下向上切出
  19. animDuration:动画持续时长,单位为毫秒,默认250毫秒

JS SDK版本支持:

1.0.0+

例子:

  1. appcan.window.windowBack(0,200);