位置情報サービスを使用する私のWebアプリは、「許可しない」ユースケースのテストを開始するまで正常に機能していました。「Safari」に「OK」と答えても、iPhoneは位置情報サービスを許可しません。現在の位置情報を使用したいのですが。
再現するには...iOS5.1でiPhoneを使用する:
- 位置情報サービスを呼び出すWebページをロードします(http://smithsrus.com/geo.htmlなど)
- ユーザー許可プロンプトが表示されたら、「許可しない」と答えます。
- ページをリロードし、「許可しない」とさらに2回答えます。
- ページをリロードして、プロンプトが表示されずに「ユーザーが拒否されました」と表示されます。
- [設定]->[一般]->[リセット]->[場所の警告をリセット]に移動し、[警告をリセット]をタップします。
- Safariに戻り、ページをリロードすると、ユーザー権限のプロンプトが表示されます。
- 「OK」と答えても、Webページは拒否されます。
Safariを強制終了して再起動し、すべてのWebサイトデータを削除し、位置情報サービスのオンとオフを切り替え、再起動しますが、Safariは、必要と言っても位置情報サービスを実際に許可することを拒否します。
これらの手順を実行すると、そのWebドメインは位置情報サービスを利用できなくなります。テストするドメインが不足しています
多くのStackOverflow、Apple Developer、その他のサイトで回答を検索しました。しかし、それは確かに私にはバグのように見えます。「許可」でプロンプトに応答しますが、拒否されるのはバグである必要があります。「許可」と答えると、位置情報サービスのアイコンが画面の上部に短時間表示されますが、その後消えます。位置情報サービスの設定では、Safariが「オン」とその横に灰色のアイコンで表示されます。
位置情報警告のリセット、位置情報サービスのオンとオフの切り替え、ブラウザの終了と再起動を組み合わせて試したところ、
「操作を完了できませんでした。(kCLErrorDomainエラー1)」という新しいエラーが発生しました。バグがあるようです。
私はむしろそれが私がしている愚かなことでありたいです、誰かが私に言うことができますか?