nativeUI管理系统原生界面,可用于弹出系统原生提示对话框窗口、时间日期选择对话框、等待对话框等。
5+功能模块(permissions)
{
// ...
"permissions":{
// ...
"NativeUI": {
"description": "原生UI控件"
}
}
}
JSON对象,原生选择按钮框上按钮的样式参数
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)",表示红色半透明。
title
: _(String 类型 )_按钮上显示的文字内容
style
: _(String 类型 )_按钮的样式
可取值: “destructive” - 表示警示按钮样式,默认文字颜色为红色; “default” - 表示默认按钮样式。 默认值为"default"。
JSON对象,原生选择按钮框的样式参数
title
: _(String 类型 )_选择按钮框的标题
cancel
: _(String 类型 )_取消按钮上显示的文字内容
不设置此属性,则不显示取消按钮。
buttons
: _(Array[ ActionButtonStyles ] 类型 )_选择框上的按钮,ActionButtonStyles对象数组
JSON对象,日期选择对话框的参数
title
: _(String 类型 )_日期选择对话框显示的标题
如果未设置标题,则默认显示标题为当前选择的日期。
date
: _(Date 类型 )_日期选择对话框默认显示的日期
如果未设置默认显示的日期,则显示当前的日期。
minDate
: _(Date 类型 )_日期选择对话框可选择的最小日期
Date类型对象,如果未设置可选择的最小日期,则使用系统默认可选择的最小日期值。
maxDate
: _(Date 类型 )_日期选择对话框可选择的最大日期
Date类型对象,如果未设置可选择的最大日期,则使用系统默认可选择的最大日期值。 其值必须大于minDate设置的值,否则使用系统默认可选择的最大日期值。
popover
: _(JSON 类型 )_时间选择对话框弹出指示区域
JSON类型对象,格式如{top:10;left:10;width:200;height:200;},所有值为像素值,其值为相对于容器Webview的位置。 如未设置此值,默认在屏幕居中显示。仅在iPad上有效,其它设备忽略此值。
JSON对象,时间选择对话框的参数
time
: _(Date 类型 )_时间选择对话框默认显示的时间
如果未设置标题,则默认显示标题为当前选择的时间。
title
: _(String 类型 )_时间选择对话框显示的标题
如果未设置标题,则默认显示标题为当前选择的时间。
is24Hour
: _(Boolean 类型 )_是否24小时制模式
true表示使用24小时制模式显示,fale表示使用12小时制模式显示,默认值为true。
popover
: _(JSON 类型 )_日期选择对话框弹出指示区域
JSON类型对象,格式如{top:10;left:10;width:200;height:200;},所有值为像素值,其值相对于容器webview的位置。 如未设置此值,默认在屏幕居中显示。仅在iPad上有效,其它设备忽略此值。
系统原生界面基类对象
interface NativeUIObj{
function void close();
}
系统等待对话框对象
从NativeUIObj对象继承而来,通过plus.nativeUI.showWaiting方法创建时返回。 用于控制系统样式等待对话框的操作,如关闭、设置标题内容等。
JSON对象,原生等待对话框的参数
width
: _(String 类型 )_等待框背景区域的宽度
值支持像素值(“500px”)或百分比(“50%”),百分比相对于屏幕的宽计算,如果不设置则根据内容自动计算合适的宽度。
height
: _(String 类型 )_等待框背景区域的高度
值支持像素绝对值(“500px”)或百分比(“50%”),如果不设置则根据内容自动计算合适的高度。
color
: _(String 类型 )_等待框中文字的颜色
颜色值支持(参考CSS颜色规范):颜色名称(参考CSS Color Names)/十六进制值/rgb值/rgba值,默认值为白色。
size
: _(String 类型 )_等待框中文字的字体大小
如"14px"表示使用14像素高的文字,未设置则使用系统默认字体大小。
textalign
: _(String 类型 )_等待对话框中标题文字的水平对齐方式
对齐方式可选值包括:“left”:水平居左对齐显示,“center”:水平居中对齐显示,“right”:水平居右对齐显示。默认值为水平居中对齐显示,即"center"。
padding
: _(String 类型 )_等待对话框的内边距
值支持像素值(“10px”)和百分比(“5%”),百分比相对于屏幕的宽计算,默认值为"3%"。
background
: _(String 类型 )_等待对话框显示区域的背景色
背景色的值支持(参考CSS颜色规范):颜色名称(参考CSS Color Names)/十六进制值/rgb值/rgba值,默认值为rgba(0,0,0,0.8)。
style
: _(String 类型 )_等待对话框样式
可取值"black"、“white”,black表示等待框为黑色雪花样式,通常在背景主色为浅色时使用;white表示等待框为白色雪花样式,通常在背景主色为深色时使用。 仅在iOS平台有效,其它平台忽略此值,未设置时默认值为white。
modal
: _(Boolen 类型 )_等待框是否模态显示
模态显示时用户不可操作直到等待对话框关闭,否则用户在等待对话框显示时也可操作下面的内容,未设置时默认为true。
round
: _(Number 类型 )_等待框显示区域的圆角
值支持像素值(“10px”),未设置时使用默认值"10px"。
padlock
: _(Boolen 类型 )_点击等待显示区域是否自动关闭
true表示点击等待对话框显示区域时自动关闭,false则不关闭,未设置时默认值为false。
back
: _(String 类型 )_返回键处理方式
可取值"none"表示截获处理返回键,但不做任何响应;"close"表示截获处理返回键并关闭等待框;"transmit"表示不截获返回键,向后传递给Webview窗口继续处理(与未显示等待框的情况一致)。
loading
: _(WaitingLoadingOptions 类型 )_自定义等待框上loading图标样式
JSON对象,原生等待对话框上loading图标自定义样式
display
: _(String 类型 )_loading图标显示样式
可取值: "block"表示图标与文字分开两行显示,上面显示loading图标,下面显示文字; "inline"表示loading图标与文字在同一行显示,左边显示loading图标,右边显示文字; "none"表示不显示loading图标;
height
: _(String 类型 )_loading图标高度
设置loading图标的高度(宽度等比率缩放),取值类型:像素值,如"14px"表示14像素高。
icon
: _(String 类型 )_loading图标路径
自定义loading图标的路径,png格式,并且必须是本地资源地址; loading图要求宽是高的整数倍,显示等待框时按照图片的高横向截取每帧刷新。
interval
: _(Number 类型 )_loading图每帧刷新间隔
单位为ms(毫秒),默认值为100ms。
JSON对象,系统提示消息框要设置的参数
icon
: _(String 类型 )_提示消息框上显示的图标
style
: _(String 类型 )_提示消息框上显示的样式
可取值: "block"表示图标与文字分两行显示,上面显示图标,下面显示文字; “inline"表示图标与文字在同一行显示,左边显示图标,右边显示文字。 默认值为"block”。
duration
: _(String 类型 )_提示消息框显示的时间
可选值为long
、short
,值为"long"时显示时间约为3.5s,值为"short"时显示时间约为2s,未设置时默认值为short
。
align
: _(String 类型 )_提示消息框在屏幕中的水平位置
可选值为left
、center
、right
,分别为水平居左、居中、居右,未设置时默认值 center
。
verticalAlign
: _(String 类型 )_提示消息在屏幕中的垂直位置
可选值为top
、center
、bottom
,分别为垂直居顶、居中、居底,未设置时默认值为bottom
。
系统选择按钮框的回调函数
void onActioned( Event event ){
// actionsheet handled code.
var index=event.index; // 用户关闭时点击按钮的索引值
}
event
: ( Event ) 必选 用户操作选择按钮框关闭后返回的数据void : 无
系统提示框确认的回调函数
void onAlerted( Event event ){
// Alert handled code.
var index=event.index; // 用户关闭提示对话框点击按钮的索引值
}
event
: ( Event ) 必选 用户操作确认对话框关闭后返回的数据void : 无
关闭确认对话框的回调函数
void onConfirmed( Event event ) {
// Confirm handled code.
var index=event.index; // 用户关闭确认对话框点击按钮的索引值
}
event
: ( Event ) 必选 用户操作确认对话框关闭后返回的数据void : 无
系统输入对话框关闭后的回调函数
function void onPrompted( Event event ) {
// Prompt handled code.
var index=event.index; // 用户关闭输入对话框点击按钮的索引值
var value=event.value; // 用户输入的内容
}
event
: ( Event ) 必选 用户操作输入对话框关闭后返回的数据void : 无
选择日期或时间操作成功的回调函数
function void onPickSuccess( Event event ) {
// Date picked code.
var date = event.date;// 用户选择的日期或时间
}
event
: ( Event ) 必选 用户完成选择日期或时间后返回的数据void : 无
选择日期或时间操作取消或失败的回调函数
function void onPickError( Exception error ) {
// Date picked error.
var code = error.code; // 错误编码
var message = error.message; // 错误描述信息
}
error
: ( Exception ) 必选 用户选择操作失败信息void : 无
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="HandheldFriendly" content="true" />
<meta name="MobileOptimized" content="320" />
<title>Hello H5+</title>
<script type="text/javascript">
function pickDate() {
console.log("打开系统日期选择框:");
var dDate = new Date();
dDate.setFullYear(2014, 0, 1);
var minDate = new Date();
minDate.setFullYear(2010, 0, 1);
var maxDate = new Date();
maxDate.setFullYear(2016, 11, 31);
outLine("[date] " + dDate);
outLine("[minDate] " + minDate);
outLine("[maxDate] " + maxDate);
plus.nativeUI.pickDate(function (e) {
var d = e.date;
outLine("选择的日期:" + d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate());
}, function (e) {
console.log("未选择日期:" + e.message);
}, {
title: "请选择日期",
date: dDate,
minDate: minDate,
maxDate: maxDate
});
}
function pickTime() {
console.log("打开系统时间选择框:");
var dTime = new Date();
dTime.setHours(6, 0);
outLine("[time] " + dTime);
plus.nativeUI.pickTime(function (e) {
var d = e.date;
outLine("选择的时间:" + d.getHours() + ":" + d.getMinutes());
}, function (e) {
console.log("取消选择时间!");
}, {
title: "请选择时间",
is24Hour: true,
time: dTime
});
}
function showAlert() {
console.log("弹出系统提示对话框:");
plus.nativeUI.alert("系统提示框内容\n第二行内容", function (e) {
var i = e.index;
if (i < 0) {
outLine("按\"返回\"键关闭提示框!");
} else {
outLine("提示框已关闭!");
}
}, "nativeUI", "好");
}
function showConfirm() {
console.log("弹出系统确认对话框:");
var bts = ["是", "否", "取消"];
plus.nativeUI.confirm("系统确认对话框内容\n第二行内容", function (e) {
var i = e.index;
outLine("按\"" + ((i >= 0) ? bts[e.index] : "返回") + "\"关闭!");
}, "nativeUI", bts);
}
function showPrompt() {
console.log("弹出系统输入对话框:");
var bts = ["确认", "取消"];
plus.nativeUI.prompt("请输入内容", function (e) {
var i = e.index;
outLine("按\"" + ((i >= 0) ? bts[e.index] : "返回") + "\"关闭:" + e.value);
}, "nativeUI", "内容", bts);
}
function showActionSheet() {
console.log("弹出系统选择按钮框:");
var bts = [{
title: "警告",
style: "destructive"
}, {
title: "按钮1"
}, {
title: "按钮2"
}, {
title: "按钮3"
}];
plus.nativeUI.actionSheet({
title: "ActionSheet标题",
cancel: "取消",
buttons: bts
},
function (e) {
outLine("选择了\"" + ((e.index > 0) ? bts[e.index - 1].title : "取消") + "\"");
}
);
}
function showToast() {
plus.nativeUI.toast("您好!正在使用HBuilder开发应用!", {
duration: "long"
});
}
function showWaiting() {
var nw = clicked('nativeui_waiting.html', false, false, {
popGesture: 'none'
});
nw.addEventListener("close", function () {
plus.nativeUI.closeWaiting();
}, false);
}
</script>
</head>
<body>
<div id="dcontent" class="dcontent">
<ul class="dlist">
<li class="ditem" onclick="pickDate()">系统日期选择框</li>
<li class="ditem" onclick="pickTime()">系统时间选择框</li>
<li class="ditem" onclick="showAlert()">提示框</li>
<li class="ditem" onclick="showConfirm()">确认框</li>
<li class="ditem" onclick="showPrompt()">输入框</li>
<li class="ditem" onclick="showActionSheet()">弹出菜单ActionSheet</li>
<li class="ditem" onclick="showToast()">自动消失提示框</li>
</ul>
<br />
<div class="button" onclick="showWaiting()">等待框</div>
</div>
<div id="output">
nativeUI管理系统原生界面,可用于弹出系统原生提示对话框窗口、时间日期选择对话框、等待对话框等。
</div>
</body>
</html>