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

1.푸시수신 상태 연동 기능

1)푸시 허용/거부 상태값을 조회할 수 있음.

2)푸시 허용/거부 설정 웹화면에서 호출하여 변경할수 있음.

2.푸시 허용/거부 처리 참고내용

1)앱단에서의 푸시수신 허용/거부 처리는 “푸시서버”의 api를 사용하여 수신 허용/거부 처리하는것임.

2)디바이스 os설정 화면의 알림설정값을 앱단에선 강제 변경 할 수 없음.

3)아이폰의 경우처럼 최초 푸시알림 권한사용을 거부한상태에서... 푸시 허용/거부 설정화면에서 허용시엔 디바이스 설정화면으로 이동하여 직접 사용자가 활성화 할수 있도록 하는 UI가 적용됩니다.

3.웹쪽 적용소스 : 푸시 허용/거부 상태 조회 샘플코드


// 앱단 메세지 핸들러 호출상태 체크 함수
function waitForCallHandler(callback_func, attempts = 0) {
    if (window.webkit && window.webkit.messageHandlers) {
        callback_func();
    } else if (attempts < 100) { // 100회까지 시도
        setTimeout(function() {
            waitForCallHandler(callback_func, attempts + 1); // 시도 횟수를 증가
        }, 100);
    } else {
        //console.log('waitForCallHandler: 최대 시도 횟수에 도달했습니다.');
    }
}

//메세지 핸들러 호출함수
waitForCallHandler(function() {
    var param = {
          action: 'get_pushstate',
          callback: 'get_pushstate',  //상태값을 받을 콜백함수명
      }
		//앱단으로 푸시수신 상태값 조회요청
    window.webkit.messageHandlers.cordova_iab.postMessage(JSON.stringify(param));
});

function get_pushstate(push_state) {
    // alert(push_state);  //푸시수신 상태값 확인(1이면 허용상태, 0이면 거부상태)
    if (push_state == 1) {
        //푸시수신 허용 상태로서 아래에 허용상태표시 로직 작성하면 됩니다.
    }else{
				//푸시수신 거부 상태로서 아래에 거부상태표시 로직 작성하면 됩니다.
		}
}

4.웹쪽 적용소스 : 푸시 허용/거부 설정 연동 샘플코드

function pushauth_agree(val) {
			var param = {
		      action: 'set_pushstate',
		      enable_value: val,  //기본 1로 세팅하면 됨(1이면 무조건 알림권한활성화 및 수신허용처리함, 0이면 수신거부처리함)
		      callback: 'get_pushstate',  //현재 상태값을 받을 콜백함수명 (리턴되는값은 처리이후의 값이 아닌 현재상태값임)
		  }
			//앱단으로 푸시수신 상태값 전달/처리요청
      webkit.messageHandlers.cordova_iab.postMessage(JSON.stringify(param));
}

function get_pushstate(push_state) {
    // alert(push_state);  //푸시수신 상태값 확인(1이면 허용상태, 0이면 거부상태)
    if (push_state == 1) {
        //푸시수신 허용 상태로서 아래에 허용상태표시 로직 작성하면 됩니다.
    }else{
				//푸시수신 거부 상태로서 아래에 거부상태표시 로직 작성하면 됩니다.
		}
}

.....

<!-- 아래 적용된 onclick 함수호출구문은 토글버튼사용시엔 해당 토글버튼 액션에 사용되도록 함 -->
<div onclick="pushauth_agree(1)">푸시수신 허용</div>
<div onclick="pushauth_agree(0)">푸시수신 거부</div>

Powered by (주)옐로우윈