
1)웹서비스에서 생성한 사용자의 고유id인 external_id값을 앱으로 보내 푸시수신대상자로 지정하여 사용할 수 있도록 함.(external_id : 유니크한 사용자의 id값으로 사용자별로 db상에 고유한 id를 생성하여 사용)
2)푸시발신시 해당사용자의 external_id를 db에서 가져와 해당사용자에게 푸시발신(한사람 또는 여러사람에게 동시발송가능)
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"}));
});
<aside> 💡 https://documentation.onesignal.com/reference#section-send-to-all-subscribers-create-notification
</aside>
javascript 샘플코드 제공