本文档部分API缺少示例代码,诚挚的邀请你参与到示例代码的编写中来,你可以在代码中发布2行自定义注释,内容自拟。 有意者可与刺鸟联系(QQ:4041990 Q群:7702175)

API简介

    uexWindow,即多窗口机制对象,是AppCan区别于同类产品的最大特点,也是为了提高Hybrid App用户体验的关键点所在。利用AppCan平台去开发App,应该对此对象的功能有比较深的了解,以便开发出体验效果较好的App。

接口说明

方法说明
uexWindow.open(inWndName,inDataType,inData,inAniID,inWidth,inHeight,inFlag[,animDuration])Open一个新窗口,用于开启一个新的主窗口,如果窗口名字相同,则会覆盖相同窗口名字的页面内容。
uexWindow.close(inAnimiId[,animDuration])关闭当前处于屏幕上的window,非当前屏幕上的窗口不能调用此函数,在主窗口中调用此方法,会把主窗口关闭并且关闭附属的浮动窗口,如果在浮动窗口中执行,则关闭当前浮动窗口。在多窗口的说明方法中,比如窗口三的"返回"按钮,就用到了此方法。
uexWindow.evaluateScript(inWindowName,inType,inScript)根据inWindowName指定window执行JS脚本。
uexWindow.loadObfuscationData(inUrl)加载加密过的网页,网页如何加密,请下载【AppCan HTML 加密工具】。
uexWindow.back( )当前window的history back,在手机的webkit中,存在一个Bug,当A.html跳转到B.html,B.html跳转到C.html,那么,用自带的history.back(),从C返回到B,B再返回的话,会返回到C,即陷入死循环。
uexWindow.forward( )当前window的history.forward()的替代方案,原因跟uexWindow.back类似。。
uexWindow.windowBack(inAnimitionID[,animDuration])在多窗口机制中,用于返回上一个window,比如在A window中uexWindow.open了B window,那么在B window中返回A window就可使用此方法。
uexWindow.windowForward(inAnimitionID[,animDuration])在多窗口机制中,前进到下一个window。
uexWindow.alert(inTitle,inMessage,inButtonLable)弹出一个只包含确定按钮的模态对话框。
uexWindow.confirm(inTitle,inMessage,inButtonLables)弹出一个至少包含一个至多包含3个按钮的模态对话框。
uexWindow.cbConfirm(opId,dataType,data)uexWindow.confirm的回调方法。
uexWindow.prompt(inTitle,inMessage,inDefaultValue,inButtonLables)弹出一个包含两个按钮且带输入框的模态对话框。
uexWindow.cbPrompt(opId,dataType,data)uexWindow.prompt的回调方法。
uexWindow.toast(inType,inLocation,inMsg,inDuration)弹出一个非模态的消息提示框,可指定位置。
uexWindow.closeToast( )关闭消息提示框。
uexWindow.actionSheet(inTitle,inCancel,inButtonLables)弹出一个包含一组选择按钮的对话框。对话框从设备屏幕底部自下而上弹出,并且最终停靠在屏幕底部。取消按钮也属于按钮组的一部分,因此,返回的按钮索引将大于等于0,小于等于inButtonLables的长度。
uexWindow.cbActionSheet(opId,dataType,data)uexWindow.actionSheet的回调方法。
uexWindow.getState( )获取当前脚本(Javascript)运行的window处于前台还是后台【支持同步】。
uexWindow.cbGetState(opId,dataType,data)uexWindow.getState的回调方法。
uexWindow.onStateChange(state)当window由前台转入后台,或由后台进入前台时的通知函数。window切换或是widget切换,都会触发此函数。须在页面当中实现此函数才有效。
uexWindow.onOAuthInfo(windowName,url)当OAuth(于用验证授权等)类别的window窗口的url变化时的通知函数。  此方法多用于第三方开放平台Oauth验证,用于监听授权界面的url变化,从而获取用户授权后第三方平台返回的access_token.比如以下示例,是用于新浪微博Oauth2.0验证,index_content.html加载新浪微博授权页面;在index.html主窗口中监听浮动窗口index_content.html的url变化
uexWindow.setReportKey(inKeyCode,inEnable)设置当前页面是否拦截某个按键(android平台专用),设置只对当前页面有效,页面切换后立即失效。    一般在App的首页,android上点击返回按钮,会提示退出是否应用。因此,在起始页,常见的利用此方法监听返回按钮事件:
uexWindow.onKeyPressed(keyCode)监听拦截的按键(android平台专用)。    参考uexWindow.setReportKey
uexWindow.openPopover(inPopName,inDataType,inUrl,inData,inX,inY,inWidth,inHeight,inFontSize,inFlag)在当前window 中Open一个浮动窗口。    参考uexWindow.onOAuthInfo中index.html代码
uexWindow.preOpenStart( )开始popOver(浮动窗口)的预加载。即一个窗口中需要有多个浮动窗口,可以让这些浮动窗口预先加载出来。其执行过程:A窗口打开B窗口,B窗口中需要预加载多个浮动窗口。那么A窗口中执行uexWindow.open时,其flag参数需要:uex.cWiondowFlagPreOpen = 64配合使用,即open时有此flag,B窗口方可使用预加载。 此时在B窗口中,会等所有预加载的浮动窗口都加载完毕(不包括异步获取网络数据),方才显示B窗口。 预加载的浮动窗口的开启函数,即uexWindow.openPopover,需要放置于uexWindow.preOpenStart和uexWindow.preOpenFinish之间。    在A窗口中,首先open窗口B,在B窗口中,预加载多个浮动窗口:
uexWindow.preOpenFinish( )结束popOver(浮动窗口)的预加载。    参考uexWindow.preOpenStart
uexWindow.closePopover(inPopName)关闭当前window中指定name的Popover,在主窗口中使用。
uexWindow.setPopoverFrame(inPopName,inX,inY,inWidth,inHeight)更改指定name的Popover的位置和大小。
uexWindow.bringToFront( )将当前popOver(浮动窗口)排到所有popOver(浮动窗口)的最上面。此接口只能在popOver(浮动窗口)中调用。
uexWindow.sendToBack( )将当前popOver(浮动窗口)排到所有popOver(浮动窗口)的最下面。此接口只能在popOver(浮动窗口)中调用。
uexWindow.insertAbove(inName)将当前popOver(浮动窗口)插入到指定popOver(浮动窗口)之上。此接口只能在popOver(浮动窗口)中调用。
uexWindow.insertBelow(inName)将当前popOver(浮动窗口)插入到指定popOver(浮动窗口)之下。此接口只能在popOver(浮动窗口)中调用。
uexWindow.insertPopoverAbovePopover(inNameA,inNameB)将popOver(浮动窗口) A插入到popOver(浮动窗口) B之上。此接口只能在主window中调用。
uexWindow.insertPopoverBelowPopover(inNameA,inNameB)将popOver (浮动窗口)A插入到popOver(浮动窗口) B之下。此接口只能在主window中调用。
uexWindow.bringPopoverToFront(inName)将指定的popOver(浮动窗口)排至所有popOver(浮动窗口)的最上面。此接口只能在主window中调用。
uexWindow.sendPopoverToBack(inName)将指定的popOver(浮动窗口)排至所有popOver(浮动窗口)的最下面。此接口只能在主window中调用。
uexWindow.evaluatePopoverScript(inWndName,inPopName,inScript)指定window中的名为inPopName的浮动窗口执行js脚本。    这里与浮动窗口动画结合起来解释下使用方式:在主窗口中,先开一个浮动窗口pop,让其处于屏幕左侧外面;在主窗口中有一按钮,触发后执行让pop从左往右的动作。而在pop窗口中,有一按钮,触发后会把当前pop窗口移出左侧到屏幕外
uexWindow.beginAnimition( )开始设置Popover(浮动窗口)动画的相关参数。    参考uexWindow.evaluatePopoverScript
uexWindow.setAnimitionDelay(inDelay)设定Popover(浮动窗口)动画的延迟执行时间。    参考uexWindow.evaluatePopoverScript
uexWindow.setAnimitionDuration(inDuration)设定Popover(浮动窗口)动画的持续时间。    参考uexWindow.evaluatePopoverScript
uexWindow.setAnimitionCurve(inCurve)设定Popover(浮动窗口)的曲线类型。
uexWindow.setAnimitionRepeatCount(inCount)设定Popover(浮动窗口)动画的重复次数。    参考uexWindow.evaluatePopoverScript
uexWindow.setAnimitionAutoReverse(inReverse)设定Popover(浮动窗口)是否在动画结束后恢复成动画前的位置或状态。
uexWindow.makeTranslation(inToX,inToY,inToZ)设定Popover(浮动窗口)的Translation动画。Android上暂不支持Z轴平移。    参考uexWindow.evaluatePopoverScript
uexWindow.makeScale(inToX,inToY,inToZ)设定Popover(浮动窗口)的Scale动画。
uexWindow.makeRotate(inDegrees,inX,inY,inZ)设定Popover(浮动窗口)的Rotate动画。目前只支持绕Z轴旋转。且android平台旋转后将会恢复原来的状态。
uexWindow.makeAlpha(inAlpha)设定Popover(浮动窗口)的透明度。
uexWindow.commitAnimition( )提交已设置好相关参数的动画,当前Popover(浮动窗口)动画开始。所有参数的设置仅一次有效,动画完了后将清除。    参考uexWindow.evaluatePopoverScript
uexWindow.onAnimationFinish( )Popover(浮动窗口)动画完毕时的回调函数。    参考uexWindow.evaluatePopoverScript
uexWindow.setBounce(opId)指定当前浮动窗口是否可以有弹动效果。    在浮动窗口中,可以通过设置弹动属性,来实现下拉或上拉弹动刷新效果,并且可以设置执行动作过程中不同环节的文字信息:
uexWindow.showBounceView(inType,inColor,inFlag)指定顶端或者底部显示弹动效果。    参考uexWindow.setBounce
uexWindow.onBounceStateChange(type,state)当向下拉或上拉过程中,返回的通知函数。    参考uexWindow.setBounce
uexWindow.resetBounceView(inType)展示弹动效果结束后显示的网页,在uexWindow.onBounceStateChange中调用。    参考uexWindow.setBounce
uexWindow.hiddenBounceView(inType)隐藏弹动效果,调用该接口以后,则不会有uexWindow.onBounceStateChange方法回调。
uexWindow.notifyBounceEvent(inType,inStatus)注册接收弹动事件。    参考uexWindow.setBounce
uexWindow.setBounceParams(inType,inJson)指定顶端或者底部显示弹动效果参数。    参考uexWindow.setBounce
uexWindow.getUrlQuery( )android3.0后(含3.0)以及WP7上,浏览器引擎不支持加载沙箱当中带参数的url地址,如:"index.html?xx=aa&yy=bb"(若网页存放在sd卡上的则可以正常加载。)因此此方法是获取上当前页面加载时的参数,支持同步方式获取【注:此方法在Android3.0及以后,WP7上才会返回值,在IOS及android3.0以下版本可以使用此方法,但是返回空值】。
uexWindow.cbGetUrlQuery(opId,dataType,data)指定顶端或者底部显示弹动效果参数。
uexWindow.statusBarNotification(inTitle,inMsg)发送一个消息到设备的状态栏上。Android上,消息将在用户下拉点击后自动清除;Iphone上,5秒后消息自动清除,且当状态栏有消息时,消息块不支持屏幕旋转。
open(inWndName,inDataType,inData,inAniID,inWidth,inHeight,inFlag[,animDuration])
参数名称描述
inWndName窗口的名字。可为空,不可命名为"root"。当Window栈中已经存在名为inWindowName的window时,open函数将直接跳转至此 window,并用此window执行相关操作。
inDataType指定窗口载入的数据的类型,0表示url方式载入;1表示html内容方式载入,2表示既有url方式,又有html内容方式。
inData载入数据。
inAniID动画ID,查看常量表的Window Animi ID。
inWidth窗口宽度。接受不含小数的整数,百分数,可为空,默认为屏幕的宽度,。
inHeight窗口高度。接受不含小数的整数,百分数,可为空,默认为屏幕的高度。
inFlag详见常量表中Window Flags。如果此窗口有多重功能,即对应有多个Window Flags中的值,那么此参数可写为"1|2|4",或者"7"(1+2+4)。
animDuration可选参数。动画持续时长,单位为毫秒,默认250毫秒。
close(inAnimiId[,animDuration])
参数名称描述
inAnimiId动画ID,空值时为无动画,-1时代表Open时指定动画的方向动画。
animDuration动画持续时长,单位为毫秒,默认250毫秒。
evaluateScript(inWindowName,inType,inScript)
参数名称描述
inWindowNamewindow的名称,可为空,为空时默认为当前窗口。
inType窗口的类型,填写0即可,表示主窗口部分,详见window.uexOnload方法的解释。
inScriptjs脚本内容。
loadObfuscationData(inUrl)
参数名称描述
inUrl将加载的url,相对或者绝对url。
windowBack(inAnimitionID[,animDuration])
参数名称描述
inAnimitionID动画ID。
animDuration可选参数,动画持续时长,单位为毫秒,默认250毫秒
windowForward(inAnimitionID[,animDuration])
参数名称描述
inAnimitionID动画ID。
animDuration可选参数,动画持续时长,单位为毫秒,默认250毫秒
alert(inTitle,inMessage,inButtonLable)
参数名称描述
inTitle对话框标题。
inMessage对话内容。
inButtonLable显示在确定按钮上的文字。
confirm(inTitle,inMessage,inButtonLables)
参数名称描述
inTitle对话框标题。
inMessage对话内容。
inButtonLables显示在按钮上的文字的集合(数组形式)。
cbConfirm(opId,dataType,data)
参数名称描述
opId操作ID,在此函数中不起作用,可忽略
dataType返回数据的数据类型为uex.cInt(值为2)。
data返回的数据。用户点击的按钮索引(数组的索引)。
prompt(inTitle,inMessage,inDefaultValue,inButtonLables)
参数名称描述
inTitle对话框标题。
inMessage对话内容。
inDefaultValue输入框的默认值。
inButtonLables显示在按钮上的文字的集合(数组形式)。
cbPrompt(opId,dataType,data)
参数名称描述
opId操作ID,在此函数中不起作用,可忽略
dataType返回数据的数据类型为uex.cJSON (值为1)。
data返回用户点击模态对话框上的按钮索引及输入框中的值,格式为{"num":"0","value":"xxx"}。
toast(inType,inLocation,inMsg,inDuration)
参数名称描述
inType消息提示框显示的模式:0为没有进度条模式;1为有进度条模式。
inLocation消息提示框在手机屏幕显示的位置。输入1-9之外的值,默认为5。 inLocation值位置 1LEFT_TOP2TOP3RIGHT_TOP4LEFT5MIDDLE6RIGHT7BOTTOM_LEFT8BOTTOM9RIGHT_BOTTOM
inMsg要提示的内容。
inDuration提示框存在时间,小于等于零或者为空时,提示框一直存在,不自动关闭。
actionSheet(inTitle,inCancel,inButtonLables)
参数名称描述
inTitle对话框标题。
inCancel显示在取消按钮上的文本。
inButtonLables选择按钮组的文本内容,数组形式。
cbActionSheet(opId,dataType,data)
参数名称描述
opId操作ID,在此函数中不起作用,可忽略
dataType返回数据的数据类型为uex.cInt(值为2)。
data返回的数据。用户点击的按钮索引。
cbGetState(opId,dataType,data)
参数名称描述
opId操作ID,在此函数中不起作用,可忽略
dataType返回数据的数据类型为uex.cInt(值为2)。
data返回的数据。返回值0为前端,1为后端。
onStateChange(state)
参数名称描述
state状态值。int型数据,0为回到前台,1为压入后台。
onOAuthInfo(windowName,url)
参数名称描述
windowNamewindow 的name值。string型数据,由调用open函数时传入。
url相应的url值。
setReportKey(inKeyCode,inEnable)
参数名称描述
inKeyCode要拦截的键值,(在android中0表示返回键,1表示菜单键)。
inEnable是否拦截。1表示拦截,0表示不拦截。
onKeyPressed(keyCode)
参数名称描述
keyCode拦截的按键值。
openPopover(inPopName,inDataType,inUrl,inData,inX,inY,inWidth,inHeight,inFontSize,inFlag)
参数名称描述
inPopName窗口的名字。不可为空。当Window中已经存在名为inPopName的浮动窗口时,openPopover函数将直接跳转至此 Popover,并用此Popover执行相关操作。
inDataType指定窗口载入的数据的类型。0表示url方式载入;1表示html内容方式载入,2表示既有url方式,又有html内容方式。
inUrlurl类型数据。
inDatadata类型数据。
inXPopover在window中的x位置。
inYPopover在window中的y位置。
inWidthPopover的宽度。接受不含小数的整数,可为空,为空或0时,默认为window的宽度。
inHeightPopover的高度。接受不含小数的整数, 可为空, 为空或0时,默认为window的高度。
inFontSizePopover的全局默认字体大小。接受不含小数的整数。
inFlag标记。附录常量表中Window Flags。
closePopover(inPopName)
参数名称描述
inPopName已打开浮动窗口的name,不可为空。
setPopoverFrame(inPopName,inX,inY,inWidth,inHeight)
参数名称描述
inPopName已打开浮动窗口的name。
inX新的x位置。
inY新的y位置。
inWidth新的宽度。
inHeight新的高度。
insertAbove(inName)
参数名称描述
inName目标popOver的name。
insertBelow(inName)
参数名称描述
inName目标popOver的name。
insertPopoverAbovePopover(inNameA,inNameB)
参数名称描述
inNameApopover(浮动窗口) A的name。
inNameBpopover(浮动窗口) B的name。
insertPopoverBelowPopover(inNameA,inNameB)
参数名称描述
inNameApopover(浮动窗口) A的name。
inNameBpopover(浮动窗口) B的name。
bringPopoverToFront(inName)
参数名称描述
inName被指定的popOver(浮动窗口)的name。
sendPopoverToBack(inName)
参数名称描述
inName被指定的popOver(浮动窗口)的name。
evaluatePopoverScript(inWndName,inPopName,inScript)
参数名称描述
inWndNamePopover所在window的名称,可为空,为空时默认为当前窗口。
inPopNamePopover的name,不可为空。
inScriptjs脚本方法名。
setAnimitionDelay(inDelay)
参数名称描述
inDelay延迟执行的时间。单位为毫秒。默认为0,即立即执行。
setAnimitionDuration(inDuration)
参数名称描述
inDuration持续时间。单位为毫秒,大于等于0,默认为250毫秒。
setAnimitionCurve(inCurve)
参数名称描述
inCurve动画曲线类型,详见常量表中Window AnimCurveType。
setAnimitionRepeatCount(inCount)
参数名称描述
inCount重复次数,默认为0,即不重复。
setAnimitionAutoReverse(inReverse)
参数名称描述
inReverse是否恢复。0为false,1为true。默认为0。
makeTranslation(inToX,inToY,inToZ)
参数名称描述
inToX相对于当前位置的x轴方向上的平移距离,int型整数,负数或正数。
inToY相对于当前位置的y轴方向上的平移距离,int型整数,负数或正数。
inToZ相对于当前位置的z方向上的平移距离,int型整数,负数或正数。
makeScale(inToX,inToY,inToZ)
参数名称描述
inToX相对于当前大小的x轴方向上的放大倍率,大于0的float型数据。
inToY相对于当前大小的y轴方向上的放大倍率,大于0的float型数据。
inToZ相对于当前大小的z轴方向上的放大倍率,大于0的float型数据。
makeRotate(inDegrees,inX,inY,inZ)
参数名称描述
inDegrees相对于当前角度的旋转度数,int型的负数或正数。
inX是否绕X轴旋转。0为false,1为true。
inY是否绕Y轴旋转。0为false,1为true。
inY是否绕Z轴旋转。0为false,1为true。
makeAlpha(inAlpha)
参数名称描述
inAlpha相对于当alpha的值,0.0到1.0的float型数据。
setBounce(opId)
参数名称描述
opId其值为1表示可以支持弹动,为0或者不调用该接口,则不支持弹动。
showBounceView(inType,inColor,inFlag)
参数名称描述
inType其值为0表示支持网页顶端弹动,为1则支持网页底部弹动。
inColor弹动显示部位的颜色值。inColor 的值为 “#”3位,或者7位,以及,rgba()格式。
inFlagflag为1 ,则是显示内容,为0,则不显示。
onBounceStateChange(type,state)
参数名称描述
type对应的部位值,int型数据,0为窗口顶端,1为窗口底部。
state当type=0时,值0为向下拉,1为超越边界,2为向上返回到最初状态;当type=1时,0为向上拉,1为超越边界,2为向下返回到最初状态。
resetBounceView(inType)
参数名称描述
inType0为顶端恢复弹动,1为底部恢复弹动。
hiddenBounceView(inType)
参数名称描述
inType0为隐藏顶端弹动,1为隐藏底部弹动。
notifyBounceEvent(inType,inStatus)
参数名称描述
inType为0,则为顶端弹动,为1,则底部弹动。
inStatus0,则为不接收uexWindow.onBounceStateChange方法回调,为1,则接收。
setBounceParams(inType,inJson)
参数名称描述
inType为0,则为顶端弹动,为1,则底部弹动。
inJson要设置的参数。参数格式格式为json格式的字符串,例如:{"imagePath":"res://loading.png","textColor":"#aaa","levelText":"xxxx","pullToReloadText":"拖动刷新","releaseToReloadText":"释放刷新","loadingText":"加载中,请稍等"},说明如下:imagePath:下拉状态小图标的路径,只支持res://格式。textColor:展示下拉状态文字的颜色。支持的格式为"#"3位,或者7位,以及,rgba()格式。levelText:显示的二级文字,如:"上次更新时间:xxxxx"。pullToReloadText:开始拖动直到超过刷新临界线之前显示的文字,如:"拖动刷新"。releaseToReloadText:拖动超过刷新临界线后显示的文字,如:"释放刷新"。loadingText:拖动超过刷新临界线并且释放拖动,进入刷新状态时显示的文字,如:"加载中,请稍等"。
cbGetUrlQuery(opId,dataType,data)
参数名称描述
opId操作ID,在此函数中不起作用,可忽略。
dataType返回数据的数据类型为uex.cText(值为2)。
data返回的数据,如上述例子的"xx=aa&yy=bb"。
statusBarNotification(inTitle,inMsg)
参数名称描述
inTitle消息的标题。
inMsg消息的内容。