uexWindow

2018-10-09 11:42 更新

1、簡介

  窗口對象。窗口對象是實現多窗口機制的基本單元。使用窗口對象構建Hybrid App,在性能方面更加接近Native App的體驗。
AppCan平臺中,維護了一個窗口堆棧,每個窗口以唯一的窗口名字來區(qū)別。窗口名字是 通過uexWindow.open來賦值的。然而有一個窗口是比較特殊的,即加載起始頁的窗口,因為起始頁是由 config.xml中配置的,無法進行窗口名的賦值,因此,AppCan對加載起始頁的窗口統一命名為’root’,也就是說 ,其它通過uexWindow.open開啟的窗口,不能再命名為’root’。

1.1 window.uexOnload

  窗口加載完畢后平臺將觸發(fā)此方法。類比window.onload方法,都是html頁面加載完成 之后觸發(fā)的方法。區(qū)別是,window.uexOnload方法會晚于window.onload方法,原因是window.uexOnload需要等 待AppCan擴展對象,即’uex’前綴的對象初始化完畢。事件加載完成之后,可以安全的使用uex擴展對象。

1.2 浮動窗口

  主窗口之上可以有多個浮動窗口,即浮動窗口是附屬于某個主窗口的。主窗口關閉后, 其上所有浮動窗口也都會關閉。所有的窗口都有唯一的名字,通過uexWindow.open打開的是一個主窗口,浮動窗口則通過主窗口uexWindow.openPopover創(chuàng)建( 浮動窗口不可創(chuàng)建“openPopover”浮動窗口)。一個主窗口上的多個浮動窗口名字是唯一的,但不同主窗口上的浮動窗 口名字可以相同。浮動窗口可以有彈動效果,可以有數學變化:放大,旋轉,移動等。浮動窗口能夠解決的事情 很多,比如解決手機瀏覽器不支持局部DIV滾動, 上下拉刷新特效,抽屜特效等問題。

1.3多窗口之間的通訊

  窗口之間的通訊,比如從網絡獲取一個數據,根據返回的數據,讓其它窗口執(zhí)行相應的 變化,這就需要用到窗口間通訊機制。
  主窗口之間通訊: uexWindow.evaluateScript(winName, type, script)
  主窗口與浮動窗口之間通訊: uexWindow.evaluateScript(winName, type, script); uexWindow.evaluatePopoverScript(winName, type, script);
  最后一個參數script,是目標窗口的執(zhí)行腳本。腳本形參限定為數字和字符串。如果是 特殊字符和漢字,則無法傳遞,可以通過window.localStorage暫存數據,在執(zhí)行腳本的目標窗口中獲取 localStorage。

1.4 多窗口通訊之訂閱發(fā)布模式

  調用接口subscribeChannelNotification訂閱一個頻道,注冊監(jiān)聽函數。 在任何窗口(包括主窗口,浮動窗口,多頁面浮動窗口)調用publishChannelNotification接口發(fā)布消息,對應頻道的所有訂閱者,將收到消息,回調函數將被調用,并傳入相應的參數.

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應用,在應用執(zhí)行過程中加載本地網頁用。當dataType為0時,url支持相對路徑、 絕對路徑。其中,當url以“wgtroot://” 協議開頭時,支持從服務器網頁中打開本地應用沙箱中相應widget目錄下的網頁文件。 例如:當前窗口加載的是服務器上的http://www.xxx.com/xxx.html 網頁,如果在xxx.html頁面中open一個窗口時,傳入的data為“wgtroot://index.html”, 那么本次open執(zhí)行時,引擎將會到本應用沙箱目錄的widget路徑下去尋找此頁面, 例如Android上找到的路徑會是:file:///android_assert/widget/index.html 當dataType為1時,把相應html的內容傳進去(不建議)
animationIDNumber動畫ID,詳見術語表-WindowAnimationId 窗口動畫Id
wNumber窗口寬度,請傳0
hNumber窗口高度,請傳0
flagNumber窗口標記,默認傳空為0,詳見CONSTANT中其他標記的窗口屬性WindowFlags
animDurationNumber動畫持續(xù)時長,單位為毫秒,默認為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??梢杂糜?code style="box-sizing: border-box; font-family: Consolas, Monaco, courier, monospace; padding: 3px; margin-right: 0px; font-size: 14px; color: rgb(199, 37, 78); background-color: rgb(246, 246, 246); border: 1px solid rgb(221, 221, 221);">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動畫持續(xù)時長,單位為毫秒,默認為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,即陷入死循環(huán)。

