[追記]
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秋?