iT邦幫忙

2024 iThome 鐵人賽

DAY 26
0
Modern Web

我阿嬤都會的 kintone 客製化開發系列 第 26

Day 26 | kintone 儲存外掛設定的困擾

  • 分享至 

  • xImage
  •  

cover

在 kintone 的外掛儲存介面中,我們可以用 kintone.plugin.app.setConfig 來儲存設定,儲存的設定只能是 { key: string } 的形式,如果要存非字串的格式進去,就會報錯,例如:

{
  "key": [1, 2, 3],
  "key2": [
    { name: 1 }, 
    { name: 2 }
  ]
}

這就麻煩了,所以會看到有些人會另開一個應用程式,專門放設定檔案用。

怎麼解決

官網 上也寫明白,就是只能存字串,所以我們可以把 value 轉字串,使用 JSON.stringify(),要取出的時候再把它 JSON.parse()

這樣就能解決大部分的問題,不過偶爾會出現變數。例如在紀錄中,從編輯畫面(edit.show)跳到 讀取畫面(detail.show)的時候,拿到的會是已經 parse 過後的值,需要特別注意。

kintone-use

如果上面的方式讓你覺得麻煩,可以用非官方的套件 kintone-use,使用 usePluginConfig 就可以自由儲存非字串的格式。

npm i kintone-use

安裝後將 usePluginConfig 的功能解構出來:

import { usePluginConfig } from 'kintone-use'

const { setPluginConfig, getPluginConfig, hasPluginConfig } = usePluginConfig()

在某些時間點調用 usePluginConfig 會拿不到資料,這是因為找不到 PLUGIN_ID,所以可以自己帶入:

const PLUGIN_ID = kintone.$PLUGIN_ID
usePluginConfig(PLUGIN_ID)

其他功能則是:

  • setPluginConfig:儲存外掛設定。
  • getPluginConfig:取得外掛設定。
  • hasPluginConfig:確認有沒有外掛設定,返回 truefalse

套件支援 Typescript,像 getPluginConfig 這種函式可以帶個泛型進去:

const config = getPluginConfig<ConfigType>()

setPluginConfig 在成功之後則會回傳 success: boolean 的形式。

const res = await setPluginConfig({})
console.log(res.success) // true

希望大家都能快樂的儲存自己想要的格式。


上一篇
Day 25 | kintone 外掛的開發流程
下一篇
Day 27 | setProxyConfig 隱藏敏感資料
系列文
我阿嬤都會的 kintone 客製化開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言