uexWindow

2018-10-09 11:42 更新

1、简介

  窗口对象。窗口对象是实现多窗口机制的基本单元。使用窗口对象构建Hybrid App,在性能方面更加接近Native App的体验。
AppCan平台中,维护了一个窗口堆栈,每个窗口以唯一的窗口名字来区别。窗口名字是 通过uexWindow.open来赋值的。然而有一个窗口是比较特殊的,即加载起始页的窗口,因为起始页是由 config.xml中配置的,无法进行窗口名的赋值,因此,AppCan对加载起始页的窗口统一命名为’root’,也就是说 ,其它通过uexWindow.open开启的窗口,不能再命名为’root’。

1.1 window.uexOnload

  窗口加载完毕后平台将触发此方法。类比window.onload方法,都是html页面加载完成 之后触发的方法。区别是,window.uexOnload方法会晚于window.onload方法,原因是window.uexOnload需要等 待AppCan扩展对象,即’uex’前缀的对象初始化完毕。事件加载完成之后,可以安全的使用uex扩展对象。

1.2 浮动窗口

  主窗口之上可以有多个浮动窗口,即浮动窗口是附属于某个主窗口的。主窗口关闭后, 其上所有浮动窗口也都会关闭。所有的窗口都有唯一的名字,通过uexWindow.open打开的是一个主窗口,浮动窗口则通过主窗口uexWindow.openPopover创建( 浮动窗口不可创建“openPopover”浮动窗口)。一个主窗口上的多个浮动窗口名字是唯一的,但不同主窗口上的浮动窗 口名字可以相同。浮动窗口可以有弹动效果,可以有数学变化:放大,旋转,移动等。浮动窗口能够解决的事情 很多,比如解决手机浏览器不支持局部DIV滚动, 上下拉刷新特效,抽屉特效等问题。

1.3多窗口之间的通讯

  窗口之间的通讯,比如从网络获取一个数据,根据返回的数据,让其它窗口执行相应的 变化,这就需要用到窗口间通讯机制。
  主窗口之间通讯: uexWindow.evaluateScript(winName, type, script)
  主窗口与浮动窗口之间通讯: uexWindow.evaluateScript(winName, type, script); uexWindow.evaluatePopoverScript(winName, type, script);
  最后一个参数script,是目标窗口的执行脚本。脚本形参限定为数字和字符串。如果是 特殊字符和汉字,则无法传递,可以通过window.localStorage暂存数据,在执行脚本的目标窗口中获取 localStorage。

1.4 多窗口通讯之订阅发布模式

  调用接口subscribeChannelNotification订阅一个频道,注册监听函数。 在任何窗口(包括主窗口,浮动窗口,多页面浮动窗口)调用publishChannelNotification接口发布消息,对应频道的所有订阅者,将收到消息,回调函数将被调用,并传入相应的参数.

1.5 窗口侧边栏菜单效果(抽屉效果)

  调用setSlidingWindow接口实现侧边栏菜单效果。手势滑动实现侧边栏菜单的打开和关闭功能。相关接口:setSlidingWindowEnabled,toggleSlidingWindow

2、API概览

2.1、窗口类方法

open 打开窗口

uexWindow.open(windName,dataType,data,animID,w,h,flag,animDuration,extras)

说明:
打开一个新窗口,如果窗口名字相同,则会覆盖相同窗口名字的页面内容。

参数:

参数名称参数类型是否必选说明
windNameString窗口名字,可为空,不能为”root”,若已经打开过该名字的窗口,则直接跳转至该窗口。
dataTypeNumber窗口载入的数据的类型,0:url方式载入;1:html内容方式载入
dataStringurl或html数据,支持“wgtroot://” 协议头,此协议头用于某些将项目部署在服务器上 的appcan应用,在应用执行过程中加载本地网页用。当dataType为0时,url支持相对路径、 绝对路径。其中,当url以“wgtroot://” 协议开头时,支持从服务器网页中打开本地应用沙箱中相应widget目录下的网页文件。 例如:当前窗口加载的是服务器上的http://www.xxx.com/xxx.html 网页,如果在xxx.html页面中open一个窗口时,传入的data为“wgtroot://index.html”, 那么本次open执行时,引擎将会到本应用沙箱目录的widget路径下去寻找此页面, 例如Android上找到的路径会是:file:///android_assert/widget/index.html 当dataType为1时,把相应html的内容传进去(不建议)
animationIDNumber动画ID,详见术语表-WindowAnimationId 窗口动画Id
wNumber窗口宽度,请传0
hNumber窗口高度,请传0
flagNumber窗口标记,默认传空为0,详见CONSTANT中其他标记的窗口属性WindowFlags
animDurationNumber动画持续时长,单位为毫秒,默认为260毫秒
extrasString扩展参数,设置值时,animDuration参数必传,json格式如下
  1. var extras = {
  2. extraInfo:{//网页配置
  3. opaque:,//Boolean 可选 页面是否透明,默认false
  4. bgColor:,//String 可选 支持图片和颜色,格式为 #fff、#ffffff、rgba(r,g,b,a)等,图片路径支持 res:// wgt:// 等AppCan协议路径
  5. hardware: //是否开启硬件加速,0:否,1:开启(仅Android)
  6. },
  7. animationInfo:{//动画配置,仅iOS且animationID选择bounce类的动画时有效
  8. bounciness:,//Number,可选,模拟弹性大小系数,传0-1之间的double值,越大表示弹性越快
  9. speed:,//Number,可选,模拟震荡速度系数,传0-1之间的double值,越大表示速度越快
  10. }
  11. }

平台支持:

Android2.2+
iOS6.0+

版本支持:

3.0.0+

示例:

  1. uexWindow.open('dd', '0', 'index.html', 1, '', '', 0, 500);

openPresentWindow 打开一个位于最上层的window

uexWindow.openPresentWindow(windName,dataType,data,animID,w,h,flag,animDuration,extras)

说明:

该接口打开一个位于最上层的window。可以用于uexWindow.open()使用flag值为1024时,需要关闭底层的某个window,而该window不关闭。如:开启侧滑关闭后A打开B,B打开C,在C页面需要关闭B,但是C不关闭。这个时候可以在B中调用uexWindow.openPresentWindow打开C。

参数:

uexWindow.open()一致

平台支持:

Android2.2+
iOS 6.0+

版本支持:

3.3.1+

示例:

  1. uexWindow.openPresentWindow('dd', '0', 'index.html', 1, '', '', 0, 500);

close 关闭窗口

uexWindow.close(animID,animDuration)

说明:
关闭当前窗口,若为浮动窗口直接关闭,若为主窗口,则同时会关闭在其上打开的所有浮动窗口
参数:

参数名称参数类型是否必选说明
animIDNumber为空时无动画,-1时代表Open时指定动画的方向动画
animDurationNumber动画持续时长,单位为毫秒,默认为260毫秒

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.close(-1, 1000);

forward 前进到下一个页面

uexWindow.forward()

说明:
仅在主窗口起作用,针对通过a标签跳转的网页,支持加密网页。

参数:

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

back 返回上一个页面

uexWindow.back()

说明:
支持加密网页的back,仅在主窗口起作用。在手机的webkit中,存在一个Bug,当A.html跳转到B.html,B.html跳转到C.html,那么,用自带的history.back(),从C返回到B,B再返回的话,会返回到C,即陷入死循环。

参数:

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

pageForward 前进到下一个页面

uexWindow.pageForward()

说明:
不支持含加密网页的forward,支持在主窗口和浮动窗口中调用

参数:

平台支持:
Android2.2+
iOS6.0+
版本支持:
3.0.0+

pageBack 返回上一个页面

uexWindow.pageBack()

说明:
不支持含加密网页的back,支持在主窗口和浮动窗口中调用。

参数:

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

windowForward 前进到下一个窗口

uexWindow.windowForward(animID,animDuration)

说明:
在多窗口机制中,前进到下一个window。

参数:

参数名称参数类型是否必选说明
animIDNumber动画ID,详见CONSTANT中WindowAnimiID
animDurationNumber动画持续时长,单位为毫秒,默认为260毫秒

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

windowBack 返回到上一个窗口

uexWindow.windowBack(inAnimitionID,inAnimDuration)

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

参数:

参数名称参数类型是否必选说明
inAnimitionIDNumber动画ID
inAnimDurationNumber动画持续时长,单位为毫秒,默认250毫秒

平台支持:
Android2.2+
iOS6.0+
版本支持:
3.0.0+

setWindowFrame 移动当前窗口位置

uexWindow.setWindowFrame(x,y,animDuration)

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

参数:

参数名称参数类型是否必选说明
xNumberx坐标
yNumbery坐标
animDurationNumber动画持续时长,单位为毫秒,默认为260毫秒

平台支持:
Android2.2+
iOS6.0+
版本支持:
3.0.0+
示例:

  1. uexWindow.setWindowFrame(200,200,1000)

openSlibing 打开一个兄弟窗口

uexWindow.openSlibing(type,dataType,url,data,w,h)

说明:
打开一个兄弟窗口

参数:

