ObjecTips

Swift & Objective-C で iOS とか macOS とか

ウェブブラウザでの位置情報に基づくアプリのURL

たまたまウェブサーフィンをしていたら iTunes でのアプリの URL が従来のものから変わっているものを発見した。
例えば Apple のリリースしている iBooks の場合以下のようになる。

USページ
https://itunes.apple.com/us/app/ibooks/id364709193?mt=8

JPページ
https://itunes.apple.com/jp/app/ibooks/id364709193?mt=8

発見したのはホストの先頭に geo が付くもの。 https://geo.itunes.apple.com/app/ibooks/id364709193?mt=8

ホストに geo が付いている URL だと国指定が無くても自動で位置情報から適切な Store を選択してリダイレクト表示してくれる。
上記の URL を開くと
https://itunes.apple.com/jp/app/id364709193?mt=8
にリダイレクトされる。

また、以下のように国指定があった場合でもホストに geo が付与されていれば国を無視して geo 優先でリダイレクトしてくれる。
https://geo.itunes.apple.com/us/app/ibooks/id364709193?mt=8
https://geo.itunes.apple.com/jp/app/ibooks/id364709193?mt=8

geo 無しの場合はリダイレクトはしないがUSのページが表示される。未確認だがこの画面は iTunes Connect でのアプリの「プライマリ言語」の設定と関連しているかも?
https://itunes.apple.com/app/id364709193?mt=8

なおこれらは Mac のウェブブラウザ上での話で、iPhoneSafari やアプリの中で

[[UIApplication sharedApplication] openURL:URL];

で URL を開く際には国指定があろうがなかろうが、geo があろうがなかろうがいずれも現在利用中の国の App Store が開く。