jsPsychはパソコンだけでなく,スマートフォンでも実施することができます。しかしながら,パソコンのみに最適化している場合やパソコンでのみ(またはスマートフォンでのみ)実施してもらいたい場合も多いでしょう。そこで,OSによって条件分岐する必要がでてきます。OSを取得して,そのOSに合わせて挙動を変えることを目指します。OSの取得にはplatform.jsが利用できます。以下のgithubから入手してください。

bestiejs/platform.js

htmlまたはjsでplatform.jsを読み込んでから使用します。以下のコードを実行すると,スマートフォンの場合は,timelineにスマートフォン用ページを追加します。スマートフォン用ページではメッセージの表示後に,実験を中止(jsPsych.endExperiment())します。スマートフォン以外の場合(else以下)は実験を開始するページを入れています。実際に使う場合には,else以下でtimelineに実験用ページを追加していくことになるかと思います。なお,スマートフォンと書いていますが,厳密にはOS(Android or iOS)で判定しているので,スマートフォン以外のタブレットもOSによっては中止対象に含まれています。なお,platform.jsではブラウザによる分岐も実装可能です。

//スマートフォンでの終了画面
const smartPhonePage = {
    type: 'html-keyboard-response',
    stimulus: '申し訳ありません。スマートフォンでは実施できません。パソコンにて実施してください。',
    trial_duration: 5000,
    choices: jsPsych.NO_KEYS,
    on_finish: function (data) {
        jsPsych.endExperiment('');
    }
};

//PCでの終了画面
const pcPage = {
    type: 'html-keyboard-response',
    stimulus: '実験を開始します。',
    trial_duration: 5000,
    choices: jsPsych.NO_KEYS
}

//timelineを作成
let timeline = [];

//OSを取得
const osName = platform.os.toString().toLowerCase();

//スマートフォンの場合
if (osName.indexOf('android') !== -1 | osName.indexOf('ios') !== -1)
{
	timeline.push(smartphonePage);
}
//スマートフォン以外の場合
else
{
	timeline.push(pcPage);
}

jsPsych.init({
	timeline: timeline
})

参考

JavaScriptでブラウザとOSを判定する2つの方法 - Qiita

© 2019 Masanori Kobayashi