Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Geolocation senza autorizzazione

    salve!
    ho usato questa funzione per geolocalizzare l'utente:
    codice:
    function getLocation() {
        if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(function(position) {
                console.log(position.coords.latitude + " - " + position.coords.longitude);
            });
        }
    }
    in generale funziona, ma richiede l'uatorizzazione.
    il problema è che così facendo non funziona se la richiamo da un form, perchè non faccio in tempo a concedergli l'uatorizzazione.
    come si può evitare questo comportamento??

  2. #2
    Bisogna che intercetti l'evento submit del form, recuperi la location e poi mandi il risultato, magari via AJAX. Oppure chiedi la location all'onload, cosi' quando mostri il form ce l'hai già.
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  3. #3
    eh si ma io già intercetto l'evento nel form.
    quando invio il form mi compare la finestrella che mi dice se voglio dare l'autorizzazione per la localizzazione.
    io vorrei levare questo comportamento ed evitare di dover sempre cliccare su Autorizza.

    per ho adottato la stessa soluzione che mi hai detto, e cioè di chiederla all'inizio e salvarla in sessione/cookie/storage così ce l'ho sempre.

  4. #4
    leggendo qua e la mi pare di capire che non sia possibile evitare di chiedere il permesso.
    quindi per ora ho optato per una soluzione del genere:
    codice:
    function getLocation() {
        if (sessionStorage.getItem("latitudine") === null) {
            if (navigator.geolocation) {
                navigator.geolocation.getCurrentPosition(function(position) {
                    if (typeof(sessionStorage) !== "undefined") {
                        sessionStorage.setItem("latitudine", position.coords.latitude);
                        sessionStorage.setItem("longitudine", position.coords.longitude);
                        console.log(sessionStorage.getItem("latitudine") + " - " + sessionStorage.getItem("longitudine"));
                    }
                });
            }
        } else {
            console.log(sessionStorage.getItem("latitudine") + " - " + sessionStorage.getItem("longitudine"));
        }
    }
    ho usato sessionStorage in modo da richiederlo all'utente solo la prima volta che entra nella pagina fino a che non chiude il browser.

    poi metterò un codice per chi non supporta sessionStorage (anche se essendo a scopo didattico non mi interessa più di tanto).

    se per caso qualcuno ha una soluzione alternativa sono tutto orecchi!
    ciao!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.