參數:

平臺支持:
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動畫持續(xù)時長,單位為毫秒,默認為260毫秒

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

版本支持:
3.0.0+

windowBack 返回到上一個窗口

uexWindow.windowBack(inAnimitionID,inAnimDuration)

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

參數:

參數名稱參數類型是否必選說明
inAnimitionIDNumber動畫ID
inAnimDurationNumber動畫持續(xù)時長,單位為毫秒,默認250毫秒

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

setWindowFrame 移動當前窗口位置

uexWindow.setWindowFrame(x,y,animDuration)

說明:
移動當前Window相對屏幕的位置

參數:

參數名稱參數類型是否必選說明
xNumberx坐標
yNumbery坐標
animDurationNumber動畫持續(xù)時長,單位為毫秒,默認為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 執(zhí)行js腳本

uexWindow.evaluateScript(windName,type,js)

說明:
執(zhí)行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('執(zhí)行去吧??!');");

evaluatePopoverScript 在浮動窗口中執(zhí)行js腳本

uexWindow.evaluatePopoverScript(windName,popName,js)

說明:
在浮動窗口中執(zhí)行js腳本

參數:

參數名稱參數類型是否必選說明
windNameString窗口名稱,默認空為當前窗口(只能為主窗口、root窗口)
popNameString浮動窗口名稱
jsStringjs腳本內容

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

版本支持:
3.0.0+

示例:

  1. uexWindow.evaluatePopoverScript("", "sss", "alert('執(zhí)行去吧??!');");

evaluateMultiPopoverScript 在多頁面浮動窗口中執(zhí)行js腳本

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

說明:
在多頁面浮動窗口中執(zhí)行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創(chuàng)建,浮動窗口不可創(chuàng)建“openPopover”浮動窗口。
參數:

參數名稱參數類型是否必選說明
popNameString名稱
dataTypeNumber窗口載入的數據的類型,0:url方式載入;1:html內容方式載入;2:既有url方式, 又有html內容方式
urlStringurl類型數據,支持“wgtroot://” 協議頭,此協議頭用于某些將項目部署在服務器上的appcan應用,在應用執(zhí)行過程中 加載本地網頁用。當dataType為0時,url支持相對路徑、絕對路徑。其中,當url以“wgtroot://” 協議開頭時,支持從服務器網頁中打開本地應用沙箱中相應widget目錄下的網頁文件。 例如:當前窗口加載的是服務器上的http://www.xxx.com/xxx.html 網頁,如果在xxx.html頁面中open一個窗口時,傳入的data為“wgtroot://index.html” , 那么本次open執(zhí)行時,引擎將會到本應用沙箱目錄的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(浮動窗口)的預加載。即一個窗口中需要有多個浮動窗口,可以讓這些浮動窗口預先加載出來。其執(zhí)行過程:A窗口打開B窗口,B窗口中需要預加載多個浮動窗口。那么A窗口中執(zhí)行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 發(fā)送全局消息

uexWindow.postGlobalNotification(content)

說明:
發(fā)送全局消息,用于窗口之間的通信,調用該方法時,所有打開(通過調用uexWindow的open和openPopover方法)的窗口只要注冊過onGlobalNotification,都會被調用。

參數:

參數名稱參數類型是否必選說明
contentString發(fā)送的內容

平臺支持:
Android2.2+

版本支持:
3.0.0+

示例:
這里一共涉及到3個網頁,index.html,index1.html,index2.html,其中在index2.html中發(fā)送全局消息。代碼如下:
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 注冊接收消息通知的監(jiān)聽器

uexWindow.subscribeChannelNotification(channelId,functionName)

說明:
窗口之間的通信,可以通過發(fā)布/訂閱模式來實現。窗口調用此接口訂閱頻道監(jiān)聽,當在另一窗口調用publishChannelNotificationpublishChannelNotificationForJson時,對應此頻道的回調方法將被調用,并傳入相應的參數。

參數:

參數名稱參數類型是否必選說明
channelIdString頻道唯一標識符
functionNameString回調方法名稱

平臺支持:

Android2.2+
iOS 6.0+

版本支持:
3.0.0+