参数名称参数类型是否必选说明
typeNumber窗口的类型,1-头部;2-底部
dataType(String窗口载入的数据的类型,0:url方式载入;1:html内容方式载入; 2:既有url方式,又有html内容方式
urlNumber窗口路径
dataString数据,可为空
wNumber该参数无效,实际宽度为屏幕宽度,请传””
hNumber窗口高度,支持百分数,默认为屏幕高度

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.openSlibing(1, "0", "nav.html", "", "", 75);

closeSlibing 关闭一个兄弟窗口

uexWindow.closeSlibing(type)

说明:
关闭一个兄弟窗口

参数:

参数名称参数类型是否必选说明
typeNumber窗口的类型,1-头部;2-底部

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.closeSlibing(2);

showSlibing 显示兄弟窗口

uexWindow.showSlibing(type)

说明:
显示open过的兄弟窗口

参数:

参数名称参数类型是否必选说明
typeNumber窗口的类型,1-头部;2-底部

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.showSlibing(1)

evaluateScript 执行js脚本

uexWindow.evaluateScript(windName,type,js)

说明:
执行js脚本

参数:

参数名称参数类型是否必选说明
windNameString窗口名称,默认空为当前窗口(可以是主窗口、root窗口、浮动窗口)
typeNumber窗口的类型,uex.cWindowTypeNormal,uex.cWindowTypeTop 或uex.cWindowTypeBottom,详见CONSTANT中WindowTypes
jsStringjs脚本内容

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.evaluateScript("", 0, "alert('执行去吧!!');");

evaluatePopoverScript 在浮动窗口中执行js脚本

uexWindow.evaluatePopoverScript(windName,popName,js)

说明:
在浮动窗口中执行js脚本

参数:

参数名称参数类型是否必选说明
windNameString窗口名称,默认空为当前窗口(只能为主窗口、root窗口)
popNameString浮动窗口名称
jsStringjs脚本内容

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.evaluatePopoverScript("", "sss", "alert('执行去吧!!');");

evaluateMultiPopoverScript 在多页面浮动窗口中执行js脚本

uexWindow.evaluateMultiPopoverScript(windName,popName,inPageName,js)

说明:
在多页面浮动窗口中执行js脚本

参数:

参数名称参数类型是否必选说明
windNameString窗口名称,默认为当前窗口
popNameString浮动窗口名称
inPageNameString单页面窗口的名字
jsStringjs脚本内容

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.evaluateMultiPopoverScript("", "multipop", "pop2", "alert('multipop')");

openPopover 打开浮动窗口

uexWindow.openPopover(popName,dataType,url,data,x,y,w,h,fontSize,flag,bottomMargin,extraInfo)

说明:
打开浮动窗口,如果浮动窗口名字相同,则会覆盖相同浮动窗口名字的页面内容。浮动窗口可通过主窗口openPopover创建,浮动窗口不可创建“openPopover”浮动窗口。
参数:

参数名称参数类型是否必选说明
popNameString名称
dataTypeNumber窗口载入的数据的类型,0:url方式载入;1:html内容方式载入;2:既有url方式, 又有html内容方式
urlStringurl类型数据,支持“wgtroot://” 协议头,此协议头用于某些将项目部署在服务器上的appcan应用,在应用执行过程中 加载本地网页用。当dataType为0时,url支持相对路径、绝对路径。其中,当url以“wgtroot://” 协议开头时,支持从服务器网页中打开本地应用沙箱中相应widget目录下的网页文件。 例如:当前窗口加载的是服务器上的http://www.xxx.com/xxx.html 网页,如果在xxx.html页面中open一个窗口时,传入的data为“wgtroot://index.html” , 那么本次open执行时,引擎将会到本应用沙箱目录的widget路径下去寻找此页面, 例如Android上找到的路径会是:file:///android_assert/widget/index.html 。
dataStringdata类型数据,用于当dataType为1时,把相应html的内容传进去。必如传入的是一个<div>hello,world!</div>
xNumberx坐标
yNumbery坐标
wNumber宽度,为空时默认为window的宽度
hNumber高度,为空时默认为window的高度
fontSizeNumber字体大小
flagNumber浮动窗口标记,详见CONSTANT中WindowFlags
bottomMarginNumber浮动窗口相对父窗口底部的距离。当值不等于0时,h参数无效。
extraInfoString设置值时,bottomMargin参数必传,json格式如下: {“extraInfo”:{“opaque”:”true”,”bgColor”:”#011”,”delayTime”:”250”}}

关于extraInfo中字段的说明如下:

字段是否必须说明
extraInfo必选extraInfo参数
opaque可选是否透明true/false默认为false
bgColor可选背景色,支持图片和颜色,格式为#fff、#ffffff、rgba(r,g,b,a)等,图片路径支持res://、 wgt://等AppCan协议路径
delayTime可选延迟打开窗口,单位为毫秒,避免父窗口在uexOnload中打开浮动窗口产生卡顿。 设置值时,bottomMargin参数必传
hardware可选是否开启硬件加速,0:关闭,1:开启(仅Android)

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.openPopover("sss",0,"hidden.html","",0,0,'','','',0,100);

closePopover 关闭浮动窗口

uexWindow.closePopover(popName)

说明:
关闭浮动窗口

参数:

参数名称参数类型是否必选说明
popNameString名称

平台支持:
Android2.2+
iOS6.0+
版本支持:
3.0.0+
示例:

  1. uexWindow.closePopover('sss')

preOpenStart 开始浮动窗口的预加载

uexWindow.preOpenStart()

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

参数:

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:
在A窗口中,首先open窗口B,在B窗口中,预加载多个浮动窗口:A.html

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>AppCan API uexWindow A</title>
  5. <meta charset="utf-8">
  6. <script>
  7. window.uexOnload = function(type){
  8. if(!type){
  9. uexWindow.open("B",0,"B.html",0,"","",64);
  10. }
  11. }
  12. </script>
  13. </head>
  14. <body>
  15. </body>
  16. </html>

B.html

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>AppCan API uexWindow B</title>
  5. <meta charset="utf-8">
  6. </head>
  7. <body>
  8. </body>
  9. <script>
  10. window.uexOnload = function(type){
  11. if(!type){
  12. var s = window.getComputedStyle($$("content"), null);
  13. uexWindow.preOpenStart();
  14. uexWindow.openPopover("B1","0","B1.html","",0,int($$("header").offsetHeight),int(s.width),int(s.height),int(s.fontSize),"0");
  15. uexWindow.openPopover("B2","0","B2.html","",0,int($$("header").offsetHeight),int(s.width),int(s.height),int(s.fontSize),"0");
  16. uexWindow.preOpenFinish();
  17. }
  18. }
  19. </script>
  20. </html>

preOpenFinish 结束浮动窗口的预加载

uexWindow.preOpenFinish()

说明:
结束浮动窗口的预加载

参数:

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.preOpenFinish()

setPopoverFrame 更改浮动窗口的位置和大小

uexWindow.setPopoverFrame(popName,x,y,w,h)

说明:
更改浮动窗口的位置和大小

参数:

参数名称参数类型是否必选说明
popNameString名称
xNumberx坐标
yNumbery坐标
wNumber宽度,为空时默认为window的宽度
hNumber高度,为空时默认为window的高度

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.setPopoverFrame('sss',500,200,400,400);

setPopoverVisibility 设置浮动窗口是否显示

uexWindow.setPopoverVisibility(popName,visible)

说明:
设置浮动窗口是否显示

参数:

参数名称参数类型是否必选说明
popNameString名称
visibleNumber0-不显示,1-显示

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.setPopoverVisibility('sss',0);

openMultiPopover 打开多页面浮动窗口

uexWindow.openMultiPopover(content,popName,dataType,x,y,w,h,fontSize,flag,indexSelected,extraInfo)

说明:
在当前window打开一个多页面浮动窗口,页面之间滑动切换,设置是否支持滑动参照setMultilPopoverFlippingEnbaled

参数:

参数名称参数类型是否必选说明
contentString多页面窗口数据格式为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”}}}]}’
popNameString浮动窗口名称
dataTypeNumber窗口载入的数据的类型,0:url方式载入;1:html内容方式载入;2:既有url方式, 又有html内容方式
xNumberx坐标
yNumbery坐标
wNumber宽度,为空时默认为window的宽度
hNumber高度,为空时默认为window的高度
fontSizeNumber字体大小
flagNumber浮动窗口标记,详见CONSTANT中WindowFlags
indexSelectedNumber默认打开的页面索引,默认为0
extraInfoString扩展参数,json格式如下:{“extraInfo”:{“opaque”:”true”,”bgColor”:”#011”, “delayTime”:”250”}}

content json中各字段的说明:

参数是否必须说明
inPageName所包含的单页面窗口的名字
inUrlurl类型数据
inData窗口的内容的二进制数据,可为空
extraInfoextraInfo参数
opaque是否透明true/false默认为false
bgColor背景色,支持图片和颜色,格式为#fff、#ffffff、rgba(r,g,b,a)等,图片路径支持res://、 wgt://等AppCan协议路径

extraInfo json中各字段的说明:

参数是否必须说明
extraInfo必选extraInfo参数
opaque可选是否透明true/false默认为false
bgColor可选背景色,支持图片和颜色,格式为#fff、#ffffff、rgba(r,g,b,a)等,图片路径支持res://、wgt:// 等AppCan协议路径
delayTime可选延迟打开窗口,单位为毫秒,避免父窗口在uexOnload中打开浮动窗口产生卡顿。

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:
实例下载,建议采用JSSDK封装接口方法,参考appcan.frame.openappcan.window.openMultiPopover

  1. uexWindow.openMultiPopover('{"content":[{"inPageName":"p1", "inUrl":"hidden.html","inData":""},{"inPageName":"p2", "inUrl":"hidden1.html","inData":""}]}',"sss",0,400,0,'','','',0,1);

closeMultiPopover 关闭多页面浮动窗口

uexWindow.closeMultiPopover(popName)

说明:
关闭多页面浮动窗口

参数:

参数名称参数类型是否必选说明
popNameString名称

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.closeMultiPopover('sss')

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

uexWindow.setSelectedPopOverInMultiWindow(popName, indexPage)

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

参数:

参数名称参数类型是否必选说明
popNameString浮动窗口名称
indexPageNumber索引

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.setSelectedPopOverInMultiWindow('sss', 0);

setMultiPopoverFrame 更改多页面浮动窗口的位置和大小

uexWindow.setMultiPopoverFrame(popName,x,y,w,h)

说明:
更改多页面浮动窗口的位置和大小

参数:

参数名称参数类型是否必选说明
popNameString浮动窗口名称
xNumberx坐标
yNumbery坐标
wNumber宽度,为空时默认为window的宽度
hNumber高度,为空时默认为window的高度

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.setMultiPopoverFrame("multipop", "10", "10", "600", "600");

bringToFront 置顶当前浮动窗口

uexWindow.bringToFront()

说明:
置顶当前浮动窗口

参数:

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:
主窗口A中打开浮动窗口B1,B2,B3,代码如下:
A.html

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="target-densitydpi=device-dpi, width=device-width, initial-scale=1, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
  6. <script type="text/javascript">
  7. window.uexOnload = function(type){
  8. uexWindow.openPopover("pop1",0,"B1.html","",400,0,'','','',0,0);
  9. uexWindow.openPopover("pop2",0,"B2.html","",400,100,'','','',0,0);
  10. uexWindow.openPopover("pop3",0,"B3.html","",400,200,'','','',0,0);
  11. }
  12. function bringPopoverToFront(){
  13. uexWindow.bringPopoverToFront("pop1");
  14. }
  15. function sendPopoverToBack(){
  16. uexWindow.sendPopoverToBack("pop1");
  17. }
  18. function insertPopoverAbovePopover(){
  19. uexWindow.bringPopoverToFront("pop1","pop3");
  20. }
  21. function insertPopoverBelowPopover(){
  22. uexWindow.insertPopoverBelowPopover("pop1","pop3");
  23. }
  24. </script>
  25. </head>
  26. <body class="um-vp" ontouchstart>
  27. <div class="conbor">
  28. <div class="consj">
  29. <input class="btn" type="button" value="置顶窗口" onclick="bringPopoverToFront()"/>
  30. <input class="btn" type="button" value="置底窗口" onclick="sendPopoverToBack()"/>
  31. <input class="btn" type="button" value="插入之上" onclick="insertPopoverAbovePopover()"/>
  32. <input class="btn" type="button" value="插入之下" onclick="insertPopoverBelowPopover()"/>
  33. </div>
  34. </div>
  35. </body>
  36. </html>

B1.html

  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <meta name="viewport" content="target-densitydpi=device-dpi, width=device-width, initial-
  6. scale=1.0, user-scalable=no" />
  7. <link rel="stylesheet" type="text/css" href="css/index.css">
  8. <script type="text/javascript">
  9. window.uexOnload = function(type){
  10. uexWindow.bringToFront();
  11. }
  12. </script>
  13. </head>
  14. <body style="background:#077333;">
  15. <div class="tit">B1</div>
  16. <div class="consj">
  17. <span class="tit"></span>
  18. <input class="btn" type="button" value="置底当前浮动窗口" onclick="uexWindow.sendToBack();">
  19. <input class="btn" type="button" value="插入之上" onclick="uexWindow.insertAbove('pop2');">
  20. <input class="btn" type="button" value="插入之下" onclick="uexWindow.insertBelow('pop2');">
  21. </div>
  22. </body>
  23. </html>

sendToBack 置底当前浮动窗口

uexWindow.sendToBack()

说明:
置底当前浮动窗口

参数:

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.sendToBack()

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

uexWindow.insertAbove(name)

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

参数:

参数名称参数类型是否必选说明
nameString目标浮动窗口的名称

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.insertAbove('pop2');

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

uexWindow.insertBelow(name)

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

参数:

参数名称参数类型是否必选说明
nameString目标浮动窗口的名称

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.insertBelow('pop2');

bringPopoverToFront 置顶指定浮动窗口

uexWindow.bringPopoverToFront(name)

说明:
置顶指定浮动窗口,只在主窗口中有效

参数:

参数名称参数类型是否必选说明
nameString目标浮动窗口的名称

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.bringPopoverToFront("pop1");

sendPopoverToBack 置底指定浮动窗口

uexWindow.sendPopoverToBack(name)

说明:
置底指定浮动窗口,只在主窗口中有效

参数:

参数名称参数类型是否必选说明
nameString目标浮动窗口的名称

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.sendPopoverToBack("pop1");

insertPopoverAbovePopover 将指定浮动窗口插入到另一浮动窗口之上

uexWindow.insertPopoverAbovePopover(nameA,nameB)

说明:
将浮动窗口A插入到浮动窗口B之上,只在主窗口中有效

参数:

参数名称参数类型是否必选说明
nameAString指定浮动窗口A的名称
nameBString指定浮动窗口B的名称

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.insertPopoverAbovePopover("pop1","pop3");

insertPopoverBelowPopover

将指定浮动窗口插入到另一浮动窗口之下

uexWindow.insertPopoverBelowPopover(nameA,nameB)

说明:
将浮动窗口A插入到浮动窗口B之下,只在主窗口中有效

参数:

参数名称参数类型是否必选说明
nameAString指定浮动窗口A的名称
nameBString指定浮动窗口B的名称

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.insertPopoverBelowPopover("pop1","pop3");

insertWindowAboveWindow 将指定窗口插入到另一窗口之上

uexWindow.insertWindowAboveWindow(nameA,nameB)

说明:

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

参数:

参数名称参数类型是否必选说明
nameAString指定窗口A的名称
nameBString指定窗口B的名称

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.insertWindowAboveWindow("pop1","pop3");

insertWindowBelowWindow 将指定窗口插入到另一窗口之下

uexWindow.insertWindowBelowWindow(nameA,nameB)

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

参数:

参数名称参数类型是否必选说明
nameAString指定窗口A的名称
nameBString指定窗口B的名称

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.insertWindowBelowWindow("pop1","pop3");

setWindowHidden 设置当前窗口显示和隐藏

uexWindow.setWindowHidden(visible)

说明:
设置当前窗口显示和隐藏,该接口仅对显示在屏幕上且不被隐藏的window起作用。(即open该window时,flag传入的是256)

参数:

参数名称参数类型是否必选说明
visibleNumber显示或隐藏,0-显示;1-隐藏

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.setWindowHidden(1);

toggleSlidingWindow 打开侧滑窗口

uexWindow.toggleSlidingWindow(json)

说明:
打开侧滑窗口

参数:

参数名称参数类型是否必选说明
jsonString该字符串为JSON格式。如下mark: (String类型) 必选 左右侧窗口标识,0:左侧,1:右侧,reload: 可选 是否重新加载,1:重新加载

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. var params = {
  2. mark:0,
  3. reload:1
  4. };
  5. var paramStr = JSON.stringify(params);
  6. uexWindow.toggleSlidingWindow(paramStr);

setSlidingWindow 设置侧滑窗口

uexWindow.setSlidingWindow(json)

说明:
设置侧滑窗口

参数:

参数名称参数类型是否必选说明
jsonString侧滑窗口信息。该字符串为JSON格式。如下: {leftSliding: {width:240,url:”uexWindow_left.html”},rightSliding: {width:240,url:”uexWindow_left.html”}}

json字符串中各字段含义如下:

参数参数类型是否必须说明
leftSlidingString左侧侧滑窗口
rightSlidingString右侧侧滑窗口
widthNumber侧滑窗口宽度
urlStringurl类型数据

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. var params = {
  2. leftSliding:{
  3. width:240,
  4. url:"uexWindow_left.html"
  5. },
  6. rightSliding:{
  7. width:240,
  8. url:"uexWindow_left.html"
  9. }
  10. };
  11. var paramStr = JSON.stringify(params);
  12. uexWindow.setSlidingWindow(paramStr);

setSlidingWindowEnabled 设置侧滑窗口是否可用

uexWindow.setSlidingWindowEnabled(enable)

说明:
设置侧滑窗口是否可用

参数:

参数名称参数类型是否必选说明
enableNumber是否可用,0:不可用,1:可用

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.setSlidingWindowEnabled(1);

setMultilPopoverFlippingEnbaled 设置控件是否响应滑动事件

uexWindow.setMultilPopoverFlippingEnbaled(enable)

说明:
设置控件是否响应滑动事件,该接口需要在Multipopover的子页面中调用

参数:

参数名称参数类型是否必选说明
enableNumber滑动手势开关,0:允许滑动手势切换子页面,1:禁止滑动手势切换子页面

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.setMultilPopoverFlippingEnbaled(1);

postGlobalNotification 发送全局消息

uexWindow.postGlobalNotification(content)

说明:
发送全局消息,用于窗口之间的通信,调用该方法时,所有打开(通过调用uexWindow的open和openPopover方法)的窗口只要注册过onGlobalNotification,都会被调用。

参数:

参数名称参数类型是否必选说明
contentString发送的内容

平台支持:
Android2.2+

版本支持:
3.0.0+

示例:
这里一共涉及到3个网页,index.html,index1.html,index2.html,其中在index2.html中发送全局消息。代码如下:
index.html

  1. <!DOCTYPE html>
  2. <html class="um landscape min-width-240px min-width-320px min-width-480px min-width-768px min-width-1024px">
  3. <head>
  4. <title></title>
  5. <meta charset="utf-8">
  6. <meta name="viewport" content="target-densitydpi=device-dpi, width=device-width, initial-scale=1, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
  7. <script>
  8. function onGlobalNotification(ret){
  9. console.log("index:"+ret);
  10. }
  11. function openWindow(){
  12. uexWindow.open('index','0','index1.html','2','','',0);
  13. //uexWindow.openPopover('index',"0",'index1.html',"","","","","","","0");
  14. }
  15. </script>
  16. </head>
  17. <body class="um-vp c-wh" ontouchstart>
  18. <div id="page_0" class="up ub ub-ver" tabindex="0">
  19. <!--header开始-->
  20. <div id="header" class="uh c-org c-m1 t-wh ub">
  21. <h1 class="ut ub-f1 ulev0 ut-s tx-c">index.html</h1>
  22. </div>
  23. <!--header结束-->
  24. <div>
  25. <input type="button" value="index1" onClick="openWindow()" style="line-height:2em;font-size:14px"/>
  26. </div>
  27. </div>
  28. </body>
  29. <script>
  30. window.uexOnload = function(type){
  31. uexWindow.onGlobalNotification = onGlobalNotification;
  32. }
  33. </script>
  34. </html>

index1.html

  1. <!DOCTYPE html>
  2. <html class="um landscape min-width-240px min-width-320px min-width-480px min-width-768px min-width-1024px">
  3. <head>
  4. <title></title>
  5. <meta charset="utf-8">
  6. <meta name="viewport" content="target-densitydpi=device-dpi, width=device-width, initial-scale=1, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
  7. <script>
  8. function onGlobalNotification(ret){
  9. console.log("index1:"+ret);
  10. }
  11. function openWindow(){
  12. uexWindow.open('index1','0','index2.html','2','','',0);
  13. //uexWindow.openPopover('index1',"0",'index2.html',"","","","","","","0");
  14. }
  15. </script>
  16. </head>
  17. <body class="um-vp c-wh" ontouchstart>
  18. <div id="page_0" class="up ub ub-ver" tabindex="0">
  19. <!--header开始-->
  20. <div id="header" class="uh c-org c-m1 t-wh ub">
  21. <h1 class="ut ub-f1 ulev0 ut-s tx-c">index1.html</h1>
  22. </div>
  23. <!--header结束-->
  24. <div>
  25. <input type="button" value="index2" onClick="openWindow()" style="line-height:2em;font-size:14px"/>
  26. </div>
  27. </div>
  28. </body>
  29. <script>
  30. window.uexOnload = function(type){
  31. uexWindow.onGlobalNotification = onGlobalNotification;
  32. }
  33. </script>
  34. </html>

index2.html

  1. <!DOCTYPE html>
  2. <html class="um landscape min-width-240px min-width-320px min-width-480px min-width-768px min-width-1024px">
  3. <head>
  4. <title></title>
  5. <meta charset="utf-8">
  6. <meta name="viewport" content="target-densitydpi=device-dpi, width=device-width, initial-scale=1, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
  7. <script>
  8. function onGlobalNotification(ret){
  9. console.log("index2:"+ret);
  10. }
  11. </script>
  12. </head>
  13. <body class="um-vp c-wh" ontouchstart>
  14. <div id="page_0" class="up ub ub-ver" tabindex="0">
  15. <!--header开始-->
  16. <div id="header" class="uh c-org c-m1 t-wh ub">
  17. <h1 class="ut ub-f1 ulev0 ut-s tx-c">index2.html</h1>
  18. </div>
  19. <!--header结束-->
  20. </div>
  21. </body>
  22. <script>
  23. window.uexOnload = function(type){
  24. uexWindow.onGlobalNotification = onGlobalNotification;
  25. uexWindow.postGlobalNotification("test just!");
  26. }
  27. </script>
  28. </html>

subscribeChannelNotification 注册接收消息通知的监听器

uexWindow.subscribeChannelNotification(channelId,functionName)

说明:
窗口之间的通信,可以通过发布/订阅模式来实现。窗口调用此接口订阅频道监听,当在另一窗口调用publishChannelNotificationpublishChannelNotificationForJson时,对应此频道的回调方法将被调用,并传入相应的参数。

参数:

参数名称参数类型是否必选说明
channelIdString频道唯一标识符
functionNameString回调方法名称

平台支持:

Android2.2+
iOS 6.0+

版本支持:
3.0.0+

示例:
这里一共涉及到3个网页,index.html,index1.html,index2.html,其中在index2.html中发送全局消息。代码如下:
index.html

  1. <!DOCTYPE html>
  2. <html class="um landscape min-width-240px min-width-320px min-width-480px min-width-768px min-width-1024px">
  3. <head>
  4. <title></title>
  5. <meta charset="utf-8">
  6. <meta name="viewport" content="target-densitydpi=device-dpi, width=device-width, initial-scale=1, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
  7. <script>
  8. function onNotification(ret){
  9. console.log("index:"+ret);
  10. }
  11. function openWindow(){
  12. uexWindow.open('index','0','index1.html','2','','',0);
  13. //uexWindow.openPopover('index',"0",'index1.html',"","","","","","","0");
  14. }
  15. </script>
  16. </head>
  17. <body class="um-vp c-wh" ontouchstart>
  18. <div id="page_0" class="up ub ub-ver" tabindex="0">
  19. <!--header开始-->
  20. <div id="header" class="uh c-org c-m1 t-wh ub">
  21. <h1 class="ut ub-f1 ulev0 ut-s tx-c">index.html</h1>
  22. </div>
  23. <!--header结束-->
  24. <div>
  25. <input type="button" value="index1" onClick="openWindow()" style="line-height:2em;font-size:14px"/>
  26. </div>
  27. </div>
  28. </body>
  29. <script>
  30. window.uexOnload = function(type){
  31. uexWindow.onNotification = onNotification;
  32. uexWindow.subscribeChannelNotification("No1", "onNotification");
  33. }
  34. </script>
  35. </html>

index1.html

  1. <!DOCTYPE html>
  2. <html class="um landscape min-width-240px min-width-320px min-width-480px min-width-768px min-width-1024px">
  3. <head>
  4. <title></title>
  5. <meta charset="utf-8">
  6. <meta name="viewport" content="target-densitydpi=device-dpi, width=device-width, initial-scale=1, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
  7. <script>
  8. function onNotification(ret){
  9. console.log("index1:"+ret);
  10. }
  11. function openWindow(){
  12. uexWindow.open('index1','0','index2.html','2','','',0);
  13. //uexWindow.openPopover('index1',"0",'index2.html',"","","","","","","0");
  14. }
  15. </script>
  16. </head>
  17. <body class="um-vp c-wh" ontouchstart>
  18. <div id="page_0" class="up ub ub-ver" tabindex="0">
  19. <!--header开始-->
  20. <div id="header" class="uh c-org c-m1 t-wh ub">
  21. <h1 class="ut ub-f1 ulev0 ut-s tx-c">index1.html</h1>
  22. </div>
  23. <!--header结束-->
  24. <div>
  25. <input type="button" value="index2" onClick="openWindow()" style="line-height:2em;font-size:14px"/>
  26. </div>
  27. </div>
  28. </body>
  29. <script>
  30. window.uexOnload = function(type){
  31. uexWindow.onNotification = onNotification;
  32. uexWindow.subscribeChannelNotification("No2", "onNotification");
  33. }
  34. </script>
  35. </html>

index2.html

  1. <!DOCTYPE html>
  2. <html class="um landscape min-width-240px min-width-320px min-width-480px min-width-768px min-width-1024px">
  3. <head>
  4. <title></title>
  5. <meta charset="utf-8">
  6. <meta name="viewport" content="target-densitydpi=device-dpi, width=device-width, initial-scale=1, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
  7. <script>
  8. function onNotification(ret){
  9. console.log("index2:"+ret);
  10. }
  11. </script>
  12. </head>
  13. <body class="um-vp c-wh" ontouchstart>
  14. <div id="page_0" class="up ub ub-ver" tabindex="0">
  15. <!--header开始-->
  16. <div id="header" class="uh c-org c-m1 t-wh ub">
  17. <h1 class="ut ub-f1 ulev0 ut-s tx-c">index2.html</h1>
  18. </div>
  19. <!--header结束-->
  20. </div>
  21. </body>
  22. <script>
  23. window.uexOnload = function(type){
  24. uexWindow.onNotification = onNotification;
  25. uexWindow.subscribeChannelNotification("No1", "onNotification");
  26. uexWindow.subscribeChannelNotification("No2", "onNotification");
  27. uexWindow.publishChannelNotification("No1","channel 1 test just!");
  28. uexWindow.publishChannelNotification("No2","channel 2 test just!");
  29. }
  30. </script>
  31. </html>

publishChannelNotification 发布消息通知

uexWindow.publishChannelNotification(channelId,content)
说明:
发布消息通知,此频道的所有订阅者,将收到消息,回调函数将被调用,并传入相应的参数.

参数:

参数名称参数类型是否必选说明
channelIdString频道唯一标识符
contentString发布的内容

平台支持:
Android2.2+
iOS6.0+
版本支持:
3.0.0+

示例:

  1. uexWindow.publishChannelNotification("No1","channel 1 test just!");

publishChannelNotificationForJson 发布Json类型消息通知

uexWindow.publishChannelNotificationForJson(channelId,content)
说明:
发布消息通知,此频道的所有订阅者,将收到消息,回调函数将被调用,并传入相应的参数.

参数:

参数名称参数类型是否必选说明
channelIdString频道唯一标识符
contentString发送Json类型的内容

平台支持:
Android2.2+
iOS6.0+
版本支持:
3.0.0+

示例:

  1. var json =
  2. key value
  3. uexWindow.publishChannelNotificationForJson("No1",JSON.stringify(json));

getState 获取当前窗口处于前台还是后台

uexWindow.getState()

说明:
获取当前窗口处于前台还是后台

参数:

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.getState()

getHeight 获取window的高度

uexWindow.getHeight(jsonStr)

参数:

示例:

  1. var height=uexWindow.getHeight();
  2. console.log("height: "+height);

平台支持:

Android 2.2+
iOS 6.0+

版本支持:

3.2.0+

getWidth 获取window的宽度

uexWindow.getWidth(jsonStr)

参数:

示例:

  1. var width=uexWindow.getWidth();
  2. console.log("width: "+ width);

平台支持:

Android 2.2+
iOS 6.0+

版本支持:

3.2.0+

getUrlQuery 获取加载页面时传入的参数

uexWindow.getUrlQuery()

说明:
获取加载页面时传入的参数, 其回调函数是cbGetUrlQuery

参数:

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.getUrlQuery();

getSlidingWindowState 获取侧滑窗口显示情况

uexWindow.getSlidingWindowState()

说明:
获取侧滑窗口显示情况,回调方法cbSlidingWindowState

参数:

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.getSlidingWindowState();

2.2、系统UI类方法

alert 弹出alert对话框

uexWindow.alert(title,message,buttonLable)

说明:
弹出只有一个确定按钮的对话框

参数:

参数名称参数类型是否必选说明
titleString标题
messageString内容
buttonLableString显示在按钮上的文字

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.alert("提示","alert框测试","OK");

confirm 弹出confirm对话框

uexWindow.confirm(title,message,buttonLable)

说明:
弹出至少包含一个至多包含3个按钮的对话框

参数:

参数名称参数类型是否必选说明
titleString标题
messageString内容
buttonLableArray显示在按钮上的文字的集合

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.confirm("警告","确定退出么?","OK,Cancel");

prompt 弹出prompt对话框

uexWindow.prompt(title,message,defaultValue,buttonLable,hint)

说明:
弹出包含两个按钮且带输入框的对话框

参数:

参数名称参数类型是否必选说明
titleString标题
messageString对话框内容,不需要时请传空字符串""
defaultValueString输入框默认文字,不需要时请传空字符串""
buttonLableString显示在按钮上的文字的集合 ,多个按钮之间用逗号,分隔
hintString输入框中的提示文字,在输入框中内容为空时显示

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.prompt("提示","请输入内容:","","OK,Cancel");

toast 弹出消息提示框

uexWindow.toast(type,location,msg,duration)

说明:
弹出消息提示框,常见的用于获取网络数据,在请求过程中给个加载提示,数据加载完成时关闭提示。

参数:

参数名称参数类型是否必选说明
typeNumber0-没有进度条;1-有进度条
locationNumber显示位置,详见CONSTANT中WindowToastLocation
msgNumber消息
durationNumber显示时间,单位为毫秒,非正整数时,提示框一直存在,不会自动关闭

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.toast(1,5,"正在加载...",0);

closeToast 关闭消息提示框

uexWindow.closeToast()

说明:
关闭消息提示框

参数:

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.closeToast()

createProgressDialog 创建全局对话框

uexWindow.createProgressDialog(title,msg,canCancel)

说明:

创建一个全局对话框,屏蔽用户对界面的一切操作,可以定义是否模态。常见的用于获取网络数据,在请求过程中给个加载提示,数据加载完成时关闭提示。

参数:

参数名称参数类型是否必选说明
titleString标题,传空字符串时没有标题,如’’
msgString内容
canCancelNumber是否可以取消,即点击屏幕上除对话框以外的任何地方,或者点击返回键,对话框是否消失。 0-可以取消,1-不能取消。设置为1时,该对话框只能在通过调 用destroyProgressDialog取消,否则会一直显示。默认可以取消

平台支持:

iOS 6.0+
Android 4.0+

版本支持:

iOS 3.2.0+
Android 3.0.0+

示例:

  1. uexWindow.createProgressDialog('','正在加载,请稍候...',0);

destroyProgressDialog 销毁全局对话框

uexWindow.destroyProgressDialog()

说明:
销毁全局对话框

参数:

平台支持:

iOS 6.0+
Android 4.0+

版本支持:

iOS 3.2.0+
Android 3.0.0+

示例:

  1. uexWindow.destroyProgressDialog()

actionSheet 弹出菜单列表

uexWindow.actionSheet(title,cancel,buttonLables)

说明:
从界面底部弹出按钮列表, 其回调接口是cbActionSheet

参数:

参数名称参数类型是否必选说明
titleString标题
cancelString显示在取消按钮上的文本
buttonLableArray按钮列表文字

平台支持:
Android2.2+
iOS6.0+
版本支持:
3.0.0+
示例:

  1. uexWindow.actionSheet("菜单","Cancel","Opt1,Opt2,Opt3,Opt4,Opt5,Opt6");

2.3、系统control类方法

setOrientation 设置屏幕方向

uexWindow.setOrientation(orientation)

说明:
设置屏幕方向

参数:

参数名称参数类型是否必选说明
orientationNumber1:竖屏,home键在屏幕下方; 2:横屏,home键在屏幕右边;4:竖屏,home键在屏幕上方; 8:横屏,home键在屏幕左边; 15:随系统设置自动转屏。

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.setOrientation(1);

setWindowScrollbarVisible 设置滚动条的显示和隐藏

uexWindow.setWindowScrollbarVisible(visible)

说明:
设置滚动条的显示和隐藏

参数:

参数名称参数类型是否必选说明
visibleBool显示或隐藏,true-显示;false-隐藏

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="target-densitydpi=device-dpi, width=device-width, initial-
  6. scale=1, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
  7. <script type="text/javascript">
  8. window.uexOnload = function(type){
  9. }
  10. function setDis(vis){
  11. uexWindow.setWindowScrollbarVisible(vis);
  12. }
  13. </script>
  14. </head>
  15. <body class="um-vp" ontouchstart>
  16. <div class="conbor">
  17. <div class="consj">
  18. <input class="btn" type="button" value="显示" onclick="setDis('true')"/>
  19. <input class="btn" type="button" value="隐藏" onclick="setDis('false')"/>
  20. </div>
  21. </div>
  22. </body>
  23. </html>

setReportKey 设置当前页面是否拦截某个按键

uexWindow.setReportKey(keyCode,enable)

说明:
设置当前页面是否拦截某个按键

参数:

参数名称参数类型是否必选说明
keyCodeNumber要拦截的键值,0-返回键,1-菜单键
enableNumber是否拦截,0-不拦截,1-拦截

平台支持:
Android2.2+

版本支持:
3.0.0+

示例:

  1. uexWindow.setReportKey(1,1)

showSoftKeyboard 弹出软键盘

uexWindow.showSoftKeyboard()

说明:
弹出Android设备软键盘

参数:

平台支持:
Android2.2+

版本支持:
3.0.0+

hideSoftKeyboard 关闭软键盘

uexWindow.hideSoftKeyboard()

说明:
关闭Android设备软键盘

参数:

平台支持:
Android2.2+

版本支持:
3.1.0+

setSwipeRate 设置左右手势的灵敏度

uexWindow.setSwipeRate(rate)

说明:
设置左右手势的灵敏度

参数:

参数名称参数类型是否必选说明
rateNumber灵敏度,大于等于1

平台支持:
Android2.2+

版本支持:
3.0.0+

hideStatusBar 隐藏状态栏

uexWindow.hideStatusBar()

说明:
设置当前应用状态栏隐藏,一般使用场景非全屏(线上打包状态栏设置可选择)下,当前应用有状态栏

参数:

平台支持:
iOS7.0+

版本支持:
3.0.0+

示例

  1. uexWindow.hideStatusBar();

showStatusBar 显示状态栏

uexWindow.showStatusBar()

说明:
设置当前应用状态栏显示,一般使用场景非全屏(线上打包状态栏设置可选择)下,当前应用有状态栏

参数:

平台支持:
iOS7.0+

版本支持:
3.0.0+

示例

  1. uexWindow.showStatusBar();

setStatusBarTitleColor 设置状态条上字体的颜色

uexWindow.setStatusBarTitleColor(color)

说明:
设置状态条上字体的颜色

参数:

参数名称参数类型是否必选说明
colorNumber状态条上字体的颜色,0为白色(iOS7以上为透明底,iOS7以下为黑底), 1为黑色(iOS7以上为透明底,iOS7以下为白底)

平台支持:
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.setStatusBarTitleColor(0);

statusBarNotification 发送消息到状态栏

uexWindow.statusBarNotification(title,msg)

说明:
发送消息到状态栏

参数:

参数名称参数类型是否必选说明
titleString标题
msgString消息

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.statusBarNotification('title','msg');

share 调用系统分享

uexWindow.share(jsonStr)

说明:
调用系统的分享框

参数:

jsonStr是JSON字符串,容许的字段如下表所示(以下均为可选参数)

KeyValue类型适用系统说明
typeNumberAndroid0-直接分享至微信朋友圈
titleStringAndroid标题
subjectStringAndroid子标题
textStringAndroid iOS文本内容
imgPathStringAndroid iOS单张图片的路径,支支持file://,res://和wgt://协议,图片需要先存到本地
imgPathsArrayAndroid iOS多张图片路径,由imgPath构成的数组
packageNameStringAndroid包名。可与className搭配直接分享到某个应用。type传0时不需要传此项
classNameStringAndroid可与packageName搭配直接分享到某个应用。type传0时不需要传此项
  • iOS系统下,应用分享列表中只包含可以被分享的应用,不支持分享传入的内容的应用不会出现。
  • Android系统下,应用分享列表中会包含所有带分享功能的应用。
  • 由于系统差异,完成某些复杂的分享操作时(比如分享多张图片至微信),此接口可能需要写2套代码。

平台支持:

iOS6.0+
注:6.0+的系统就可以调起此接口分享内容到系统应用,但在8.0之后才允许分享至第三方应用。

Android 2.3+

版本支持:

iOS 3.2.0+

Android 3.2.3+

示例

Android直接分享多张图片到微信朋友圈:

  1. function share() {
  2. var imgs = ["/sdcard/DCIM/123.jpg","/sdcard/DCIM/119.jpg","/sdcard/DCIM/504.jpg"];
  3. var params = {
  4. type:0,
  5. text:"分享到朋友圈的文字内容",
  6. imgPaths:imgs
  7. };
  8. var paramStr = JSON.stringify(params);
  9. uexWindow.share(paramStr);
  10. }

iOS 分享多张图片至微信

  1. function share(){
  2. var param = {
  3. imgPaths:["res://photo1t.jpg","res://photo2t.jpg"]
  4. }
  5. uexWindow.share(JSON.stringify(param));
  6. }

setLoadingImagePath 设置启动图相关参数

uexWindow.setLoadingImagePath(params)

说明:

用于引擎的启动图之后,动态加载自定义启动画面;
设置启动图路径和时间(推荐采用本地路径),下次启动应用才会生效 。

参数:

params是JSON字符串,具体结构如下

  1. var params = {
  2. loadingImagePath:,//String,必选 启动图路径,只支持"res://","wgt://"协议,当此字段传空字符串("")时,代表取消自定义启动图,网络地址图片优先建议下载到本地来设置启动图路径;
  3. loadingImageTime:,//Number,当loadingImagePath非空时必选 启动图持续时间,单位毫秒
  4. }

平台支持:

Android2.2+
iOS7.0+

版本支持:

3.4.1+

示例:

  1. var params = {
  2. loadingImagePath:"file:///sdcard/startup_file.jpg",
  3. loadingImageTime:3000
  4. };
  5. var paramStr = JSON.stringify(params);
  6. uexWindow.setLoadingImagePath(paramStr);

setAutorotateEnable 设置窗口是否跟随设备自动旋转

uexWindow.setAutorotateEnable()

说明:

是否跟随设备自动旋转,默认是跟随

参数:

参数名称参数类型是否必选说明
enableNumber是否跟随,0:跟随;1:不跟随

平台支持:

Android2.2+
iOS6.0+

版本支持:

3.0.0+

示例:

  1. uexWindow.setAutorotateEnable(1);

setHardwareEnable 设置窗口的硬件加速

uexWindow.setHardwareEnable(flag)

说明:
开启或关闭当前window的硬件加速,用于解决网页闪屏的问题。如果需要打开window时就是关闭状态,请参考uexWindow.open

参数:

参数名称参数类型是否必选说明
flagNumber是否开启,0:关闭;1:开启

平台支持:

Android4.0+

版本支持:

3.2.0+

示例:

  1. uexWindow.setHardwareEnable(1);

setPopHardwareEnable 设置Popover的硬件加速功能

uexWindow.setPopHardwareEnable(name,flag)

说明:
开启或关闭当前popover的硬件加速,用于解决网页闪屏的问题,打开popover后调用。如果需要打开popover时就是关闭状态,请参考uexWindow.openPopover

参数:

参数名称参数类型是否必选说明
flagNumber是否开启,0:关闭;1:开启
nameStringpopover的name

平台支持:
Android4.0+

版本支持:
3.2.0+

示例:

  1. uexWindow.setPopHardwareEnable(‘content’,1);

beginAnimition 开始设置动画的相关参数

uexWindow.beginAnimition()

说明:
开始设置动画的相关参数,仅对浮动窗口有效

参数:

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.beginAnimition()`

setAnimitionDelay 设置动画延迟执行时间

uexWindow.setAnimitionDelay(delay)

说明:
设置动画延迟执行时间,仅对浮动窗口有效

参数:

参数名称参数类型是否必选说明
delayNumber延迟执行的时间(单位:毫秒),默认为0

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.setAnimitionDelay(200)

setAnimitionDuration 设置动画持续时间

uexWindow.setAnimitionDuration(duration)

说明:
设置动画持续时间,仅对浮动窗口有效

参数:

参数名称参数类型是否必选说明
durationNumber持续时间(单位:毫秒),默认为260

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.setAnimitionDuration(4000);

setAnimitionCurve 设置动画曲线类型

uexWindow.setAnimitionCurve(curve)

说明:
设置动画曲线类型,仅对浮动窗口有效

参数:

参数名称参数类型是否必选说明
curveNumber动画曲线类型,默认为0。详见CONSTANT中WindowAnimCurveType

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.setAnimitionCurve(1);

setAnimitionRepeatCount 设置动画重复次数

uexWindow.setAnimitionRepeatCount(count)

说明:
设置动画重复次数,仅对浮动窗口有效

参数:

参数名称参数类型是否必选说明
countNumber重复次数,默认为0

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.setAnimitionRepeatCount(0);

setAnimitionAutoReverse 设置动画结束后自动恢复位置和状态

uexWindow.setAnimitionAutoReverse(isReverse)

说明:
设置动画结束后自动恢复位置和状态,仅对浮动窗口有效

参数:

参数名称参数类型是否必选说明
isReverseNumber是否恢复。0-不恢复;1-恢复。默认为0

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.setAnimitionAutoReverse(1);

makeTranslation 设置移动动画

uexWindow.makeTranslation(toX,toY,toZ)

说明:
设置移动动画,仅对浮动窗口有效

参数:

参数名称参数类型是否必选说明
toXNumber相对于当前位置的x轴方向上的平移距离,int型整数,负数或正数
toYNumber相对于当前位置的y轴方向上的平移距离,int型整数,负数或正数
toZNumber相对于当前位置的z轴方向上的平移距离,int型整数,负数或正数

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.makeTranslation(100,0,0);

makeScale 设置伸缩动画

uexWindow.makeScale(toX,toY,toZ)

说明:
设置伸缩动画,仅对浮动窗口有效

参数:

参数名称参数类型是否必选说明
toXNumber相对于当前大小的x轴方向上的放大倍率,大于0的float型数据
toYNumber相对于当前大小的y轴方向上的放大倍率,大于0的float型数据
toZNumber相对于当前大小的z轴方向上的放大倍率,大于0的float型数据

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.makeScale(2,1,1);

makeRotate 设置旋转动画

uexWindow.makeRotate(degrees,toX,toY,toZ)

说明:

设置旋转动画,仅对浮动窗口有效

参数:

参数名称参数类型是否必选说明
degreesNumber相对于当前角度的旋转度数
toXNumber是否绕X轴旋转。0为false,1为true
toYNumber是否绕Y轴旋转。0为false,1为true
toZNumber是否绕Z轴旋转。0为false,1为true

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.makeRotate(90, 1, 0, 1);

makeAlpha 设置透明度动画

uexWindow.makeAlpha(alpha)

说明:
设置透明度动画,仅对浮动窗口有效

参数:

参数名称参数类型是否必选说明
alphaNumber相对于当前alpha的值,0.0到1.0的float型数据

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.makeAlpha(0.5);

commitAnimition 提交动画设置并开始执行动画

uexWindow.commitAnimition()

说明:
提交动画设置并开始执行动画,仅对浮动窗口有效,所有参数的设置仅一次有效,动画完了后将清除。

参数:

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.commitAnimition();

getBounce 获取网页弹动状态

uexWindow.getBounce()

说明:
获取网页弹动状态

参数:

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.getBounce();

setBounce 设置是否支持网页弹动

uexWindow.setBounce(flag)

说明:
设置是否支持网页弹动

参数:

参数名称参数类型是否必选说明
flagNumber1:支持;0:不支持

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.setBounce(1);

notifyBounceEvent 注册接收弹动事件

uexWindow.notifyBounceEvent(type,status)

说明:
注册接收弹动事件

参数:

参数名称参数类型是否必选说明
typeNumber弹动的位置,0:顶端弹动;1:底部弹动
statusNumber是否调用onBounceStateChange方法,0:不调用;1-调用

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.notifyBounceEvent(1,1);

showBounceView 显示弹动效果

uexWindow.showBounceView(type,color,flag)

说明:
显示弹动效果

参数:

参数名称参数类型是否必选说明
typeNumber弹动的位置,0:顶端弹动;1:底部弹动
colorString弹动显示部位的颜色值,内容不超过一屏时底部弹动内容不显示
flagString是否显示内容,1:显示;0:不显示

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.showBounceView("1","rgba(15, 155, 155, 100)", 1);

resetBounceView 设置弹动效果结束后显示的网页

uexWindow.resetBounceView(type)

说明:
设置弹动效果结束后显示的网页,一般在onBounceStateChange监听方法中调用该方法

参数:

参数名称参数类型是否必选说明
typeNumber弹动的位置,0:顶端;1:底部

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.resetBounceView("1");

setBounceParams 设置弹动参数

uexWindow.setBounceParams(type,status)

说明:
设置弹动参数,用于自定义view样式

参数:

参数名称参数类型是否必选说明
typeNumber弹动的位置,0:顶端弹动;1:底部弹动
statusStringjson格式的字符串

status中字段的说明

参数是否必须说明
imagePath下拉状态小图标的路径,只支持res:// 格式。路径协议详见CONSTANT中Pathtypes
textColor展示下拉状态文字的颜色,如:”#ffffff”
levelText显示的二级文字,如:“上次更新时间:xxxxx”。
pullToReloadText开始拖动直到超过刷新临界线之前显示的文字,如:“拖动刷新”
releaseToReloadText拖动超过刷新临界线后显示的文字,如:“释放刷新”
loadingText拖动超过刷新临界线并且释放拖动,进入刷新状态时显示的文字,如:“加载中,请稍等”
loadingImagePath等待状态loading小图标的路径,只支持res:// 格式(该字段为定制需求,默认无效)

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. var json='{"textColor":"#000","imagePath":"res://refesh_icon.png","levelText":"更新日期","pullToReloadText":"拖动到底部","releaseToReloadText":"释放回原处","loadingText":"更新中..."}';
  2. uexWindow.setBounceParams(0, json);

hiddenBounceView 隐藏弹动效果

uexWindow.hiddenBounceView(type)

说明:
隐藏弹动效果

参数:

参数名称参数类型是否必选说明
typeNumber弹动显示的部位,0:顶端;1:底部

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.hiddenBounceView(1);

topBounceViewRefresh 自动下拉刷新

uexWindow.topBounceViewRefresh()

说明:
下拉刷新初始化完成后,调用接口可达到自动下拉刷新效果,调用一次仅刷新一次。

参数:

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例

  1. uexWindow.topBounceViewRefresh();

setIsSupportSlideCallback 设置网页是否支持滑动的相关监听方法

uexWindow.setIsSupportSlideCallback(param)

说明:
因为网页在超过一屏的时候滑动会频繁回调,频繁回调会造成一定情况下的网页卡顿,因此增加该接口,默认屏蔽网页的滑动监听回调,若需要回调,则需要调用该接口。注意:若设置为支持滑动监听,则4.4以下系统手机会出偶现横竖屏切换之后滑动监听不生效的问题。滑动监听包括onSlipedUpwardonSlipedDownwardonSlipedUpEdgeonSlipedDownEdge

参数:

  1. var param = {
  2. isSupport://(必选)true:支持;false:不支持。默认为false。
  3. }

平台支持:
Android2.2+
iOS6.0+

版本支持:
Android 2015_10_16_01+

示例:

  1. var param = {
  2. isSupport:false
  3. };
  4. uexWindow.setIsSupportSlideCallback(JSON.stringify(param));

setIsSupportSwipeCallback 设置网页是否支持左右滑动的监听方法

uexWindow.setIsSupportSwipeCallback(param)

说明:
左右滑动监听包括onSwipeRightonSwipeLeft,主窗口浮动窗口分别调用之后,onSwipeRight、onSwipeRight左右监听方法才会生效。

参数:

  1. var param = {
  2. isSupport:true(支持);false(不支持)。必选,默认为false
  3. }

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.3.2+

示例:

  1. var param = {
  2. isSupport:true
  3. };
  4. uexWindow.setIsSupportSwipeCallback(JSON.stringify(param));
  5. uexWindow.onSwipeRight = function(){
  6. // appcan.window.close(-1);
  7. }
  8. uexWindow.onSwipeLeft = function(){
  9. // appcan.window.close(-1);
  10. }

disturbLongPressGesture 阻碍当前网页长按手势

uexWindow.disturbLongPressGesture(flag)

说明:

  • 解决iOS 9下长按屏幕会出现放大镜的问题

参数:

参数名称参数类型是否必选说明
flagNumber取值 0或者1或者2 ,详细说明见下

iOS:

  • flag == 0 取消阻碍长按手势
    • 在已设置阻碍长按手势的情况下,该flag会取消阻碍长按手势
  • flag == 1 正常阻碍长按手势
    • 设置此flag后,会阻碍网页的长按事件,不会出现长按选择框(复制/剪切/粘贴等操作)
    • 非iPhone6s 、iPhone 6s Plus 机型,设置此flag后已经不会出现放大镜
    • 由于iPhone6s、iPhone 6s Plus 有3D Touch功能,而此功能额外提供了一个3D Touch longPress的事件,此事件也会产生放大镜。因此这两款手机上用力长按屏幕时,仍然会产生放大镜。
  • flag == 2 严格阻碍长按手势
    • 设置此flag后,可以阻碍3D Touch longPress事件
    • 同时也会阻碍网页的onclick事件,但ontouchend事件不受影响
    • 建议用户将网页内的所有onclick事件替换成ontouchend事件后,再调用此flag完美解决长按屏幕会出现放大镜的问题

Android:

  • flag == 0 不阻碍长按手势
  • flag == 1 阻碍长按手势
  • flag == 2 与1相同,阻碍长按手势

平台支持:

Android2.2+
iOS9.0+

版本支持:

Android 3.3_160429_01+
iOS 3.2_20151021+

示例:

  1. uexWindow.disturbLongPressGesture(1);

reload 重载当前页面

uexWindow.reload();

说明



参数

平台支持

Android 2.2+
iOS 5.1.1+

版本支持

3.1.0+

示例

  1. uexWindow.reload();

createPluginViewContainer 创建插件容器

uexWindow.createPluginViewContainer(jsonStr);

说明:
创建插件容器,供插件将页面填充进去
可用于将插件中的原生View添加在此容器中,这个容器可以承载多个页面分别呈现不同的插件View,实现类似多浮动窗口的形式(但实际上不存在窗口)。适用于只需要使用大量的插件View来呈现复杂页面的场景,而不使用H5页面的模块。
补充:可用于插件容器接口的插件有分段选择器插件显示网页插件自定义布局列表插件
参数:

参数名称参数类型是否必选说明
jsonStrjson创建的插件容器的信息
  1. var jsonStr = {
  2. id:,//容器id
  3. x: ,//容器位置x坐标
  4. y: ,//容器位置y坐标
  5. w: ,//容器位置w宽度
  6. h: //容器位置h高度
  7. };

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.1.0+

示例:

  1. var params = {
  2. "id":"998",
  3. "x": 100,
  4. "y": 1064,
  5. "w":1200,
  6. "h":1600
  7. };
  8. uexWindow.createPluginViewContainer(JSON.stringify(params));

closePluginViewContainer 关闭插件容器

uexWindow.closePluginViewContainer(jsonStr);

说明:
关闭插件容器
参数:

参数名称参数类型是否必选说明
jsonStrjson关闭的插件容器的信息
  1. var jsonStr = {
  2. id : //容器id
  3. };

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.1.0+

示例:

  1. var params = {
  2. "id":"998"
  3. };
  4. uexWindow.closePluginViewContainer(JSON.stringify(params));

showPluginViewContainer 显示插件容器

uexWindow.showPluginViewContainer(jsonStr);

说明:
显示隐藏的插件容器

参数:

参数名称参数类型是否必选说明
jsonStrjson显示的插件容器的信息
  1. var jsonStr = {
  2. id : //容器id
  3. };

平台支持:
Android2.2+

版本支持:
3.1.0+

示例:

  1. var params = {
  2. "id":"998"
  3. };
  4. uexWindow.showPluginViewContainer(JSON.stringify(params));

hidePluginViewContainer 隐藏插件容器

uexWindow.hidePluginViewContainer(jsonStr);

说明:
隐藏插件容器
参数:

参数名称参数类型是否必选说明
jsonStrjson隐藏的插件容器的信息
  1. var jsonStr = {
  2. id : //容器id
  3. };

平台支持:
Android2.2+

版本支持:
3.1.0+

示例:

  1. var params = {
  2. "id":"998"
  3. };
  4. uexWindow.hidePluginViewContainer(JSON.stringify(params));

setPageInContainer 设置插件容器当前要显示的页面

uexWindow.setPageInContainer(jsonStr);

说明

设置插件容器当前要显示的页面

参数

参数名称参数类型是否必选说明
jsonStrjson设置当前展示容器的信息
  1. var jsonStr = {
  2. id : ,//容器id
  3. index ://要显示页面index
  4. };

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.1.0+

示例:

  1. var params = {
  2. id :"998"
  3. index : 1
  4. };
  5. uexWindow.setPageInContainer(JSON.stringify(params));

setSwipeCloseEnable 设置当前页面是否支持手势侧滑关闭

uexWindow.setSwipeCloseEnable(jsonStr)

说明:

允许在打开窗口设置flag1024开启侧滑关闭功能后,禁止或者重新允许当前页面是否支持手势侧滑关闭
注意:仅对支持手势侧滑关闭的window有效!

参数:

jsonStr是JSON字符串,具体格式如下

  1. var jsonStr = {
  2. enable: ,//Number,必选。传0表示禁止手势侧滑关闭,传1表示允许手势侧滑关闭
  3. };

示例:

  1. var params = {
  2. enable:0,
  3. };
  4. var paramStr = JSON.stringify(params);
  5. uexWindow.setSwipeCloseEnable(paramStr);

平台支持:

Android 2.2+
iOS 6.0+

版本支持:

3.2.0+

putLocalData 存放本地数据

uexWindow.putLocalData(key,value)

说明:

持久化存储数据,App被卸载时,数据会被清空。如果需要永久存储数据,请使用文件存储。

参数:
key:String 类型

value:String 类型

示例:

  1. uexWindow.putLocalData('name''appcan');

平台支持:

Android 2.2+
iOS 6.0+

版本支持:

3.3.0+

getLocalData 获取本地存储的数据

uexWindow.getLocalData(key)

说明:

持久化存储数据,App被卸载时,数据会被清空。如果需要永久存储数据,请使用文件存储。

参数:
key:String 类型

示例:

  1. var name=uexWindow.getLocalData('name');
  2. console.log(name);

平台支持:

Android 2.2+
iOS 6.0+

版本支持:

3.3.0+

2.4 回调方法

cbConfirm 弹出confirm对话框的回调方法

uexWindow.cbConfirm(opId,dataType,data)

参数:

参数名称参数类型是否必选说明
opIdNumber操作ID,此方法中不起作用
dataTypeNumber参数类型详见CONSTANT中Callback dataType数据类型
dataNumber返回的数据,用户点击的按钮索引

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. function cbConfirm(opId, dataType, data){
  2. alert('选择了' + data);
  3. }
  4. window.uexOnload = function(type){
  5. uexWindow.cbConfirm = cbConfirm;
  6. }

cbPrompt 弹出prompt对话框的回调方法

uexWindow.cbPrompt(opId,dataType,data)

参数:

参数名称参数类型是否必选说明
opIdNumber操作ID,此方法中不起作用
dataTypeNumber参数类型详见CONSTANT中Callback dataType数据类型
dataString返回用户点击对话框上的按钮索引及输入框中的值,json格式为 {“num”:”0”,”value”:”xxx”}

data中各字段含义如下:

参数是否必须说明
num索引
value输入框中的值

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. function cbPrompt(opId, dataType, data){
  2. alert(data);
  3. }
  4. window.uexOnload = function(type){
  5. uexWindow.cbPrompt = cbPrompt;
  6. }

cbActionSheet 弹出菜单列表的回调方法

uexWindow.cbActionSheet(opId,dataType,data)

参数:

参数名称参数类型是否必选说明
opIdNumber操作ID,此方法中不起作用
dataTypeNumber参数类型详见CONSTANT中Callback dataType数据类型
dataNumber返回的数据,用户点击的按钮索引

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. function actionSheet(){
  2. uexWindow.actionSheet("菜单","Cancel","Opt1,Opt2,Opt3,Opt4,Opt5,Opt6");
  3. }
  4. function cbActionSheet(opId, dataType, data){
  5. alert(data);
  6. }
  7. window.uexOnload = function(type){
  8. uexWindow.cbActionSheet = cbActionSheet;
  9. }

cbGetState 获取窗口是否处于前台的回调方法

uexWindow.cbGetState(opId,dataType,data)

参数:

参数名称参数类型是否必选说明
opIdNumber操作ID,此方法中不起作用
dataTypeNumber参数类型详见CONSTANT中Callback dataType数据类型
dataNumber返回的数据,0:前台;1:后台

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

cbPageBack 返回到上一个页面的回调方法

uexWindow.cbPageBack(opId,dataType,data)

参数:

参数名称参数类型是否必选说明
opIdNumber操作ID,此方法中不起作用
dataTypeNumber参数类型详见CONSTANT中Callback dataType数据类型
dataNumber返回结果,0:成功;1:失败

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

cbPageForward 前进到下一个页面的回调方法

uexWindow.cbPageForward(opId,dataType,data)

参数:

参数名称参数类型是否必选说明
opIdNumber操作ID,此方法中不起作用
dataTypeNumber参数类型详见CONSTANT中Callback dataType数据类型
dataNumber返回结果,0:成功;1:失败

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

cbOpenMultiPopover 打开多页面浮动窗口的回调方法

uexWindow.cbOpenMultiPopover(opId,dataType,data)

参数:

参数名称参数类型是否必选说明
opIdNumber操作ID,此方法中不起作用
dataTypeNumber参数类型详见CONSTANT中Callback dataType数据类型
dataString返回当前选择的浮动窗口页面的数据,json格式如下: {“multiPopName”:”name”,”multiPopSelectedIndex”:”index”}

data字符串中各字段含义如下:

参数是否必须说明
multiPopName多页面浮动窗口的名字
multiPopSelectedIndex子页面窗口索引

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

cbGetUrlQuery 获取参数时的回调方法

uexWindow.cbGetUrlQuery(opId,dataType,data)

参数:

参数名称参数类型是否必选说明
opIdNumber操作ID,此方法中不起作用
dataTypeNumber参数类型详见CONSTANT中Callback dataType数据类型
dataNumber返回的数据

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

cbBounceState 获取网页弹动状态的回调方法

uexWindow.cbBounceState(opId,dataType,data)

参数:

参数名称参数类型是否必选说明
opIdNumber操作ID,此方法中不起作用
dataTypeNumber参数类型详见CONSTANT中Callback dataType数据类型
dataNumber0:关闭;1:开启

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

cbCreatePluginViewContainer 容器创建成功的回调方法

uexWindow.cbCreatePluginViewContainer (opId,dataType,data)

参数:

参数名称参数类型是否必选说明
opIdNumber创建成功的容器id
dataTypeNumber参数类型详见CONSTANT中Callback方法数据类型
dataString返回的数据,success 创建成功

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.1.0+

示例:

  1. window.uexOnload = function(type){
  2. uexWindow.cbCreatePluginViewContainer = function(opId, dataType, data){
  3. alert("cbCreatePluginViewContainer: " + data );
  4. }
  5. }

cbClosePluginViewContainer 容器关闭成功的回调方法

uexWindow.cbClosePluginViewContainer(opId,dataType,data)

参数:

参数名称参数类型是否必选说明
opIdNumber被关闭的容器id
dataTypeNumber参数类型详见CONSTANT中Callback方法数据类型
dataString返回的数据,success 容器关闭成功

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.1.0+

示例:

  1. window.uexOnload = function(type){
  2. uexWindow.cbClosePluginViewContainer = function(opId, dataType, data){
  3. alert("cbClosePluginViewContainer: " + data );
  4. }
  5. }

onPluginContainerPageChange容器页面切换回调

uexWindow.onPluginContainerPageChange(opId,dataType,data)

参数:

参数名称参数类型是否必选说明
opIdNumber页面切换的容器id
dataTypeNumber参数类型详见CONSTANT中Callback方法数据类型
dataNumber容器当前显示页面的index

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.1.0+

示例:

  1. window.uexOnload = function(type){
  2. uexWindow.onPluginContainerPageChange= function(opId, dataType, data){
  3. alert("onPluginContainerPageChange: " + data );
  4. }
  5. }

cbSlidingWindowState 获取侧滑窗口显示情况的回调方法

uexWindow.cbSlidingWindowState(state)

参数:

参数名称参数类型是否必选说明
stateNumber返回的显示情况,0:左侧菜单显示;1:主界面显示;2:右侧菜单显示

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

2.5 监听方法

uexOnload 网页加载完成时的回调方法

window.uexOnload(type)

参数:

参数名称参数类型是否必选说明
typeNumber当前加载完毕View的类型。0:主窗口或者浮动窗口(即代表自己);1:上个slibing;2:下个slibing

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例

  1. window.uexOnload = function(type){
  2. }

onSlipedUpward 上滑的监听方法,内容超过一屏时有效

uexWindow.onSlipedUpward()

参数:

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例

  1. uexWindow.onSlipedUpward = function(){
  2. console.log('onSlipedUpward');
  3. }

onSlipedDownward 下滑的监听方法,内容超过一屏时有效

uexWindow.onSlipedDownward()

参数:

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例
类似onSlipedUpward

onSlipedUpEdge 滑到顶部的监听方法,内容超过一屏时有效

uexWindow.onSlipedUpEdge()

参数:

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例
类似onSlipedUpward

onSlipedDownEdge 滑到底部的监听方法,内容超过一屏时有效

uexWindow.onSlipedDownEdge()

参数:

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例
类似onSlipedUpward

onAnimationFinish 动画执行完成的监听方法,只对浮动窗口有效

uexWindow.onAnimationFinish()

参数:

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.onAnimationFinish = onAnimationFinish;
  2. function onAnimationFinish() {
  3. uexWindow.alert("应用名称","动画完毕","ok");
  4. }

onSetWindowFrameFinish 当前窗口位置移动完成的监听方法

uexWindow.onSetWindowFrameFinish()

参数:

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. window.uexOnload = function(type){
  2. uexWindow.onSetWindowFrameFinish = onSetWindowFrameFinish;
  3. }
  4. function onSetWindowFrameFinish(){
  5. alert('移动完成!');
  6. }

onSwipeRight 向右滑动的监听方法

uexWindow.onSwipeRight()
说明:
使用之前需调用setIsSupportSwipeCallback设置当前网页是否支持滑动,主窗口浮动窗口分别调用之后,onSwipeRight、onSwipeRight左右监听方法才会生效。
参数:

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.onSwipeRight = function(){
  2. console.log('onSwipeRight');
  3. }

示例:
参考setIsSupportSwipeCallback

onSwipeLeft 向左滑动的监听方法

uexWindow.onSwipeLeft()
说明:
使用之前需调用setIsSupportSwipeCallback设置当前网页是否支持滑动,主窗口浮动窗口分别调用之后,onSwipeRight、onSwipeRight左右监听方法才会生效。
参数:

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+
示例:
参考setIsSupportSwipeCallback

onBounceStateChange 弹动状态改变的监听方法

uexWindow.onBounceStateChange(type,state)

参数:

参数名称参数类型是否必选说明
typeNumber对应的部位值,0:网页顶端;1:网页底部
stateNumber状态值,0:滑动事件开始;1:刷新事件开始;2:滑动事件结束

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例

  1. uexWindow.onBounceStateChange = onBounceStateChange;
  2. function onBounceStateChange(type, state){
  3. switch(type) {
  4. case 0:
  5. if (state == 2) {
  6. uexWindow.resetBounceView("0");
  7. }
  8. break;
  9. case 1:
  10. if (state == 2) {
  11. uexWindow.resetBounceView("1");
  12. }
  13. break;
  14. }
  15. }

onGlobalNotification 全局消息的监听方法

uexWindow.onGlobalNotification(data)

参数:

参数名称参数类型是否必选说明
dataString消息,postGlobalNotification发送的消息数据

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. window.uexOnload = function(type){
  2. uexWindow.onGlobalNotification = onGlobalNotification;
  3. }
  4. function onGlobalNotification(ret){
  5. console.log("index:"+ret);
  6. }

onKeyPressed 按键事件的监听方法

uexWindow.onKeyPressed (keyCode)

参数:

参数名称参数类型是否必选说明
keyCodeString按键的值,0:返回键;1:菜单键

平台支持:
Android2.2+
版本支持:
3.0.0+

示例:

  1. uexWindow.onKeyPressed =function(keyCode){
  2. console.log(keyCode);
  3. }

onStateChange 窗口前后台状态变化的监听方法

uexWindow.onStateChange(state)

参数:

参数名称参数类型是否必选说明
stateString状态值,0:回到前台;1:压入后台

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.onStateChange=function(state){
  2. console.log(state);
  3. }

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

uexWindow.onPopoverLoadFinishInRootWnd(name,url)

参数:

参数名称参数类型是否必选说明
nameString浮动窗口的名称
urlString浮动窗口的url;当浮动窗口加载的是本地网页时,url返回网页的绝对路径(file:// 开头)当浮动窗口加载的是网络上的网页时,url返回网址(http:// 开头)

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.0.0+

onSlidingWindowStateChanged 侧滑菜单状态改变的监听方法

uexWindow.onSlidingWindowStateChanged(state)

参数:

参数名称参数类型是否必选说明
stateNumber返回的显示情况,0:左侧菜单显示;1:主界面显示;2:右侧菜单显示

平台支持:
Android2.2+
iOS6.0+

版本支持:
3.3.2+

示例:

  1. uexWindow.onSlidingWindowStateChanged=function(state){
  2. console.log(state);
  3. }

3 术语表

WindowAnimationId 窗口动画Id

基础动画

  • uex.cWindowAnimationNone=0 // 无动画
  • uex.cWindowAnimationLeftToRight=1//由左往右推入
  • uex.cWindowAnimationRightToLeft=2//由右往左推入
  • uex.cWindowAnimationUpToDown=3//由上往下推入
  • uex.cWindowAnimationDownToUp=4//由下往上推入
  • uex.cWindowAnimationFadeOutFadeIn=5//淡入淡出
  • uex.cWindowAnimationLeftFlip=6//左翻页(android暂不支持)
  • uex.cWindowAnimationRigthFlip=7//右翻页(android暂不支持)
  • uex.cWindowAnimationRipple=8//水波纹(android暂不支持)
  • uex.cWindowAnimationLeftToRightMoveIn=9//由左往右切入
  • uex.cWindowAnimationRightToLeftMoveIn=10//由右往左切入
  • uex.cWindowAnimationTopToBottomMoveIn=11//由上往下切入
  • uex.cWindowAnimationBottomToTopMoveIn=12//由下往上切入

以下为close专用,与9,10,11,12对应:

  • uex.cWindowAnimationLeftToRightReveal=13//由左往右切出,与10对应
  • uex.cWindowAnimationRightToLeftReveal=14//由右往左切出,与9对应
  • uex.cWindowAnimationTopToBottomReveal=15//由上往下切出,与12对应
  • uex.cWindowAnimationBottomToTotextareaveal=16//由下往上切出,与11对应

Circle Zoom 效果 (仅iOS)

  • uex.cWindowAnimationCircleZoomAtCenter =101
    • 打开页面时,以页面中心为圆心,页面按圆形轮廓展开
    • 关闭页面时,以页面中心为圆心,页面按圆形轮廓收缩
  • uex.cWindowAnimationCircleZoomAtLeftTop =102 //同上,但是圆心位于页面左上角
  • uex.cWindowAnimationCircleZoomAtRightTop =103 //同上,但是圆心位于页面右上角
  • uex.cWindowAnimationCircleZoomAtLeftBottom =104 //同上,但是圆心位于页面左下角
  • uex.cWindowAnimationCircleZoomAtRightBottom =105 //同上,但是圆心位于页面右下角

Bounce效果(仅iOS)

  • uex.cWindowAnimationBounceFromLeft = 106
    • 页面从左侧弹入
    • 使用此动画时,传入的动画时间animDutarion无效,需通过配置extras里的bounciness和speed来控制动画时间
  • uex.cWindowAnimationBounceFromTop = 107//同上,但页面从顶端弹入
  • uex.cWindowAnimationBounceFromRight = 108//同上,但页面从右侧端弹入
  • uex.cWindowAnimationBounceFromBottom = 109//同上,但页面从底端弹入
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号