【Swift4】機器がiPhoneかiPadかを判定。画面サイズでも判定。

参考サイト
【Swift4】iPhone・iPadなどの機種判定し処理を振り分ける方法【iOS9】 | ニートに憧れるプログラム日記

上記ページでもSwift4と書かれているが自分の環境ではうまく行かなかったので、試行錯誤した。
UIDevice.current.model で取得できるようだ。
あと、appleTVとcarPlayの場合何を返すのか確定できなかったので割愛した。

        switch UIDevice.current.model {
        case "iPnone" :
        print("これはiPhone")
            break
        case "iPad" :
            print("これはiPad")
            break
        default:
            break
        }

更に画面サイズで、細かいサイズ判定ができる。
画面が縦向きか横向きかで高さが変わるのでそれも考慮。

    func sizeCheck() {
        //画面のサイズを取得
        let rect1 = UIScreen.main.bounds
        print("画面のサイズチェック rect1.size.width : %f , rect1.size.height : %f", rect1.size.width, rect1.size.height)
        var size = CGFloat()

        //画面の縦横でサイズが変わるため大きい方のサイズを取得
        if rect1.size.height > rect1.size.width {
            size = rect1.size.height
        }else{
            size = rect1.size.width
        }
        
        switch size {
        case 896:
            print("これはiPhoneXR,XS Max 6.1,6.5インチ")
            break
        case 812:
            print("これはiPhoneX,XS 5.8インチ")
            break
        case 736:
            print("これはiPhone66s78plus 5.5インチ")
            break
        case 667:
            print("これはiPhone66s78 4.7インチ")
            break
        case 568:
            print("これはiPhone5,5s,5c,SE 4インチ")
            break
        case 480:
            print("これはipad互換 3.5インチ")
            break
        default:
            break
        }
    }

機種も変数で返してくれたら良いのになー。
うじゃうじゃ。

追記。
google Analytictから吐き出されるログを見てたら

“&dm” = “iPhone10,3”;
“&ds” = app;
“&sr” = 1125×2436;
“&t” = screenview; 

とゆーぶぶんが。
なんかで判定はできるんやろな。
うじゃうじゃ。

追記。2018/12/24
[iOS][Android][Tips] デバイスモデル名を取得する | DevelopersIO
上記サイトを見ると、C 言語のライブラリ関数である utsname を使用 するとわかるそうですが、
私には何のことかよくわかりませんでした。/(^o^)\

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です