LoginSignup
19

More than 5 years have passed since last update.

iOS10から位置情報取得にはHTTPS必須?

Last updated at Posted at 2016-08-16

[追記]
HTTP で geolocation の位置情報が取得できないのは、ブラウザの仕様みたいですね。
iphone 以外の chrome では既にその仕様になっているようです。

ios10 safari がその仕様に沿うようになったということだと思います。


Google Maps Geocoding API を使って現在地からスポットを探す機能を実装しています。

上記APIには、現在地の緯度経度を取得する
navigator.geolocation.getCurrentPosition(successCallback(), errorCallback())
という関数が用意されています。
この関数は、位置情報取得に成功した場合に第一引数を、失敗した場合に第二引数をコールバックして実行します。

iOS10 にアップデートしたテスト機で API を触っていると、エラーコード "POSITION_UNAVAILABLE" で失敗する現象に出くわしました。

原因は、HTTPS(SSL)通信が完全では無かったことです。

  • HTTPで読み込んでいるリソース(画像/広告)があった
  • 開発環境で証明書が効いてなかった

ATSによってアプリがHTTPS必須になることは警戒していましたが、
今後、広い分野でHTTPSの制約が出てきそうですね。
今秋までにフルSSLを決意した一日でした。

私自身の知識不足と、今の時代にHTTPを使っていること自体..、
ということは置いといて、
この記事が同じことでハマる人のためになれば幸いです。
※iOS10のリリースは2016秋?

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19