# kintone プラグインについて

**URL:** <https://community.cybozu.dev/t/topic/5686>\
**Category:** kintone 開発相談\
**Created:** [2022 年 1 月 31 日午前 4:28 UTC](https://community.cybozu.dev/t/topic/5686 "2022-01-31T04:28:21Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account382](https://avatars.discourse-cdn.com/v4/letter/l/4491bb/32.png) [@Legacy\_Account382](https://community.cybozu.dev/u/Legacy_Account382)\
**Post date:** [2022 年 1 月 31 日午前 4:28 UTC](https://community.cybozu.dev/t/topic/5686/1 "2022-01-31T04:28:21Z")

</div>

お世話になっております。

プラグインの作成についての質問です。

現在すべてのアプリにjavascriptを入れているのでプラグイン化をしたいため質問させていただきます。

プラグインの設定画面で入力した値をdetail画面やedit画面に使いたいのですが、どうしたら使えるようになるでしょうか。

|

```
var config = {

```

|  
| &nbsp; |

```
'key1': 'value1',

```

|  
| &nbsp; |

```
'key2': 'value2'

```

|  
| &nbsp; |

```
};

```

|  
| &nbsp; |

```
kintone.plugin.app.setConfig(config);

```

|

こちらで値をセットして他の画面でgetすれば使えるようになるのでしょうか？

プラグインの作成が初めてなのでよろしくお願いいたします。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2476](https://avatars.discourse-cdn.com/v4/letter/l/c0e974/32.png) [@Legacy\_Account2476](https://community.cybozu.dev/u/Legacy_Account2476)\
**Post date:** [2022 年 1 月 31 日午前 5:26 UTC](https://community.cybozu.dev/t/topic/5686/2 "2022-01-31T05:26:34Z")

</div>

ishikawayuito 様

こんにちは。

```
jQuery.noConflict();
(function ($, PLUGIN_ID) {
'use strict';
let config = kintone.plugin.app.getConfig(PLUGIN_ID);
console.log(config); // {'key1': 'value1','key2': 'value2'}
})(jQuery, kintone.$PLUGIN_ID);

```

こんな感じだったかと思います。

間違えてたらごめんなさい。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account382](https://avatars.discourse-cdn.com/v4/letter/l/4491bb/32.png) [@Legacy\_Account382](https://community.cybozu.dev/u/Legacy_Account382)\
**Post date:** [2022 年 1 月 31 日午前 5:49 UTC](https://community.cybozu.dev/t/topic/5686/3 "2022-01-31T05:49:11Z")

</div>

[新屋 育男](https://community.cybozu.dev/hc/ja/profiles/901078399426-%E6%96%B0%E5%B1%8B-%E8%82%B2%E7%94%B7)様

設定画面で{key1 : value1}を定義してsetConfig;

詳細画面でgetConfig(PLUGIN\_ID)で取得の認識でよろしいでしょうか。

またfunctionでPLUGIN\_IDを渡しているのでPLUGIN\_IDで識別を行っていると思いますがsetの際のPLUGIN\_IDはどのようにすればよいでしょうか。

よろしくお願いいたします。

&nbsp;

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2476](https://avatars.discourse-cdn.com/v4/letter/l/c0e974/32.png) [@Legacy\_Account2476](https://community.cybozu.dev/u/Legacy_Account2476)\
**Post date:** [2022 年 1 月 31 日午前 6:43 UTC](https://community.cybozu.dev/t/topic/5686/4 "2022-01-31T06:43:46Z")

</div>

ishikawayuito 様

おおよそその認識で大丈夫かと思います。

&nbsp;

PLUGIN\_IDは、プラグイン内で自動で作成されます。

プラグインから動作するソースコードの引数に、PLUGIN\_IDを指定すると自動でプラグインIDを保持しています。

おそらくプラグインから実行するときに、グローバルにPLUGIN\_ID（オブジェクト）が存在しているからかと思います。

ちなみにプラグインのIDの簡単な確認の方法ですが、対象のプラグインの設定画面URLのクエリに、

?pluginId=&nbsp;

となっている部分がありますが、その = から後ろに記載されている部分がPLUGIN\_IDの変数に格納している値です。

[kintone プラグインJavaScript API – cybozu developer network](https://community.cybozu.dev/hc/ja/articles/203661160)

[プラグイン開発 – cybozu developer network](https://community.cybozu.dev/hc/ja/sections/200644024)

この辺りが参考になると思います。

セット時は、jQuery.noConflict() を使用しないで記述すると、

```
(function (PLUGIN\_ID) {
'use strict';
 letconfig ={'key1': 'value1','key2': 'value2'}
kintone.plugin.app.setConfig(config);
})(kintone.$PLUGIN_ID);

```

これで、値はセットされいます。

特に、プラグインIDは意識しなくても大丈夫です。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account382](https://avatars.discourse-cdn.com/v4/letter/l/4491bb/32.png) [@Legacy\_Account382](https://community.cybozu.dev/u/Legacy_Account382)\
**Post date:** [2022 年 1 月 31 日午前 7:15 UTC](https://community.cybozu.dev/t/topic/5686/5 "2022-01-31T07:15:14Z")

</div>

新屋 育男様

ご回答、参考ページ記載ありがとうございます。

アドバイスを基にプラグインの作成頑張ります。

何かわからないことがあればまた質問をさせていただくことがあると思いますので

その際はよろしくお願いいたします。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account382](https://avatars.discourse-cdn.com/v4/letter/l/4491bb/32.png) [@Legacy\_Account382](https://community.cybozu.dev/u/Legacy_Account382)\
**Post date:** [2022 年 2 月 1 日午前 4:16 UTC](https://community.cybozu.dev/t/topic/5686/6 "2022-02-01T04:16:08Z")

</div>

新屋 育男様

すみません。不明点がでたので質問をさせていただきます。

現在開発中のもので設定画面が作成完了し、動作しているのですが、

detail画面でも設定画面のjsが動いてしまっている状態です。

どう制御したらよいかなにかわかることがあれば教えていただきたいです。

functionの入りはこのように記載しております。

```
(function(PLUGIN_ID) {
"use strict";
   document.getElementById('save-button').addEventListener('click', function(){

```

エラー情報

Uncaught TypeError: Cannot read properties of null (reading ‘addEventListener’)

こちらのjsは動かしたくないです。functionの書き方が悪いなどアドバイスいただけると幸いです。

よろしくお願いいたします。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account382](https://avatars.discourse-cdn.com/v4/letter/l/4491bb/32.png) [@Legacy\_Account382](https://community.cybozu.dev/u/Legacy_Account382)\
**Post date:** [2022 年 2 月 1 日午前 4:25 UTC](https://community.cybozu.dev/t/topic/5686/7 "2022-02-01T04:25:19Z")

</div>

申し訳ございません。自己解決いたしました。

manifest.jsの定義の問題でした。
