fbpx
「給与DXのエムザス」 給与とシステム両方を本業に約20年

【kintoneカスタマイズ】localStorageを活用してユーザー体験をワンランク上に!

公開日:2025.05.22
最終更新日:2025.05.22

こんにちは、kintoneカスタマイズをされている皆さん!

日々、アプリの利便性を高める工夫をされていることと思います。今回は、kintoneのカスタマイズで「localStorage」を活用する方法をご紹介します。

localStorageは、ちょっとした情報をブラウザに保存できる便利な仕組みです。ユーザーの入力を記憶したり、設定を保持したりすることで、より使いやすいkintoneアプリを実現できます。


お知らせ①

🌟無料&登録不要でプラグインのお試しが可能!🌟

kintoneユーザーの皆さん!

エムザスのkintoneプラグインはもう試しましたか?🤔
エムザスでは以下のようなプラグインを開発しています!👇

EMレポ - レコードの内容をPDF / Excelに出力できるプラグイン
EMレポのプラグイン画像
EMsheet - kintoneのレコードをExcelのように表示して編集できるプラグイン
EMsheetのプラグイン画像
EMdocMaker - アプリの関連図や定義書を出力し、アプリの分析ができるプラグイン
EMdocMakerのプラグイン画像
       
EMログ - 標準の監査ログでは取得できないアプリの操作ログを取得できるプラグイン
EMログのプラグイン画像
   
 
 
 

 

デモ環境で、ほとんどの機能が今すぐお試しいただけます✨

 

さらに、お客様のドメインで無料で3ヶ月間、すべての機能を試すこともできます!🎉

\たった1分で申し込み完了!/

それでは、本題に入ります!

1. localStorageとは?

localStorage は、Webブラウザにキーと値のペアでデータを保存できる仕組みです。特徴は以下の通りです:

  • ブラウザに永続的に保存(ページを閉じてもデータは残る)
  • 最大容量は約5MB程度(ブラウザによって異なる)
  • セッションをまたいで使用可能
  • 保存は簡単な文字列形式(JSONなどにして複雑な構造も保存可能)

対して sessionStorage は、ページを閉じるとデータが消える一時的な保存領域です。


2. localStorageの基本的な使い方

以下は基本的な操作です:

// 保存
localStorage.setItem('myKey', 'myValue');

// 取得
const value = localStorage.getItem('myKey');

// 削除
localStorage.removeItem('myKey');

// 全削除
localStorage.clear();

複雑なデータを保存したい場合は、JSON.stringify()JSON.parse()を使います。

// オブジェクトを保存
localStorage.setItem('userSettings', JSON.stringify({ view: 'grid', theme: 'dark' }));

// 取得して復元
const settings = JSON.parse(localStorage.getItem('userSettings'));

3. kintoneでのlocalStorage活用例

3-1. 検索条件の保存と復元

よく使う検索条件を記憶しておくことで、ユーザーは毎回入力し直さずに済みます。

(function () {
  'use strict';

  kintone.events.on('app.record.index.show', function (event) {
    const keyword = localStorage.getItem('searchKeyword');
    if (keyword) {
      document.querySelector('#my-search-input').value = keyword;
    }

    document.querySelector('#my-search-input').addEventListener('input', function (e) {
      localStorage.setItem('searchKeyword', e.target.value);
    });

    return event;
  });
})();

#my-search-input は対象のHTML要素に合わせて変更してください。


3-2. 表示モード(リスト/グリッド)の保存

ユーザーが選んだ表示モードを保持し、次回アクセス時に反映します。

(function () {
  'use strict';

  const STORAGE_KEY = 'viewMode';

  kintone.events.on('app.record.index.show', function (event) {
    const savedMode = localStorage.getItem(STORAGE_KEY) || 'list';
    changeView(savedMode);

    document.querySelectorAll('.toggle-button').forEach(btn => {
      btn.addEventListener('click', function () {
        const mode = this.dataset.mode;
        localStorage.setItem(STORAGE_KEY, mode);
        changeView(mode);
      });
    });

    return event;
  });

  function changeView(mode) {
    console.log('ビュー変更:', mode);
    // 実際のUI切り替え処理をここに
  }
})();

3-3. 入力内容の一時保存

長い入力フォームなどで、誤ってリロードしてもデータを復元できるようにしておく例です。

(function () {
  'use strict';

  kintone.events.on('app.record.create.show', function (event) {
    const savedMemo = localStorage.getItem('draftMemo');
    if (savedMemo) {
      event.record['メモ'].value = savedMemo;
    }

    kintone.app.record.setFieldShown('メモ', true);

    document.querySelector('[name="メモ"]').addEventListener('input', function (e) {
      localStorage.setItem('draftMemo', e.target.value);
    });

    return event;
  });
})();

4. localStorageを使う際の注意点

項目内容
容量制限ブラウザごとに上限あり(多くて5MB程度)
セキュリティ機密情報の保存は禁止(パスワード、トークンなど)
端末・ブラウザ依存同一ユーザーでも他端末・他ブラウザでは共有されない
シークレットモード通常より厳しい制限があるため動作確認が必要

5. 他の保存手段との比較

手段特徴持続性ユーザー別備考
localStorage永続保存、即時アクセスセキュリティ注意
sessionStorage一時的保存(タブのみ)タブ閉じで削除
kintone plugin configユーザー別設定管理中〜高プラグイン内のみ
kintone REST API(アプリに保存)正式なデータ保存開発コストが高め

6. まとめ

localStorageはちょっとしたユーザー設定や入力内容を保持するのにとても便利な手段です。kintoneの標準機能では実現できない「UX向上」を、簡単なコードで実装できます。

ただし、セキュリティや保存データの内容には十分注意してください。特に個人情報や機密情報の保存は禁止です。