2017-03-12 29 views
0

私のウェブサイトにジオロケーションがあります - 私はjavascriptでロケーションを取得できますが、アンドロイドデバイスのウェブビューを使用してロケーションを取得することはできません。私は同じサイトを使用しますが、動作しません。Android搭載端末でジオロケーションが動作しない

私のサイト:https://www.ardakazanci.thecompletewebhosting.com/petsHelper/paylasim.php

私のアンドロイドコード:

public class MainActivity extends AppCompatActivity { 




     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
      WebView webview = (WebView) findViewById(R.id.webview); 
      webview.getSettings().setJavaScriptEnabled(true); 
      webview.loadUrl("https://www.ardakazanci.thecompletewebhosting.com/petsHelper/paylasim.php"); 
     } 
    } 

それはウェブ上で正常に動作します。 WebViewでは動作しません。ありがとうございました。

エラー:

ジオロケーションサービスは

私のjavascriptのコードを失敗しました - paylasim.php

<script> 
     // Note: This example requires that you consent to location sharing when 
     // prompted by your browser. If you see the error "The Geolocation service 
     // failed.", it means you probably did not give permission for the browser to 
     // locate you. 

     function initMap() { 


      var outputlat = document.getElementById('latitude'); // Enlemi tutsun 
      var outputlng = document.getElementById('longitude'); // Boylamı tutsun 


      var map = new google.maps.Map(document.getElementById('map'), { 
       center: {lat: -34.397, lng: 150.644}, 
       zoom: 15 
      }); 
      var infoWindow = new google.maps.InfoWindow({map: map}); 


      // HTML 5 ile geo location olayının sağlanması 

      if (navigator.geolocation) { 
       navigator.geolocation.getCurrentPosition(function (position) { 

        outputlat.value = position.coords.latitude; 

        outputlng.value = position.coords.longitude; 

        var pos = { 
         lat: position.coords.latitude, 
         lng: position.coords.longitude 
        }; 

        infoWindow.setPosition(pos); 
        infoWindow.setContent('Lokasyon bulundu.'); 
        map.setCenter(pos); 
       }, function() { 
        handleLocationError(true, infoWindow, map.getCenter()); 
       }); 
      } else { 
       // Eğer browser desteklemiyor ise 
       handleLocationError(false, infoWindow, map.getCenter()); 
      } 
     } 

     function handleLocationError(browserHasGeolocation, infoWindow, pos) { 
      infoWindow.setPosition(pos); 
      infoWindow.setContent(browserHasGeolocation ? 
       'Error: The Geolocation service failed.' : 
       'Error: Your browser doesn\'t support geolocation.'); 
     } 
    </script> 
+0

ブラウザの権限を確認しましたか?それは場所を許可していますか? – Gabriel

+0

はい、

答えて

1

は、このコードを試してみてください。

import android.webkit.GeolocationPermissions; 
import android.webkit.WebChromeClient; 

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     WebView webview = (WebView) findViewById(R.id.webview); 

     webview.getSettings().setJavaScriptEnabled(true); 
     webview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 
     webview.getSettings().setBuiltInZoomControls(true); 
     webview.getSettings().setGeolocationEnabled(true); 

     webview.setWebChromeClient(new WebChromeClient() { 
     public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback) { 
      callback.invoke(origin, true, false); 
      } 
     }); 

     webview.loadUrl("https://www.ardakazanci.thecompletewebhosting.com/petsHelper/paylasim.php"); 
    } 

またuは許可を設定していることを確認しますマニフェスト内:

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
+0

申し訳ありません、私は不注意に作った:)) –

+0

私は持っています – rafsanahmad007

+0

再びエラー:( - > http://1.1m.yt/bu7vrjc.pngスクリーンショット –

関連する問題