メインコンテンツへスキップ
  1. SOroom/

ティラノV5でPCかブラウザか判別

ゲ制 ティラノスクリプト

V4だとNW.jsだったので$.isNWJS()で判定すればよかったのですが、V5はElectronになったので、そっちが必要になりました。何かまだよく分かっていませんが、私はとりあえずfirst.ksで以下のような感じにしています。

[iscript]
if($.isElectron() || $.isNWJS()){
    //PC
    sf.pc=true;
}
else{
    //ブラウザ
    sf.pc=false;
}
[endscript]

;ブラウザだったらプリロード用ファイル読み込み
[call storage="preload.ks" cond="sf.pc==false"]

ElectronかNW.jsでなければブラウザ判定ですね。これはtyrano>libs.jsの$.isNeedClickAudioで(以下引用)、

    $.isNeedClickAudio = function (){
        //プレイヤーはクリックの必要なし
        if($.isTyranoPlayer()){
            return false;
        }
        //ブラウザやスマホアプリは必要
        if($.isElectron() || $.isNWJS()){
            return false;
        }
        return true;
    }

となっていたので、これでいいんじゃないかというアバウトな感じです。ただ$.isNWJS()はまだ要るのだろうか……?(謎) あとスマホ系はよく分からんのでとりあえずPCかPCブラウザかという判定しか確かめられていません。ティラノプレイヤーもよく分からんのですよね。ノベコレにアップしてるだけでもこの判定入れた方がいいんだろうか。

9月11日追記 kag.jsのchechUpdateで以下のようにPCじゃない判定していたのでこっちの方が良いかも?どうなんだろう。

        if(!$.isNWJS()&&!$.isElectron()){
            call_back();
            return;
        }

ちなみに$.isNWJS()とかはtyranoフォルダのlib.jsで定義されています。アラートとかトランスとかで使われてる関数もここで定義されています。setStorageとかもそうですね。覗いてみるとなるほどなーとなります。