2017-04-12 4 views
0

私はこの単純なジオロケーションコードをテストしていますが、何らかの理由でiOSデバイスで動作しません。私はMacOS、Windows、Windows Phone、Androidの携帯電話などでテストしました。このHTML5ジオロケーションコードは、iOS上でユーザーの場所を取得するためには機能しません。

権限を付与した後、常に「POSITION_UNAVAILABLE」エラーが表示されます。

navigator.geolocation.getCurrentPosition(
    function success(position) { 
    var primary = getUniqueId(); 

    var url = endpointBaseurl + 
     '?property_code=' + propertyCode + 
     '&distribService=' + distribService + 
     '&lat=' + position.coords.latitude + 
     '&lon=' + position.coords.longitude + 
     '&distribTarget=' + primary; 

    //Update the line below to be one of your links. 
    addMenuItem('Offers', url); 
    }, 
    function error(err) { 
    switch (err.code) { 
     case 1: 
     alert("You must allow location in order to receive tobacco offers. Please refresh and try again.") 
     break; 
     case 2: 
     alert('POSITION_UNAVAILABLE'); 
     break; 
     case 3: 
     alert('Error 3'); 
     break; 
     default: 
     alert("Unable to determine your location. Please refresh and try again."); 
    } 
    }, options); 

私は物理デバイスとBrowserstackでテストしました。サイトはHTTPS上で動作しています。

なぜ、どうしたらうまくいかないのか、どうやってデバッグを進めていいのですか?私はこの上に私の髪を引っ張っています。

+0

StackOverflowで[this](http://stackoverflow.com/questions/30998246/html5-geolocation-not-working-all-the-time-on-ios)の問題を見ましたか?何か助けになるかもしれない。 –

答えて

0

編集:thisページで 、それは次のよう言う:位置の少なくとも1つの内部ソースが内部エラーを返したため

ジオロケーションの取得に失敗しました。

PositionError.messageを使用してみてください(お使いの場合には、err.message):

は エラーの詳細を説明する人間が読めるのDOMStringを返します。仕様は、主に のデバッグ用であり、ユーザーインターフェイスに直接表示されないように注意しています。


あなたは、位置情報サービスをオンにし、常ににまたはiOSの設定で使用している間設定されていることを確認してください。

+0

ありがとう、ここにはエラーオブジェクトがあります。 'PositionError {code:3、message:"タイムアウト期限切れ "、PERMISSION_DENIED:1、POSITION_UNAVAILABLE:2、TIMEOUT:3}' –

+0

タイムアウトを20000に増やしたばかりです。 'PositionError {code:2、message:"操作を完了できませんでした(kCLErrorDomainエラー0) "、PERMISSION_DENIED:1、POSITION_UNAVAILABLE:2、TIMEOUT:3}' –

関連する問題