示例:
這里一共涉及到3個網頁,index.html,index1.html,index2.html,其中在index2.html中發(fā)送全局消息。代碼如下:
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 發(fā)布消息通知

uexWindow.publishChannelNotification(channelId,content)
說明:
發(fā)布消息通知,此頻道的所有訂閱者,將收到消息,回調函數將被調用,并傳入相應的參數.

參數:

參數名稱參數類型是否必選說明
channelIdString頻道唯一標識符
contentString發(fā)布的內容

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

示例:

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

publishChannelNotificationForJson 發(fā)布Json類型消息通知

uexWindow.publishChannelNotificationForJson(channelId,content)
說明:
發(fā)布消息通知,此頻道的所有訂閱者,將收到消息,回調函數將被調用,并傳入相應的參數.

參數:

參數名稱參數類型是否必選說明
channelIdString頻道唯一標識符
contentString發(fā)送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)

說明:
彈出包含兩個按鈕且?guī)л斎肟虻膶υ捒?/p>

參數:

參數名稱參數類型是否必選說明
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 創(chuàng)建全局對話框

uexWindow.createProgressDialog(title,msg,canCancel)

說明:

創(chuàng)建一個全局對話框,屏蔽用戶對界面的一切操作,可以定義是否模態(tài)。常見的用于獲取網絡數據,在請求過程中給個加載提示,數據加載完成時關閉提示。

參數:

參數名稱參數類型是否必選說明
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 隱藏狀態(tài)欄

uexWindow.hideStatusBar()

說明:
設置當前應用狀態(tài)欄隱藏,一般使用場景非全屏(線上打包狀態(tài)欄設置可選擇)下,當前應用有狀態(tài)欄

參數:

平臺支持:
iOS7.0+

版本支持:
3.0.0+

示例

  1. uexWindow.hideStatusBar();

showStatusBar 顯示狀態(tài)欄

uexWindow.showStatusBar()

說明:
設置當前應用狀態(tài)欄顯示,一般使用場景非全屏(線上打包狀態(tài)欄設置可選擇)下,當前應用有狀態(tài)欄

參數:

平臺支持:
iOS7.0+

版本支持:
3.0.0+

示例

  1. uexWindow.showStatusBar();

setStatusBarTitleColor 設置狀態(tài)條上字體的顏色

uexWindow.setStatusBarTitleColor(color)

說明:
設置狀態(tài)條上字體的顏色

參數:

參數名稱參數類型是否必選說明
colorNumber狀態(tài)條上字體的顏色,0為白色(iOS7以上為透明底,iOS7以下為黑底), 1為黑色(iOS7以上為透明底,iOS7以下為白底)

平臺支持:
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWindow.setStatusBarTitleColor(0);

statusBarNotification 發(fā)送消息到狀態(tài)欄

uexWindow.statusBarNotification(title,msg)

說明:
發(fā)送消息到狀態(tài)欄

參數:

參數名稱參數類型是否必選說明
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包名??膳cclassName搭配直接分享到某個應用。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)

說明:

用于引擎的啟動圖之后,動態(tài)加載自定義啟動畫面;
設置啟動圖路徑和時間(推薦采用本地路徑),下次啟動應用才會生效 。

參數:

