createWebViewDialog
HBuilderX 3.0.0起支持
创建基于WebView页面的对话框,通过html渲染对话框的主要内容,可通过参数定制对话框标题、按钮等内容。按钮被添加到对话框下方的按钮组里,点击按钮会向WebView发送消息,开发者可在html通过js监听。
参数说明
参数名称 | 参数类型 | 描述 |
---|---|---|
dialogOptions | DialogOptions | 对话框基本属性,包括标题、按钮等 |
webviewOptions | WebViewOptions | WebView属性 |
返回值
返回类型 | 描述 | |
---|---|---|
WebViewDialog | WebViewDialog | WebViewDialog,控制对话框显示和关闭等 |
示例
let webviewDialog = hx.window.createWebViewDialog({
modal: false,
title: "是否删除文件?",
description: "删除后无法恢复,请谨慎操作。也可以到回收站看看。",
dialogButtons: [
"确定", "取消"
],
size: {
width: 400,
height: 300
}
}, {
enableScripts: true
});
let webview = webviewDialog.webView;
webview.html = `
<html>
<script>
function initReceive() {
hbuilderx.onDidReceiveMessage((msg)=>{
if(msg.type == 'DialogButtonEvent'){
let button = msg.button;
if(button == '确定'){
//TODO 处理表单提交
}else if(button == '取消'){
//TODO 处理取消逻辑
hbuilderx.postMessage({
command: 'cancel'
});
}
}
});
}
window.addEventListener("hbuilderxReady", initReceive);
</script>
</html>
`;
webview.onDidReceiveMessage((msg) => {
console.log(msg)
if (msg.command == 'cancel') {
webviewDialog.close();
}
});
let promi = webviewDialog.show();
promi.then(function (data) {
// 处理错误信息
});
WebViewOptions
从HBuilderX 2.8.1及以上版本开始支持
调用createWebView创建WebView时需要的配置项
属性列表
属性名 | 属性类型 | 描述 |
---|---|---|
enableScripts | Boolean | 是否启用JavaScript脚本支持 |
DialogOptions
调用createWebViewDialog需要的对话框属性参数。
属性列表
属性名 | 属性类型 | 描述 |
---|---|---|
modal | Boolean | 是否显示为模态窗口,默认模态窗口 |
title | String | 对话框主标题 |
description | String | 对话框副标题 |
dialogButtons | Array<String> | 需要在对话框下方按钮组区域添加的按钮列表 |
size | 对话框尺寸 | 需要显示的对话框大小,结构:{ width: Number, height: Number } |
- 以上所有属性可选,但不建议
WebViewDialog
WebView相关属性可以参考WebView。
属性列表
属性名 | 属性类型 | 描述 |
---|---|---|
webView | WebView | 用于渲染对话框主要内容 |
id | String | 用于内部通信的对话框id |
show
显示对话框,返回显示成功或者失败的信息,主要包含内置浏览器相关状态。
返回值
返回类型 | 描述 |
---|---|
Promise<Object> | Promise对象,Object结构:{“code”:2, “message”:”Built-in browser not exist.”} |
主要错误码信息
错误码 | 描述 |
---|---|
0 | 无错误 |
1 | 内置浏览器插件正在下载 |
2 | 内置浏览器插件不存在(弹出下载内置浏览器插件窗口,用户点击了取消) |
close
关闭对话框,插件通过close主动关闭对话框
displayError
在对话框副标题下方显示红色错误信息,错误信息会由动态抖动效果
参数说明
参数名称 | 参数类型 | 描述 |
---|---|---|
text | String | 错误信息 |
setButtonStatus
设置对话框指定按钮状态,对话框按钮通过createWebViewDialog参数DialogOptions提供。
参数说明
参数名称 | 参数类型 | 描述 |
---|---|---|
button | String | 按钮字符串 |
status | Array<String> | 按钮状态列表,为空时设置默认状态 |
按钮状态说明
状态 | 描述 |
---|---|
“loading” | 按钮文字前方增加loading动态提示 |
“disable” | 禁用按钮,可与loading组合使用 |
示例
webviewDialog.setButtonStatus("确定", ["loading", "disable"]);
onDialogClosed
注册窗口关闭回调。
参数名称 | 参数类型 | 描述 |
---|---|---|
callback | Function | 当窗口显示后,用户关闭或调用close后,触发该回调,无参数 |
返回值
返回类型 | 描述 |
---|---|
Disposable | Disposable对象 |