参考サイト
【Swift4】iPhone・iPadなどの機種判定し処理を振り分ける方法【iOS9】 | ニートに憧れるプログラム日記
上記ページでもSwift4と書かれているが自分の環境ではうまく行かなかったので、試行錯誤した。
UIDevice.current.model で取得できるようだ。
あと、appleTVとcarPlayの場合何を返すのか確定できなかったので割愛した。
1 2 3 4 5 6 7 8 9 10 |
switch UIDevice.current.model { case "iPnone" : print("これはiPhone") break case "iPad" : print("これはiPad") break default: break } |
更に画面サイズで、細かいサイズ判定ができる。
画面が縦向きか横向きかで高さが変わるのでそれも考慮。
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 31 32 33 34 35 36 |
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^)\