iT邦幫忙

0

【kintone】2025年秋季更新:4 個全新 UI 操作 API 整合介紹

  • 分享至 

  • xImage
  •  

在 kintone 的客製化開發中,我們經常需要根據使用者操作狀況,顯示自定義提示訊息或是確認視窗。過去若要達成這類效果,通常需要自行撰寫 HTML/CSS 或搭配外部函式庫,例如 SweetAlert2 、官方提供的 kintone UI Component 等套件,來自行建立元件。

不過從 2025 年 9 月與 10 月 的 API 更新開始,kintone 官方新增了數個方便的 UI 操作 API,
開發者現在可以直接呼叫內建函式,快速顯示對話框、提示訊息、或控制載入畫面,不需要再額外引入 kintone UI Component 即可使用。

新增的 API 包含以下四個:

功能 API 名稱 說明
顯示確認對話框 kintone.showConfirmDialog() 以簡潔語法顯示「確定/取消」提示。
建立自訂對話框 kintone.createDialog() 顯示可放入自訂 HTML 元素的互動對話框。
顯示通知訊息 kintone.showNotification() 在畫面上方顯示提示訊息。
控制載入畫面 kintone.showLoading() 顯示或隱藏 kintone 風格的載入動畫。

這四個 API 能在 kintone 電腦版中適用客製化的頁面上使用,但須注意不支援以下頁面:

  • 搜尋頁面
  • 應用程式商店
  • 外掛設定畫面

接下來就分別介紹這四個 API 的用途與基本使用方式。

1. 顯示確認視窗:kintone.showConfirmDialog()

kintone.showConfirmDialog(config) 可顯示一個確認對話框,讓使用者選擇是否執行某項操作,並可取得使用者的選擇結果。

kintone.showConfirmDialog(config)

參數說明

參數名稱 型別 必填 說明
config Object 對話框設定物件。
config.title String 對話框標題文字。若省略則不顯示。
config.body String 對話框的主要內容文字。可使用 \n, \r, \r\n 表示換行。若省略則不顯示。
config.showOkButton Boolean 是否顯示「確定」按鈕。true: 顯示(預設)false: 不顯示。
config.okButtonText String 「確定」按鈕上顯示的文字。若省略,會依登入者語系顯示「確定」。
config.showCancelButton Boolean 是否顯示「取消」按鈕。true: 顯示false: 不顯示(預設)。
config.cancelButtonText String 「取消」按鈕上顯示的文字。若省略,會依登入者語系顯示「取消」。
config.showCloseButton Boolean 是否顯示右上角關閉按鈕。true: 顯示false: 不顯示(預設)。若設定為不顯示,則 Esc 鍵關閉視窗的功能也會被停用。

回傳值

此函式會回傳一個 Promise 物件
當使用者選擇任一操作後,Promise 會被解析(fulfilled),並傳回以下值:

回傳值 型別 說明
result String 使用者選擇的操作:OK: 點擊「確定」按鈕。CANCEL: 點擊「取消」按鈕。CLOSE: 點擊「關閉」按鈕或按下 Esc 鍵。

範例

// 基本的確認對話框
kintone.showConfirmDialog({
  title: '刪除確認',
  body: '是否確定要刪除此筆記錄?',
  showOkButton: true,
  showCancelButton: true,
  okButtonText: '刪除',
  cancelButtonText: '取消',
  showCloseButton: true
}).then((result) => {
  if (result === 'OK') {
    console.log('執行刪除動作')
  } else {
    console.log('已取消刪除')
  }
})

2. 建立自訂對話框:kintone.createDialog()

使用 kintone.createDialog(config) 可在頁面上建立可自訂內容的對話框。
kintone.showConfirmDialog() 不同,此 API 允許插入自訂 HTML 元素、輸入欄位、按鈕等互動元件,並可在關閉前執行驗證或額外邏輯。

kintone.createDialog(config)

參數說明

參數名稱 型別 必填 說明
config Object 對話框設定物件。
config.title String 對話框標題。若省略則不顯示。
config.body Element 對話框的主要內容元素(DOM Element)。若省略則不顯示。
config.showOkButton Boolean 是否顯示「確定」按鈕。true: 顯示(預設)false: 不顯示。
config.okButtonText String 「確定」按鈕上顯示的文字。若省略,會依登入者語系顯示「OK」。
config.showCancelButton Boolean 是否顯示「取消」按鈕。true: 顯示false: 不顯示(預設)。
config.cancelButtonText String 「取消」按鈕上顯示的文字。若省略,會依登入者語系顯示「Cancel」。
config.showCloseButton Boolean 是否顯示右上角關閉按鈕。true: 顯示false: 不顯示(預設)。若設定為不顯示,則 Esc 鍵關閉視窗的功能也會被停用。
config.beforeClose Function 當使用者嘗試關閉對話框時(按下確定、取消、關閉或 Esc)執行的函式。函式的引數會傳入使用者的操作類型:OKCANCELCLOSE。若回傳 false,或回傳 Promise 並在解析後為 false,則對話框不會被關閉。

