투케이2K

339. (javaScript) 자바스크립트 navigator.permissions.query 사용해 퍼미션 권한 부여 상태 확인 - geolocation 본문

JavaScript

339. (javaScript) 자바스크립트 navigator.permissions.query 사용해 퍼미션 권한 부여 상태 확인 - geolocation

투케이2K 2023. 11. 6. 19:17

[개발 환경 설정]

개발 툴 : Edit++

개발 언어 : JavaScript

 

[소스 코드]

 

    <!-- ===================================================================================================== -->
    <!-- [자바스크립트 코드 지정] -->
    <!-- ===================================================================================================== -->
    <script>


        /*
        -----------------------------------------
        [요약 설명]
        -----------------------------------------
        1. permissions.query : Permissions 범위에 대한 사용자 권한 상태를 반환합니다
        -----------------------------------------
        2. query : Key , value 쌍 목록으로 구성된 작업 에 대한 옵션을 설정하는 개체입니다
        -----------------------------------------
        3. 참고 사이트 : 

        https://developer.mozilla.org/en-US/docs/Web/API/Permissions/query

        https://developer.mozilla.org/en-US/docs/Web/API/Permissions
        -----------------------------------------
        */



        // [html 최초 로드 및 이벤트 상시 대기 실시] 
        window.onload = async function() {
            console.log("");
            console.log("=========================================");
            console.log("[window onload] : [start]");
            console.log("=========================================");
            console.log(""); 
            

            // [퍼미션 권한 부여 확인 constraints 지정]
            var constraints = {
                name: "geolocation"
            }


            // [퍼미션 권한 부여 상태 확인]
            const permissionGrangCheck = await navigator.permissions.query({ name: "geolocation" }).then((result) => {
                if (result.state === "granted") {
                    console.log("");
                    console.log("=========================================");
                    console.log("[permissions] : [granted] : 퍼미션 권한 >> 정상 부여 상태");
                    console.log("=========================================");
                    console.log(""); 

                } else if (result.state === "prompt") {
                    console.log("");
                    console.log("=========================================");
                    console.log("[permissions] : [prompt] : 퍼미션 권한 >> 사용자에게 새롭게 요청 필요");
                    console.log("=========================================");
                    console.log(""); 
                }
                else {
                    console.log("");
                    console.log("=========================================");
                    console.log("[permissions] : [else] : " + result.state);
                    console.log("=========================================");
                    console.log(""); 
                }

            });

        }; 

        
    </script>

 

반응형
Comments