[Javascript] geolocalizzazione + attorno a me (wiki)

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
ciao
ho questo script che dovrebbe servire su mobile a elencare i siti di intersse in un certo raggio da dove è posto il cellulare.
per fare delle prove ho commentato la riga relativa alla width del dispositivo quindi è visibile/funzionante anche su desk.
il problema è il seguente:
- su desk geolocalizza, si collega a wiki e mostra i siti interssanti nelle vicinanze (so che è assurdo usarlo su desk)
- su cellulare al contrario, nonostante che sia permessa/attiva la geolocalizzazione, il risultato è "Errore: permission denied"
ci sto impazzendo da giorni non riesco a capire perchè dia quel risultato
se volete provare www.borgo-italia.it/geo/attorno-01.php
HTML:
<!DOCTYPE HTML>
<html>
<head>
<!-- vari tag meta -->
<meta name="viewport" content="width=device-width, user-scalable=0, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0" />
<style type="text/css">
/*css......*/
body {
    font-family: Arial, Helvetica, sans-serif;
    background-color:#666666;
}
/*css......*/
</style>
<script src="http://maps.google.com/maps/api/js?sensor=true"></script>
<script type="text/javascript">
if (navigator.geolocation) {
//riga per verifica width commentata per provare da desk
//if (document.documentElement.clientWidth < 768) {
    window.onload = function() {
        navigator.geolocation.getCurrentPosition(
              function(o) {
                    if( o.coords && o.coords.latitude && o.coords.longitude ) {
                          var s = document.createElement('script');
                          s.src = 'http://api.geonames.org/findNearbyWikipediaJSON?lat='+
                          o.coords.latitude + '&lng=' + o.coords.longitude +
                          '&radius=10&maxRows=5&username=codepo8&callback=wiki&lang=it';
                          document.getElementsByTagName('head')[0].appendChild(s);
                    }//fine if
              },//fine function o
 
              function(error){
                   var errors = [ 'none', 'permission denied', 'position unavailable',  'timeout' ];
                    document.getElementById('luoghi').innerHTML = '<li>Errore: ' + errors[ error.code ] + '</li>';
              },//fine funcion error
 
              {enableHighAccuracy: true, timeout: 27000}
          );//fine navigator
         return false;
      }//fine windows
//};//fine if width

function wiki( o ) {
    if( o.status ) {
        out = '<li><?php echo $pr_wiki[$lingua]?></li>';
    } //fine if
    if(o.geonames && o.geonames.length > 0) {
        out = '';
        for(var i=0;i<o.geonames.length;i++){
            var now = o.geonames[i];
            out += '<li>'+
            '<a href="http://' + now.wikipediaUrl + '" target="_blank">' + now.title+ '</a>'+'</li>';
        }//fine for
    } else {
        out += '<li><?php echo $no_trov[$lingua]?></li>';
    }
      document.getElementById('luoghi').innerHTML = out;
}//fine function wiki
}else{
  alert('<?php echo $no_geo[$lingua]?>');
}
</script>
</head>
<body>
<!-- altro html -->
<div id="around">
 <!--Around you<-->
 <ul id="luoghi"></ul>
</div>
</body>
</html>
qualcuno sa dirmi qualcosa?

p.s.
lo scrip è scopiazzato
 
Il problema te lo da su tutti gli smartphone (iOS/Android)?
Hai provato con diversi browser (Safari/Chrome/Opera/ecc.)?
Sempre lo stesso risultato?

N.B.: dal mio Mac il risultato è "Position Unavailable" (ovviamente ho autorizzato la geolocalizzazione).....
 
Ti confermo che su iPhone (Safari Mobile) da "permission denied"

MI CORREGGO:

Avevo disabilitato io il servizio di geolocalizzazione... l'ho riattivato e FUNZIONA perfettamente
 
Chiedi a Max1 di verificare di non avere qualche blocco "salva privacy" sul browser di Android...
 
No. Su browser android funziona bene non funziona con chrome su android verificato blocchi non ce ne sono. Per scrupolo ho verificato anche su altri dispositivi con chrome e provato a disinstallare e a reinstallare chrome riconfigurandolo ma nulla non funziona.
Funziona solo su dolphin browser su safari e su android
 
Li dice che dalla versione di chrome 50 in poi la geolocalizzazione non funzionerà più. io infatto ho la versione 53.
Specifica che non funzionerà più con i HTTPS:// ma non dovrebbe essere il caso suo eppure....

Provato ora anche messo lo script su un HTTP:// con chrome non va
 
Ultima modifica:
ciao
ho letto (cercato di.. maledetto albionico), da quello che ho capito se voglio far funzionare la geoloc in pratica il mio sito dovrebbe diventare https// : www. borgo-ecc e ottene un certificato SSL e installarlo (dove/chi non ho capito).

detto questo sarebbe interessante sapere quanti cellulari usano crome, se pochi sbattersene.
oppure o rinunciare o mettere un alert "se stai utilizzando chrome la pagina non funziona, abbandonalo limita la tua libertà"

p.s.
sono perfettamente d'accordo con il primo commento "..chome non è la balia della reta..." e forse farebbero meglio a guardare altre problematiche più gravi

dimenticavo:
io ho capito, ma forse sbaglio, che non funzionerà piu con gli http// ma solo con gli https//
 
Chrome può essere installato su tutti i cellulari perchè è disponibile per tutti i sistemi operativi.
Un'altro problema di Chrome versione 50 e +, oltre che necessitare dei protocolli di sicurezza, attiva il GPS e se ne frega della geolocalizzazione con l'IP e la cella dove è aganciato il tel., pertanto che venga attivato il GPS senza un'avviso per l'utente non è bello.
io ho capito, ma forse sbaglio, che non funzionerà piu con gli http// ma solo con gli https//
Non funziona più ne con l'uno ne con l'altro, ma funziona solo se installi i protocolli con Https://
 
ciao
ci pensero un attimo, poi mi sa che non ne farò di nulla.
a questo punto l'unica cosa che so che farò la settimana prossima che dovrebbe arrivarmi il nuovo pc se c'è installato crome lo disinstallo
 

Discussioni simili