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

1.연동 프로세스

1)웹서비스에서 생성한 사용자의 고유id인 external_id값을 앱으로 보내 푸시수신대상자로 지정하여 사용할 수 있도록 함.(external_id : 유니크한 사용자의 id값으로 사용자별로 db상에 고유한 id를 생성하여 사용)

2)푸시발신시 해당사용자의 external_id를 db에서 가져와 해당사용자에게 푸시발신(한사람 또는 여러사람에게 동시발송가능)

2.기본 연동가이드

1)웹서비스의 db 사용자 테이블에 external_id에 해당하는 필드를 생성하여 저장/관리

2)사용자 로그인시(인증완료시) db사용자테이블에 해당사용자의 external_id를 앱단으로 보냄.

3)아래처럼 웹소스를 사용하여 external_id를 앱으로 보냄(어느 페이지에서든 사용가능)

	
	// 앱단 메세지 핸들러 호출상태 체크 함수
	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: 최대 시도 횟수에 도달했습니다.');
	    }
	}
	
	
	//메세지 핸들러 호출함수 - external_id 값을 "user_1234567" 으로 호출/설정
	waitForCallHandler(function() {
	    window.webkit.messageHandlers.cordova_iab.postMessage(JSON.stringify({"action": "set_external_id","external_id": "user_1234567"}));
	});

3.푸시발신 스크립트

<aside> 💡 https://documentation.onesignal.com/reference#section-send-to-all-subscribers-create-notification

</aside>

javascript 샘플코드 제공