앱케이크_appcake_하이브리드앱제작_Admin.png

사용자 디바이스로 위치정보(위도/경도) 수집이 필요한경우, 앱이 비활성화되어 있는 상태의 백그라운드에서도 위치 조회/수집이 필요한 경우가 생기게됩니다. 이 백그라운드라는 것은 앱을 실행했지만 화면이 꺼지거나, 앱이 내려가 있는경우와 앱을 실행하고 있지 않은경우를 모두 포함합니다. 이렇게 백그라운드인 경우에도 사용자의 위치(위도/경도)정보가 조회되어 수집되어 고객님의 웹서버와 연동처리가 되도록 하기위해 아래 가이드를 참고하여 개발하면 됩니다.

1**.백그라운드 위치 수집 시작 호출**

//아래처럼 js함수를 만들고 호출.
function background_geo_start(){ 
	var param = {
      action:"background_start",  //변경하면 안됩니다.
	    distanceFilter:5, //(단위:미터)기기의 현재 위치에서 새로운 위치 정보를 업데이트하기 위해 필요한 최소 이동 거리(미터 단위)를 설정.
      user_data:{"userid":"user000111"}, //(json 규격)위경도와 함께 웹서버로 전달될 사용자 정보 설정, 예시 : {"userid":"user000111","usertype":"man01"}
      schedule: ["1,2,4,5 09:00-18:00"] //=> 반복 스캐줄지정이 필요할때 : 1~7=월~일요일 시작시간-종료시간
   }
	webkit.messageHandlers.cordova_iab.postMessage(JSON.stringify(param));
}

//schedule => 여러 시간대를 주고 싶으면 배열에 아래처럼 여러 규칙을 넣으면 됩니다.
//schedule: ["1,3,5 09:00-12:00", "1,3,5 13:00-18:00"]
//위 시작호출을 중복호출시엔 마지막 호출정보로 업데이트가 됩니다.

2.백그라운드 위치 수집 종료 호출

//아래처럼 js함수를 만들고 호출.
function background_geo_stop(){
	var param = {
		action:"background_stop"
	};
	webkit.messageHandlers.cordova_iab.postMessage(JSON.stringify(param));
}

3.백그라운드 위치 연동 API URL을 만들어 알려 주세요.

{
    "data": {
		    "user_data":{"userid":"사용자id"},  //백그라운드 시작시 앱으로 넘겨준 속성 및 값
        "latitude":23.232323,
        "longitude":37.373737,
        "speed":1.45,
        "timestamp":"2025-07-16T21:43:25.123Z",
        "heading":271.3
    }
}

/*
latitude : Float	
longitude : Float	
speed	: Float	(Meters)m/s
heading	: Float	(Degrees)
timestamp	: String	ISO-8601
*/

4.기타사항