params是JSON字符串,具體結構如下

  1. var params = {
  2. loadingImagePath:,//String,必選 啟動圖路徑,只支持"res://","wgt://"協議,當此字段傳空字符串("")時,代表取消自定義啟動圖,網絡地址圖片優(yōu)先建議下載到本地來設置啟動圖路徑;
  3. loadingImageTime:,//Number,當loadingImagePath非空時必選 啟動圖持續(xù)時間,單位毫秒
  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時就是關閉狀態(tài),請參考uexWindow.open

參數:

參數名稱參數類型是否必選說明
flagNumber是否開啟,0:關閉;1:開啟

平臺支持:

Android4.0+

版本支持:

3.2.0+

示例:

  1. uexWindow.setHardwareEnable(1);

setPopHardwareEnable 設置Popover的硬件加速功能

uexWindow.setPopHardwareEnable(name,flag)

說明:
開啟或關閉當前popover的硬件加速,用于解決網頁閃屏的問題,打開popover后調用。如果需要打開popover時就是關閉狀態(tài),請參考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 設置動畫延遲執(zhí)行時間

uexWindow.setAnimitionDelay(delay)

說明:
設置動畫延遲執(zhí)行時間,僅對浮動窗口有效

參數:

參數名稱參數類型是否必選說明
delayNumber延遲執(zhí)行的時間(單位:毫秒),默認為0

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

版本支持:
3.0.0+

示例:

  1. uexWindow.setAnimitionDelay(200)

setAnimitionDuration 設置動畫持續(xù)時間

uexWindow.setAnimitionDuration(duration)

說明:
設置動畫持續(xù)時間,僅對浮動窗口有效

參數:

參數名稱參數類型是否必選說明
durationNumber持續(xù)時間(單位:毫秒),默認為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 設置動畫結束后自動恢復位置和狀態(tài)

uexWindow.setAnimitionAutoReverse(isReverse)

說明:
設置動畫結束后自動恢復位置和狀態(tài),僅對浮動窗口有效

參數:

參數名稱參數類型是否必選說明
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 提交動畫設置并開始執(zhí)行動畫

uexWindow.commitAnimition()

說明:
提交動畫設置并開始執(zhí)行動畫,僅對浮動窗口有效,所有參數的設置僅一次有效,動畫完了后將清除。

參數:

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

版本支持:
3.0.0+

示例:

  1. uexWindow.commitAnimition();

getBounce 獲取網頁彈動狀態(tài)

uexWindow.getBounce()

說明:
獲取網頁彈動狀態(tài)

參數:

平臺支持:
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監(jiān)聽方法中調用該方法

參數:

參數名稱參數類型是否必選說明
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下拉狀態(tài)小圖標的路徑,只支持res:// 格式。路徑協議詳見CONSTANT中Pathtypes
textColor展示下拉狀態(tài)文字的顏色,如:”#ffffff”
levelText顯示的二級文字,如:“上次更新時間:xxxxx”。
pullToReloadText開始拖動直到超過刷新臨界線之前顯示的文字,如:“拖動刷新”
releaseToReloadText拖動超過刷新臨界線后顯示的文字,如:“釋放刷新”
loadingText拖動超過刷新臨界線并且釋放拖動,進入刷新狀態(tài)時顯示的文字,如:“加載中,請稍等”
loadingImagePath等待狀態(tài)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 設置網頁是否支持滑動的相關監(jiān)聽方法

uexWindow.setIsSupportSlideCallback(param)

說明:
因為網頁在超過一屏的時候滑動會頻繁回調,頻繁回調會造成一定情況下的網頁卡頓,因此增加該接口,默認屏蔽網頁的滑動監(jiān)聽回調,若需要回調,則需要調用該接口。注意:若設置為支持滑動監(jiān)聽,則4.4以下系統手機會出偶現橫豎屏切換之后滑動監(jiān)聽不生效的問題?;瑒颖O(jiān)聽包括onSlipedUpward,onSlipedDownward,onSlipedUpEdge,onSlipedDownEdge

參數:

  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 設置網頁是否支持左右滑動的監(jiān)聽方法

uexWindow.setIsSupportSwipeCallback(param)

說明:
左右滑動監(jiān)聽包括onSwipeRight,onSwipeLeft,主窗口浮動窗口分別調用之后,onSwipeRight、onSwipeRight左右監(jiān)聽方法才會生效。

參數:

  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 創(chuàng)建插件容器

uexWindow.createPluginViewContainer(jsonStr);

說明:
創(chuàng)建插件容器,供插件將頁面填充進去
可用于將插件中的原生View添加在此容器中,這個容器可以承載多個頁面分別呈現不同的插件View,實現類似多浮動窗口的形式(但實際上不存在窗口)。適用于只需要使用大量的插件View來呈現復雜頁面的場景,而不使用H5頁面的模塊。
補充:可用于插件容器接口的插件有分段選擇器插件、顯示網頁插件、自定義布局列表插件
參數:

參數名稱參數類型是否必選說明
jsonStrjson創(chuàng)建的插件容器的信息
  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 獲取網頁彈動狀態(tài)的回調方法

uexWindow.cbBounceState(opId,dataType,data)

參數:

參數名稱參數類型是否必選說明
opIdNumber操作ID,此方法中不起作用
dataTypeNumber參數類型詳見CONSTANT中Callback dataType數據類型
dataNumber0:關閉;1:開啟

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

版本支持:
3.0.0+

cbCreatePluginViewContainer 容器創(chuàng)建成功的回調方法

uexWindow.cbCreatePluginViewContainer (opId,dataType,data)

參數:

參數名稱參數類型是否必選說明
opIdNumber創(chuàng)建成功的容器id
dataTypeNumber參數類型詳見CONSTANT中Callback方法數據類型
dataString返回的數據,success 創(chuàng)建成功

平臺支持:
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 監(jiān)聽方法

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 上滑的監(jiān)聽方法,內容超過一屏時有效

uexWindow.onSlipedUpward()

參數:

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

版本支持:
3.0.0+

示例

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

onSlipedDownward 下滑的監(jiān)聽方法,內容超過一屏時有效

uexWindow.onSlipedDownward()

參數:

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

版本支持:
3.0.0+

示例
類似onSlipedUpward

onSlipedUpEdge 滑到頂部的監(jiān)聽方法,內容超過一屏時有效

uexWindow.onSlipedUpEdge()

參數:

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

版本支持:
3.0.0+

示例
類似onSlipedUpward

onSlipedDownEdge 滑到底部的監(jiān)聽方法,內容超過一屏時有效

uexWindow.onSlipedDownEdge()

參數:

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

版本支持:
3.0.0+

示例
類似onSlipedUpward

onAnimationFinish 動畫執(zhí)行完成的監(jiān)聽方法,只對浮動窗口有效

uexWindow.onAnimationFinish()

參數:

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

版本支持:
3.0.0+

示例:

  1. uexWindow.onAnimationFinish = onAnimationFinish;
  2. function onAnimationFinish() {
  3. uexWindow.alert("應用名稱","動畫完畢","ok");
  4. }

onSetWindowFrameFinish 當前窗口位置移動完成的監(jiān)聽方法

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 向右滑動的監(jiān)聽方法

uexWindow.onSwipeRight()
說明:
使用之前需調用setIsSupportSwipeCallback設置當前網頁是否支持滑動,主窗口浮動窗口分別調用之后,onSwipeRight、onSwipeRight左右監(jiān)聽方法才會生效。
參數:

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

版本支持:
3.0.0+

示例:

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

示例:
參考setIsSupportSwipeCallback

onSwipeLeft 向左滑動的監(jiān)聽方法

uexWindow.onSwipeLeft()
說明:
使用之前需調用setIsSupportSwipeCallback設置當前網頁是否支持滑動,主窗口浮動窗口分別調用之后,onSwipeRight、onSwipeRight左右監(jiān)聽方法才會生效。
參數:

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

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

onBounceStateChange 彈動狀態(tài)改變的監(jiān)聽方法

uexWindow.onBounceStateChange(type,state)

參數:

參數名稱參數類型是否必選說明
typeNumber對應的部位值,0:網頁頂端;1:網頁底部
stateNumber狀態(tài)值,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 全局消息的監(jiān)聽方法

uexWindow.onGlobalNotification(data)

參數:

參數名稱參數類型是否必選說明
dataString消息,postGlobalNotification發(fā)送的消息數據

平臺支持:
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 按鍵事件的監(jiān)聽方法

uexWindow.onKeyPressed (keyCode)

參數:

參數名稱參數類型是否必選說明
keyCodeString按鍵的值,0:返回鍵;1:菜單鍵

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

示例:

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

onStateChange 窗口前后臺狀態(tài)變化的監(jiān)聽方法

uexWindow.onStateChange(state)

參數:

參數名稱參數類型是否必選說明
stateString狀態(tài)值,0:回到前臺;1:壓入后臺

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

版本支持:
3.0.0+

示例:

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

onPopoverLoadFinishInRootWnd 浮動窗口加載完成的監(jiān)聽方法

uexWindow.onPopoverLoadFinishInRootWnd(name,url)

參數:

參數名稱參數類型是否必選說明
nameString浮動窗口的名稱
urlString浮動窗口的url;當浮動窗口加載的是本地網頁時,url返回網頁的絕對路徑(file:// 開頭)當浮動窗口加載的是網絡上的網頁時,url返回網址(http:// 開頭)

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

版本支持:
3.0.0+

onSlidingWindowStateChanged 側滑菜單狀態(tài)改變的監(jiān)聽方法

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

公眾號
微信公眾號

編程獅公眾號