天天看點

plus.webview.create( url, id, styles, extras )參數及說明

plus.webview.create(
    "xxx.html", //url:String類型,可選,新視窗加載的HTML頁面位址.新打開Webview視窗要加載的HTML頁面位址,可支援本地位址和網絡位址.
    "xxx", //id:String類型,可選,新視窗的辨別.視窗辨別可用于在其它頁面中通過getWebviewById來查找指定的視窗,為了保持視窗辨別的唯一性,應該避免使用相同的辨別來建立多個Webview視窗.如果傳入無效的字元串則使用url參數作為WebviewObject視窗的id值.
    { //styles: WebviewStyles類型,可選,建立Webview視窗的樣式(如視窗寬、高、位置等資訊)
        width: '100%', //String類型,視窗的寬度.支援百分比、像素值,預設為100%.未設定width屬性值時,可同時設定left和right屬性值改變視窗的預設寬度.
        height: '100%', //String類型,視窗的高度.支援百分比、像素值,預設為100%.當未設定height屬性值時,優先通過top和bottom屬性值來計算視窗的高度.
        left: '0px', //String類型,視窗水準向右的偏移量.支援百分比,像素值,預設值為0px.未設定left屬性值,優先通過right和width屬性值來計算視窗的left位置.
        right: '0px', //String類型,視窗水準向左的偏移量.支援百分比、像素值,預設無值(根據left和width屬性值來自動計算).當設定了left和width值時,忽略此屬性值;當未設定width值時,可通過left和bottom屬性值來确定視窗的寬度.
        top: '0px', //String類型,視窗垂直向下的偏移量.支援百分比、像素值,預設值為0px.未設定top屬性值時,優先通過bottom和height屬性值來計算視窗的top位置.
        bottom: '0px', //String類型,視窗垂直向上的偏移量.支援百分比,像素值,預設值無值(根據top和height屬性值來自動計算).當同時設定了top和height值時,忽略此屬性值;當未設定height值時,可通過top和bottom屬性值來确定視窗的高度.
        zindex: 0 //Number類型,視窗的堆疊順序值.擁有更高堆疊順序的視窗總是會處于堆疊順序較低的視窗的前面,擁有相同堆疊順序的視窗後調用show方法則在前面.
        margin: 'auto', //String類型,視窗的邊距.用于定位視窗的位置.auto:居中.若設定了left、right、top、bottom則對應的邊距值失效.
        background: '', //String類型,視窗的背景顔色.設定background為顔色值,視窗為獨占模式顯示(占整個螢幕區域).設定background為"transparent",則表示視窗背景透明,為非獨占模式.
        opacity: 1, //Number類型,視窗的不透明度.0為全透明,1為不透明,預設值為1,即不透明.安卓4.0以下不支援.
        mask: 'none', //String類型,視窗的遮罩.用于設定Webview視窗的遮罩層樣式,遮罩層會覆寫Webview中所有内容,包括子webview,并且截獲webview的所有觸屏事件,此時Webview視窗的點選操作會觸發maskClick事件.字元串類型,可取值:rgba格式字元串,定義純色遮罩層樣式,如"rgba(0,0,0,0.5)",表示黑色半透明; "none",表示不使用遮罩層; 預設值為"none",即無遮罩層.
        bounce: 'vertical', //String類型,視窗遇到邊框是否有反彈效果.none:沒有反彈效果.vertical:垂直方向有反彈效果.horizontal:水準方向有反彈效果.all:垂直和水準方向都有反彈效果.預設:none.
        bounceBackground: '', //String類型,視窗回彈效果區域的背景.視窗回彈效果區域背景可支援顔色值或圖檔.顔色值格式:"#RRGGBB".背景格式:"url(%image path%)",例如:"url(./icon.png)",圖檔采用平鋪模式繪制.安卓不支援.
        popGesture: 'close', //String類型,視窗的側滑傳回功能.none:無側滑傳回功能.close:側滑傳回關閉Webview視窗.hide:側滑傳回隐藏webview視窗.安卓5+環境不支援.
        scrollIndicator: 'none', //String類型,視窗是否顯示滾動條.all:垂直和水準滾動條都顯示.vertical:僅顯示垂直滾動條.horizontal:僅顯示水準滾動條.none:垂直和水準滾動條都不顯示.預設:all.注意:顯示滾動條的前提條件是視窗中的内容超過視窗顯示的寬或高.
        scrollsToTop: true, //Boolean類型,點選裝置的狀态欄時是否滾動傳回至頂部.true:點選裝置的狀态欄可以滾動傳回至頂部.false:點選裝置的狀态欄不可以.預設:true.在iPhone上有且隻有一個Webview視窗的scrollsToTop屬性值為true時才生效,是以在顯示和關閉Webview視窗時需動态更新所有Webview的scrollsToTop值,已確定此功能生效.安卓不支援.
        scalable: false, //Boolean類型,視窗是否可縮放.true:使用者可通過雙指操作放大或縮小頁面,此時html頁面可通過meta節點設定"name="viewport" content="user-scalable=no""來限制頁面不可縮放.false:使用者不可通過雙指操作放大或縮小頁面,即使頁面中的meta節點也無法開啟可縮放功能.預設:false.
        softinputMode: '', //String類型,彈出系統軟鍵盤模式.adjustPan:彈出軟鍵盤時Webview視窗自動上移,以保證目前輸入框可見.adjustResize:自動調整Webview視窗大小(螢幕區域減去軟鍵盤區域),同時自動滾動Webview保證輸入框可見.預設:adjustPan.安卓不支援.
        statusbar: {
            background: '#fff'
        }, //WebviewStatusbarStyles類型,視窗狀态欄樣式.僅在應用設定為沉浸式狀态欄樣式下有效,設定此屬性後将自動保留系統狀态欄區域不被Webview視窗占用(即Webview視窗非沉浸式樣式顯示).
        subNViews: [ //Array[ WebviewSubNViewStyles ]類型,定義視窗的原生子View控件.數組類型,可通過配置項設定原生子View控件,每個配置項對應添加一個原生子View控件.通過Webview視窗的getSubNViews()方法可擷取原生子View控件對象數組.http://www.html5plus.org/doc/zh_cn/webview.html#plus.webview.WebviewSubNViewStyles
            {
                id: '', //String類型,原生子View控件的辨別.可通過plus.nativeObj.View.getViewById(id)方法傳入此辨別來擷取子View控件對象.
                type: '', //String類型,原生子View控件類型.NView:原生子View控件(plus.nativeObj.NView).ImageSlider:原生圖檔輪播控件(plus.nativeObj.ImageSlider).預設:NView.
                styles: { //ViewStyles類型,原生子View控件的樣式.可設定原生控件的位置、大小等資訊.
                    backgroundColor: '', //String類型,區域背景顔色.顔色值格式為"#RRGGBB".預設值為透明區域.
                    bottom: '', //String類型,View控件垂直向上的偏移量.現對于父容器底部的距離,可取值:像素值,如"100px";百分比,如"10%",相對于父容器的高度,如果沒有父容器則相對于螢幕高度.當設定了top和height值時,忽略此屬性值;未設定height值時,可通過top和bottom屬性值來确定View控件的高度.
                    dock: '', //String類型,View控件的停靠方式.當Webview視窗添加到另外一個視窗中時,停靠方式才會生效,采用停靠方式添加會導緻原Webview視窗自動調整其大小避免其内容被子視窗蓋住.top:控件停靠則頁面頂部;bottom:底部;right:右側;left:控件停靠在頁面左側.預設:top.
                    height: '', //String類型,區域的高度.可取值:像素值,如"100px";百分比,如"10%",相對于父容器的高度,如果沒有父容器則相對于螢幕高度;内容自适應,如"wrap_content",根據内容計算控件的高度.預設值為"100%".
                    width: '', //String類型,區域的寬度.可取值:像素值,如"100px";百分比,如"10%",相對于父控件的寬度.
                    top: '', //String類型,View控件左上角的垂直偏移量.可取值:像素值,如"100px";百分比,如"10%",相對于父控件的高度;自動計算,如"auto",根據height值自動計算,相對于父控件垂直居中.
                    left: '', //String類型,區域左上角的水準偏移量.可取值:像素值,如"100px";百分比,如"10%",相對于父控件的寬度;自動計算,如"auto",根據width值自動計算,相對于父控件水準居中.預設:"0px".
                    opacity: '', //Number類型,View控件的不透明度.取值範圍為0-1,0為全透明,1為不透明,預設值為1,即不透明.
                    position: '', //String類型,View控件的排版方式.當Webview視窗添加到另外一個視窗中時,排版位置才會生效,排版位置決定子視窗在父視窗中的定位方式.static:控件在頁面中正常定位,如果頁面存在滾動條則随視窗内容滾動.absolute:控件在頁面中絕對定位,如果頁面存在滾動條不随視窗内容滾動.dock:控件在頁面中停靠,停靠的位置由dock屬性值決定.預設:absolute.
                    statusbar: { //ViewStatusbarStyles類型,View控件的狀态欄樣式.僅在應用設定為沉浸式狀态欄樣式下有效,設定此屬性後将自動保留系統狀态欄區域不被View控件占用(即View控件非沉浸式樣式顯示).
                        background: '', //String類型,系統狀态欄區域背景顔色.顔色值格式為"#RRGGBB",如"#FF0000"表示為紅色背景,預設值為應用manifest.json中plus->statusbar->background屬性配置的值.
                    }
                }
            }
        ],
        titleNView: { //WebviewTitleNViewStyles類型,定義視窗的标題欄控件樣式.設定此屬性值則表明建立Webview視窗的标題欄控件,并可通過其屬性值設定背景顔色、文本内容、文本顔色等.通過Webview視窗的getTitleNView()方法可擷取标題欄控件對象.http://www.html5plus.org/doc/zh_cn/webview.html#plus.webview.WebviewTitleNViewStyles
            autoBackButton: '', //Boolean類型,标題欄控件是否顯示左側傳回按鈕.true:顯示傳回按鈕.false:不顯示傳回按鈕.預設:false.傳回按鈕的顔色為視窗标題文字顔色,按下時顔色自動調整透明度為0.3.點選傳回按鈕的邏輯與按下系統傳回鍵邏輯一緻.
            backgroundColor: '', //String類型,标題欄控件的背景顔色.顔色值格式為"#RRGGBB",如"#FF0000"表示為紅色背景,預設值為"#F7F7F7".
            buttons: [ //Array[ WebviewCustomButtonStyles ]類型,标題欄上的自定義按鈕.建的自定義按鈕數目不限制,實際應用中建議最多設定4個按鈕(包括左側傳回按鈕).
                {
                    color: '', //String類型,按鈕上文字顔色.可取值:"#RRGGBB"格式字元串,"rgba(R,G,B,A)".預設值為視窗标題欄控件的标題文字顔色.
                    colorPressed: '', //String類型,按下狀态按鈕文字顔色.String類型,按鈕上文字顔色.可取值:"#RRGGBB"格式字元串,"rgba(R,G,B,A)".預設值為color屬性值自動調整透明度為0.3.
                    float: '', //String類型,按鈕在标題欄上的顯示位置.right:在标題欄中靠右排列顯示.left:在标題欄中靠左側排列顯示(在傳回鍵後). 預設:right.
                    fontWeight: '', //String類型,按鈕上文字的粗細.normal:标準字型.bold:加粗字型.預設:normal.
                    fontSize: '', //String類型,按鈕上文字大小.可取值:字型高度像素值,數字加"px"格式字元串.
                    fontSrc: '', //String類型,按鈕上文字使用的字型檔案路徑.相對路徑:相對于目前頁面的host位置,如"a.jpg",注意目前頁面為網絡位址則不支援.絕對路徑:如Android平台"/sdcard/logo.png",此類路徑通常通過其它5+ API擷取的.擴充相對路徑URL(RelativeURL):以"_"開頭的相對路徑,如"_www/a.jpg".本地路徑URL:以"file://"開頭,後面跟随系統絕對路徑.
                    onclick: '', //WebviewCustomButtonCallback類型,按鈕點選後觸發的回調函數.回調函數中将傳回此JSON對象
                    text: '' //String類型,按鈕上顯示的文字.推薦使用一個字元,超過一個字元可能無法正常顯示,使用字型圖示時unicode字元表示必須'\u'開頭,如"\ue123"(注意不能寫成"\e123").
                }
            ],
            coverage: '', //String類型,标題欄控件變化作用範圍.僅在type值為transparent時有效,頁面滾動時标題欄背景透明度将發生變化.當頁面滾動到指定偏移量時标題欄背景變為完全不透明.支援百分比、像素值,預設為'132px'.
            progress: { //WebviewProgressStyles類型,标題欄控件的進度條樣式.設定此屬性則在标題欄控件的底部顯示進度條,可配置進度條顔色值即高度.設定此屬性值為undefined或null則隐藏進度條.預設不顯示底部進度條.
                color: '', //String類型,進度條顔色.可取值:"#RRGGBB"格式字元串,如"#FF0000"表示繪制紅色分割線;"rgba(R,G,B,A)",其中R/G/B分别代表紅色值/綠色值/藍色值,正整數類型,取值範圍為0-255,A為透明度,浮點數類型,取值範圍為0-1(0為全透明,1為不透明),如"rgba(255,0,0,0.5)",表示紅色半透明.預設值為"#00FF00".
                height: '', //String類型,進度條高度.可取值:像素值(邏輯像素),支援小數點,如"1px"表示1像素高;百分比,如"1%",相對于标題欄控件的高度.預設值為"2px".
            },
            splitLine: { //WebviewSplitLineStyles類型,标題欄控件的底部分割線.設定此屬性則在标題欄控件的底部顯示分割線,可配置顔色值及高度.設定此屬性值為undefined或null則隐藏分割線.預設不顯示底部分割線.
                color: '', //String類型,進度條顔色.可取值:"#RRGGBB"格式字元串,如"#FF0000"表示繪制紅色分割線;"rgba(R,G,B,A)",其中R/G/B分别代表紅色值/綠色值/藍色值,正整數類型,取值範圍為0-255,A為透明度,浮點數類型,取值範圍為0-1(0為全透明,1為不透明),如"rgba(255,0,0,0.5)",表示紅色半透明.預設值為"#cccccc".
                height: '', //String類型,底部分割線高度.可取值:像素值(邏輯像素),支援小數點,如"1px"表示1像素高;百分比,如"1%",相對于标題欄控件的高度.預設值為"1px".
            },
            titleColor: '', //String類型,标題欄控件的标題文字顔色.顔色值格式為"#RRGGBB",如"#FF0000"表示标題文字顔色為紅色,預設值為"#000000".
            titleOverflow: '', //String類型,标題欄控件的标題文字超出顯示區域時處理方式.clip:超出顯示區域時内容裁剪;ellipsis:超出顯示區域時尾部顯示省略标記(...).預設:ellipsis.
            titleText: '', //String類型,标題欄控件的标題文字内容.在标題欄控件居中(水準和垂直)顯示,左右邊距為88px,如果文本過長則尾部裁剪(加三個點"...")顯示.當不設定titleText屬性或屬性值為undefined/null時,使用目前Webview視窗加載頁面的标題,并自動同步更新頁面的标題.
            titleSize: '', //String類型,标題欄控件的标題文字字型大小.字型大小機關為像素,如"20px"表示字型大小為20像素,預設值為17像素.
            type: '' //String類型,标題欄控件樣式.default:預設樣式,頂部停靠顯示,擠壓Webview頁面内容顯示區域;transparent:透明樣式,頂部沉浸式顯示覆寫Webview頁面内容,标題欄上内容(除按鈕外)全部透明,當頁面滾動時透明度逐漸變化,直到不透明顯示.預設:default.
        },
        transition: { //WebviewTransition類型,視窗定義視窗變換的動畫效果.http://www.html5plus.org/doc/zh_cn/webview.html#plus.webview.WebviewTransition
            property: 'all', //String類型,産生變換效果的屬性.預設值為"all",暫不支援其它值.
            duration: '0', //String類型,變換持續的時間.預設值為0,即無動畫效果.
            timingfunction: 'ease-in-out', //String類型,視窗變換效果.linear:勻速變化.ease-in:勻加速變化,逐漸變快的動畫效果.ease-out:勻減速變化,逐漸變慢的動畫效果.ease-in-out:先加速後減速變化,先變快後變慢的動畫效果.預設:ease-in-out.
        },
        transform: { //WebviewTransform類型,視窗定義視窗變形效果.http://www.html5plus.org/doc/zh_cn/webview.html#plus.webview.WebviewTransform
            property: 'all', //String類型,産生變換效果的屬性.預設值為"all",暫不支援其它值.
            duration: '0', //String類型,變換持續的時間.預設值為0,即無動畫效果.
            timingfunction: 'ease-in-out', //String類型,視窗變換效果.linear:勻速變化.ease-in:勻加速變化,逐漸變快的動畫效果.ease-out:勻減速變化,逐漸變慢的動畫效果.ease-in-out:先加速後減速變化,先變快後變慢的動畫效果.預設:ease-in-out.
        },
        position: '', //WebviewPosition類型,Webview視窗的排版位置.當Webview視窗添加到另外一個視窗中時,排版位置才會生效,排版位置決定子視窗在父視窗中的定位方式.static:控件在頁面中正常定位,如果頁面存在滾動條則随視窗内容滾動.absolute:控件在頁面中絕對定位,如果頁面存在滾動條不随視窗内容滾動.dock:控件在頁面中停靠,停靠的位置由dock屬性值決定.預設:absolute.
        errorPage: 'none', //String類型,視窗加載錯誤時跳轉的頁面位址.當Webview視窗無法加載指定的url位址時(如本地頁面不存,或者無法通路的網絡位址),此時會自動跳轉到指定的錯誤頁面位址(僅支援本地頁面位址).設定為"none"則關閉跳轉到錯誤頁面功能,此時頁面顯示Webview預設的錯誤頁面内容.預設使用5+ Runtime内置的錯誤頁面.
        additionalHttpHeaders: {}, //JSON類型,視窗加載頁面時額外添加的HTTP請求頭資料,内容按照http協定寫.
        animationOptimization: 'auto', //String類型,視窗動畫優化方式.auto:如果視窗中存在titleNView或subNViews,視窗動畫時真實Webview控件從動畫視窗中移除加速.none:視窗動畫不使用優化.預設:auto.
        cachemode: 'default', //String類型,視窗的緩存模式.default:根據cache-control決定是否使用緩存資料,如果存在緩存并且沒有過期則使用本地緩存資源,否則從網絡擷取.cacheElseNetwork:隻要存在緩存(即使過期)資料則使用,否則從網絡擷取.noCache:不使用緩存資料,全部從網絡擷取.cacheOnly:僅使用緩存資料,不從網絡擷取(注:如果沒有緩存資料則會導緻加載失敗).預設:default.
        backButtonAutoControl: 'close', //String類型,Webview視窗自動處理傳回鍵邏輯.hide:隐藏Webview視窗,隐藏動畫與上一次調用顯示時設定的動畫類型相對應(如"slide-in-right"對應的關閉動畫為"slid-out-right").close:關閉Webview視窗,關閉動畫與上一次調用顯示時設定的動畫類型相對應.none:不做操作,将傳回鍵傳遞給下一Webview視窗處理.quit:退出應用.
        blockNetworkImage: false, //Boolean類型,是否阻塞網絡圖檔的加載.true:阻塞.false:不阻塞.預設:false.阻塞後Webview視窗将不加載頁面中使用的所有網絡圖檔,可通過Webview視窗對象的setBlockNetWorkImage()方法動态修改此狀态.iOS不支援.
        decelerationRate: 0.989, //Number類型,視窗内容停止滑動的減速度.當Webview加載的内容超過其高度時,可以拖拽滑動内容,decelerationRate屬性控制手指松開後頁面滑動的速度.設定值越大手指松開後的滑動速度越快(滑動距離越長,其值域範圍為0.0-1.0,預設值為0.989.安卓不支援.
        dock: 'top', //WebviewDock類型,視窗的停靠方式.當Webview視窗添加到另外一個視窗中時,停靠方式才會生效,采用停靠方式添加會導緻原Webview視窗自動調整其大小避免其内容被子視窗蓋住.top:控件停靠則頁面頂部;bottom:底部;right:右側;left:控件停靠在頁面左側.http://www.html5plus.org/doc/zh_cn/webview.html#plus.webview.WebviewDock
        replacewebapi: { //WebviewReplaceWebApiOptions類型,替換H5标準API.http://www.html5plus.org/doc/zh_cn/webview.html#plus.webview.WebviewReplaceWebApiOptions
            geolocation: "auto" //String類型,替換H5标準定位接口(navigator.geolocation.*).由于網絡原因,在部分手機上可能無法調用标準H5定位接口(navigator.geolocation.*)擷取定位資料,此時可以通過此屬性配置使用原生定位子產品替換标準H5定位接口.alldevice:在所有裝置上替換标準H5定位接口(navigator.geolocation.*).auto:自動替換H5标準定位接口,僅在調用标準H5定位接口無法擷取資料的裝置上替換.none:不替換H5标準定位接口(navigator.geolocation.*).預設:auto.注意:替換H5标準定位接口,會導緻頁面加載速度延遲100ms左右,推薦使用"auto"模式.
        },
        hardwareAccelerated: '', //Boolean類型,視窗是否開啟硬體加速.true:開啟.false:不開啟.預設:5+ Runtime會根據裝置實際支援情況自動選擇是否開啟硬體加速,可以通過plus.webview.defaultHardwareAccelerated()方法擷取預設Webview是否開啟硬體加速.由于不同裝置對硬體加速的支援情況存在差異,開啟硬體加速能加速HTML頁面的渲染,但也會消耗更多的系統資源,進而導緻在部分裝置上可能出現閃屏、發虛、分塊渲染等問題,是以在特定裝置的特定頁面如果出現以上問題需要手動設定關閉硬體加速來避免.iOS不支援.
        kernel: 'UIWebview', //String類型,視窗使用的核心.WKWebview:在iOS8.0及以上系統使用WKWebview核心,低版本下仍然使用UIWebview核心.UIWebview:在所有版本上都使用UIWebview核心.預設:UIWebview.WKWebview核心的優勢是: 1.滾動時懶加載的圖檔也可以實時渲染,UIWebview在滾動停止後才能渲染;2.WKWebview的video支援AirPlay.但WKWebview也有些限制和不足,目前已知的問題有:1.不支援跨域設定cookie,即plus.navigator.setCookie()API無法使用;2.本地的HTML頁面中的XHR不支援跨域通路,需使用plus.net.XMLHttpRequest來替換;3.不支援使用WebSQL,需使用indexDB來替換;4.不支援js原生混淆功能,需使用前端js混淆來替換;5.記憶體不足時會白屏.首頁的Webview的kernel在manifest中配置(plus->kernel->ios).安卓不支援.
        plusrequire: 'normal', //String類型,控制Webview注入5+ API時機.ahead:盡量提前,攔截頁面中網絡js請求實作提前注入,如果沒有攔截到js請求則在頁面loaded時注入.normal:頁面loaded時注入.later:較晚在注入,在loaded事件發生後2s再注入,plusready事件同樣延遲.none:不注入,頁面無法調用5+ API,不觸發plusready事件.預設:normal.
        render: 'onscreen', //String類型,視窗渲染模式.onscreen:Webview視窗在螢幕區可見時渲染,不可見時不進行渲染,此時能減少記憶體使用量.always:Webview在任何時候都渲染,在記憶體較大的裝置上使用,被遮擋的視窗在此中模式下顯示的時候會有更流暢的效果.預設:onscreen.iOS不支援.
        videoFullscreen: 'auto', //String類型,視訊全屏播放時的顯示方向.auto:自動适配,如果目前頁面豎屏,則豎屏顯示.如果目前頁面橫盤顯示,則橫屏.如果目前頁面自動感應,則自動感應橫豎屏切換.portrait-primary:豎屏正方向.portrait-secondary:豎屏反方向,螢幕正方向按順時針旋轉180°.landscape-primary:橫屏正方向,螢幕正方向按順時針旋轉90°.landscape-secondary:橫屏方向,螢幕正方向按順時針旋轉270°.landscape:橫屏正方向或反方向,根據裝置重力感應器自動調整.預設:auto.iOS不支援.
    }, { //extras:JSON對象,可選,建立Webview視窗的額外擴充參數.值為JSON類型,設定擴充參數後可以直接通過Webview的點(".")操作符擷取擴充參數屬性值,如:var w=plus.webview.create('url.html','id',{},{preload:'preload webview'});//可直接通過以下方法擷取preload值console.log(w.preload);//輸出值為"preload webview".
    }
);      

轉載于:https://www.cnblogs.com/wufanJY/p/9942025.html