跳至主要內容

dialogs - 对话框

约 1352 字大约 5 分钟道无涯

dialogs模块用于显示弹框,一般用于提示用户关键信息、输入信息,完成简易的交互。

本模块提供了多种配置模式,能够以应用内弹窗或悬浮窗形式显示确认框、输入框、单选框、多选框等,也可以自定义弹出框显示的View。

可使用const dialogs = require('dialogs');导入dialogs模块。然后通过比如dialogs.showInputDialog("输入框标题", "输入框默认文本");的方式调用模块中的方法。

也可以直接导入要使用的函数,比如const { showInputDialog } = require('dialogs'); showInputDialog("输入框标题", "输入框默认文本");

目录

接口

类型别名

变量

函数

类型别名

Dialog

Ƭ Dialog: android.app.Dialog & DialogExt

对话框类型,基于Android原生Dialog类open in new window拓展了一些方法和属性,参见DialogExt


DialogType

Ƭ DialogType: "overlay" | "app"

弹出对话框的类型。

  • overlay: 可显示在其他应用上方,需要悬浮窗权限。
  • app: 应用内对话框,仅可在应用内的当前界面(Activity)显示,不需要额外权限。

变量

defaultDialogType

defaultDialogType: DialogType = 'app'

默认对话框类型,默认为app。可通过setDefaultDialogType函数修改。

参见

函数

buildDialog

buildDialog(properties): Promise<Dialog>

创建一个对话框。可自定义对话框的标题、内容、进度条、输入框、按钮等。

参数

名称类型描述
propertiesDialogPropertiesopen in new window对话框的配置属性。参考 DialogPropertiesopen in new window

返回值

Promise<Dialog>

Dialog对象的Promise


setDefaultDialogType

setDefaultDialogType(type): void

参见

defaultDialogType

参数

名称类型
typeDialogType

返回值

void


showAlertDialog

showAlertDialog(title, properties?): Promise<void>

显示一个提示对话框。提示对话框包括标题、内容和一个确认按钮。

示例

"nodejs";
const { showAlertDialog } = require('dialogs');
async function alert() {
  await showAlertDialog("This is an alert dialog.");
  await showAlertDialog("Summary", { content: "Some description" });
}
alert();

参数

名称类型描述
titlestring对话框的标题。
properties?DialogPropertiesopen in new window对话框的配置属性。参考 DialogPropertiesopen in new window

返回值

Promise<void>

可通过await等待弹出框消失。


showConfirmDialog

showConfirmDialog(title, properties?): Promise<boolean>

显示一个确认对话框,包括一个确认按钮和一个取消按钮。

示例

"nodejs";
const dialogs = require('dialogs');
async function confirm() {
  const sure = await dialogs.showConfirmDialog("Are you sure?");
  console.log(sure); // true or false
  console.log(await dialogs.showConfirmDialog("Are you sure?", { positive: "Yes", negative: "No" }));
}
confirm();

参数

名称类型描述
titlestring确认对话框的标题。
properties?DialogPropertiesopen in new window对话框的额外配置属性。参考 DialogPropertiesopen in new window

返回值

Promise<boolean>

可通过await获取弹出框选择结果。


showDialog

showDialog(properties): Promise<Dialog>

创建并显示一个对话框。类似于buildDialog构建对话框,但是构建后直接显示而无需调用show

参数

名称类型描述
propertiesDialogPropertiesopen in new window对话框的配置属性。参考 DialogPropertiesopen in new window

返回值

Promise<Dialog>

对话框对象的Promise


showInputDialog

showInputDialog(title, prefill?, properties?): Promise<string | null>

显示一个输入对话框。

示例

"nodejs";
const dialogs = require('dialogs');
async function inputDialog() {
  const name = await dialogs.showInputDialog("Input your name", "Tony");
  if (name != "") {
      console.log(`hello, ${mName}`);
  }
}
inputDialog();

参数

名称类型描述
titlestring输入对话框的标题。
prefill?string输入对话框的默认文本。
properties?DialogPropertiesopen in new window对话框的配置属性。参考 DialogPropertiesopen in new window

返回值

Promise<string | null>

可通过await获取弹出输入框的输入结果。若用户取消了输入,则返回null的Promise。


showMultiChoiceDialog

showMultiChoiceDialog(title, items, initialSelectedIndices?, properties?): Promise<number[] | null>

显示一个多选对话框。多选对话框包括标题和一个多选列表,用户选择列表项并确定后会返回点击的结果。

参数

名称类型描述
titlestring多选对话框的标题。
itemsstring[]多选框的选项。
initialSelectedIndices?number[]默认选中的选项,比如[0, 2]表示选中第一项和第三项。
properties?DialogPropertiesopen in new window对话框的配置属性。参考 DialogPropertiesopen in new window

返回值

Promise<number[] | null>

选中选项的索引的数组Promise,若用户取消了选择,则返回空数组。索引从0开始。


showSelectDialog

showSelectDialog(title, items, properties?): Promise<number>

显示一个选择对话框。选择对话框包括标题和一个选择列表,用户点击列表项后会返回点击的结果。

示例

"nodejs";
const { showSelectDialog } = require('dialogs');
async function select() {
  const i = await showSelectDialog("Select an item", ["item1", "item2", "item3"]);
  console.log(`selected item: ${i}`);
}
select();

参数

名称类型描述
titlestring选择对话框的标题。
itemsstring[]选择框的选项。
properties?DialogPropertiesopen in new window对话框的配置属性。参考 DialogPropertiesopen in new window

返回值

Promise<number>

选择选项的索引的Promise,若用户取消了选择,则返回-1。索引从0开始。


showSingleChoiceDialog

showSingleChoiceDialog(title, items, initialSelectedIndex?, properties?): Promise<number>

显示一个单选对话框。单选对话框包括标题和一个单选列表,用户点击列表项并确定后会返回点击的结果。

示例

"nodejs";
const { showSingleChoiceDialog } = require('dialogs');
async function singleChoice() {
  const i = await showSingleChoiceDialog("Choose an item", ["item1", "item2", "item3"]);
  console.log(`selected item: ${i}`);
}
singleChoice();

参数

名称类型描述
titlestring单选对话框的标题。
itemsstring[]单选框的选项。
initialSelectedIndex?number默认选中的items数组索引序。
properties?DialogPropertiesopen in new window对话框的配置属性。参考 DialogPropertiesopen in new window

返回值

Promise<number>

选择选项的索引的Promise,若用户取消了选择,则返回-1。索引从0开始。