次のようなカスタマイズをすることで、同一ユーザーに複数回表示されるアクションについて、前回の表示時にユーザーに最後に表示したステートを、初期表示させることができます。
カスタマイズした場合の挙動例
- ユーザーAに対して、ページAでアクションAを表示した
- ユーザーAは、アクションAの最小化表示(ステート1)をクリックし、ステート2が表示された
- 次のページでも同一アクションAがユーザーAに表示される際、前回表示されたステート2が初期表示される
カスタマイズ例
以下はサンプルコードです。実際には、テンプレートや期待される動作に応じて実装してください。
- アクションのJS中に記述された
widget.show();
を、次のように書き換えます
// before
widget.show();
// after
widget.onChangeVal('state', function(v) {
widget.storage.local.store('#{campaign_id}_last_state', v.newVal);
});
var last_state = widget.storage.local.restore('#{campaign_id}_last_state');
if (last_state) {
widget.setState(Number(last_state));
} else {
widget.show();
}
注意点
- このカスタマイズは、Webサイトに配信されるアクションでしか機能しません
- ステートの保持には、ブラウザのlocalStorageを利用しています。そのため、次の注意点があります
- ドメインを超えてステートを引き継ぐことはできません
- localStorageが削除された場合は保持していたステートも消去されます