この現象が起こる要因
navigator.geolocation.getCurrentPosition() を使用すると、iPhoneのSafari上に、以下の二つの確認メッセージが表示される。
- (Safariで)位置情報の利用を許可するかどうか。
- (ドメインに対して)現在の位置情報を利用してよいかどうか。
上記の確認で、許可しない(利用しない)を選択すると、以降確認のダイアログが表示されず、エラー発生時のコールバック関数の引数であるオブジェクトには、以下の内容が返却される様になる。
obj.message : "User denied Geolocation"
obj.code : 1 (= PERMISSION_DENIED)
対処法として
iPhoneより以下の操作を行う事で、Safariの位置情報取得に関する設定を初期化する事が出来る。
「設定」->「一般」->「リセット」->「位置情報とプライバシーをリセット」
なお、このサイトが参考になりました。