2015年4月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
無料ブログはココログ

« 作りたくて作ってみた - "NO UI" っぽい(?) 編集シール | トップページ | 遂に、コピペシールが update できました/v.2.10.0 の (?) storage 機能 »

2014年8月24日 (日)

MOONPhase v.2.10.0 対応

編集シールができて、MOONPhase も update されて喜んでいたのですが、「昔のシールが version check にひっかかって、2.10.0 で動かない」という報告を受けました。

なるほど確かに。いや、考えてみたら、当然なんですよ。version check は以下のコードで行っているのですが、これは version のそれぞれの桁が 2 桁になることを想定していません。まさか、ver.2.9.1 の次が ver.3.0.0 ではなくて、ver.2.10.0 とは思っていなかったので。

var isVersionSatisfactoryFor = function( requiredVer ){
    var message;
    switch ( MOON.getLocale() ) {
        case "ja-jp":
            message = 'MOONPhase ver.' + requiredVer + ' 以上に update しないと使用できません';
            break;
        case "en-us":
        default:
            message = 'To use this sticker, update to MOONPhase ver.' + requiredVer + ' or greater is required.';
            break;
    }

    if ( MOON.getSystemVersion() < requiredVer ) {
        MOON.alert( message, function(){ return false; } );
    } else {
        return true;
    }
};

安易にサボらずに、対応できるように書き直しました。

var isVersionSatisfactoryFor = function( requiredVer ){
    return true;
   /*
    * MOONPhase v.2.10.0 の release に伴い、
    * '2.10.0' > '2.9.1' が成立しなくなってしまったので、
    * 安直な文字列比較をあきらめて、数値比較にする。
    */
    function ver2array( verStr ){
        var verIntArray = [],
            strArray = verStr.split( '.' );
            for ( var i = 0, len = strArray.length; i < len; i++ ) {
                verIntArray.push( parseInt( strArray[i] ) );
            }
        return verIntArray;
    }

    function isLessThan( a, b ){
        for ( var i = 0, len = a.length; i < len; i++ ) {
            if ( a[i] >= b[i] ) return false;
        }
        return true;
    }

    var message;
    switch ( MOON.getLocale() ) {
        case "ja-jp":
            message = 'MOONPhase ver.' + requiredVer + ' 以上に update しないと使用できません';
            break;
        case "en-us":
        default:
            message = 'To use this sticker, update to MOONPhase ver.' + requiredVer + ' or greater is required.';
            break;
    }

//    if ( MOON.getSystemVersion() < requiredVer ) {
    if ( isLessThan( ver2array(MOON.getSystemVersion()), ver2array(requiredVer) ) ) {
        MOON.alert( message, function(){ return false; } );
    } else {
        return true;
    }
};

取り急ぎ、これで version check を回避できる。「手書き縮小貼り付けシール 」 を update しましたので、お困りの方は update してください。

追記:「定着シール 」も対応しました

« 作りたくて作ってみた - "NO UI" っぽい(?) 編集シール | トップページ | 遂に、コピペシールが update できました/v.2.10.0 の (?) storage 機能 »

enchantMOON」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1527616/57167541

この記事へのトラックバック一覧です: MOONPhase v.2.10.0 対応:

« 作りたくて作ってみた - "NO UI" っぽい(?) 編集シール | トップページ | 遂に、コピペシールが update できました/v.2.10.0 の (?) storage 機能 »