回傳值

此函式會回傳一個 Promise 物件,物件中包含兩個可用方法:

屬性名稱 型別 說明
show() Function 顯示對話框的非同步函式,無參數。回傳 Promise,並於對話框關閉後解析(fulfilled),回傳使用者的操作結果:OK: 點擊「確定」按鈕。CANCEL: 點擊「取消」按鈕。CLOSE: 點擊「關閉」按鈕或按下 Esc 鍵。FUNCTION: 透過 close() 函式手動關閉時。
close() Function 手動關閉對話框的函式,無參數、無回傳值。

範例

// kintone submit 事件中

// 建立可輸入內容的自訂對話框
const inputElement = document.createElement('textarea')
inputElement.style.width = '100%'
inputElement.style.height = '80px'
inputElement.placeholder = '請輸入備註...'

const dialog = await kintone.createDialog({
  title: '輸入備註',
  body: inputElement,
  showCancelButton: true,
  cancelButtonText: '取消',
  okButtonText: '確定',
  showCloseButton: true,
  beforeClose: (action) => {
    const text = inputElement.value.trim()
    if (action === 'OK' && !text) {
      alert('請輸入內容再按確定。')
      return false
    } else if (action === 'OK' && text) {
      record['備註'].value = text
    }
  }
})

// 顯示對話框並取得結果
const result = await dialog.show()
if (result === 'OK') {
  return event // 完成 submit 事件
} else {
  return false // 取消 submit 事件
}

注意事項

指定於 config.body 的元素(Element object)會直接插入對話框中。
若內容包含使用者輸入或動態字串,請務必進行防止 XSS 的處理(Sanitize)

3. 顯示提示訊息:kintone.showNotification()



使用 kintone.showNotification(type, message) 可在畫面上方顯示提示訊息。
此訊息會依照不同類型以顏色區分,可用來提示操作成功、錯誤、或一般資訊。

kintone.showNotification(type, message)

參數說明

參數名稱 型別 必填 說明
type String 提示訊息的類型。可指定下列其中一種:ERROR: 錯誤(紅色)SUCCESS: 成功(綠色)INFO: 資訊(藍色)
message String 要顯示的訊息文字。

回傳值

此函式會回傳一個 Promise 物件
當提示訊息顯示完成後,Promise 會被解析(fulfilled)。

範例

// 顯示錯誤訊息
kintone.showNotification('ERROR', '資料儲存失敗。')

// 顯示成功訊息
kintone.showNotification('SUCCESS', '資料已成功儲存。')

// 顯示資訊訊息
kintone.showNotification('INFO', '開始處理中...')

// 非同步處理範例
kintone.showNotification('SUCCESS', '處理完成。').then(() => {
  console.log('提示訊息已顯示')
})

注意事項

  • 提示訊息顯示後不會自動消失,需由使用者手動關閉或由系統覆蓋。
  • 當前頁面一次只能顯示一則訊息。
    若同時呼叫多次,僅最後一則會顯示(包含原生系統提示訊息)。

💡2025/11/12 註:
由於目前此 API 不支援主動關閉以及設定顯示時長的方法,如果要做到這些效果,還是推薦使用 kintone UI Component 的 Notification 元件:
https://ui-component.kintone.dev/docs/components/desktop/notification

4. 控制載入畫面:kintone.showLoading()

使用 kintone.showLoading(state) 可以顯示或隱藏載入中的 UI 畫面。
當載入畫面顯示時,使用者無法進行任何操作,適合用於等待 API 回應或長時間處理的情境。

kintone.showLoading(state)

參數說明

參數名稱 型別 必填 說明
state String 載入畫面的狀態。可指定:VISIBLE: 顯示載入畫面。HIDDEN: 隱藏載入畫面。

回傳值

此函式會回傳一個 Promise 物件
當載入畫面顯示或隱藏完成後,Promise 會被解析(fulfilled)。

範例

// 顯示載入畫面
kintone.showLoading('VISIBLE')

// 模擬長時間處理
setTimeout(() => {
  // 隱藏載入畫面
  kintone.showLoading('HIDDEN')
}, 3000)

注意事項

  • 顯示載入畫面期間,使用者無法操作頁面
  • 客製化中一次只能顯示一個載入畫面,但這與 kintone 系統內建的載入畫面互不影響。

結語

這四個全新的 UI 操作 API,讓 kintone 的客製化開發更貼近系統原生體驗。
無論是提示訊息、確認對話框,或是載入畫面,都能以簡潔的語法快速呼叫、免去手動撰寫 HTML 與樣式的麻煩。

對於以往習慣使用 kintone UI Component 或外部函式庫的開發者,這些 API 提供了更輕量、維護性更高的替代方案。
未來若有需要彈出訊息、顯示載入狀態或輸入對話框的情境,不妨優先考慮使用這些官方 API,讓你的客製化程式更簡潔、穩定、並與 kintone 介面完美融合。


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言