메인 콘텐츠로 건너뛰기
OneSignal은 기기 중심 모델(Player ID)에서 사용자 중심 모델(OneSignal ID)로 업데이트되었습니다. 마이그레이션 가이드는 사용자 모델 마이그레이션 가이드를 참조하세요.레거시 기기 중심 구현에 대한 문서는 버전 9를 참조하세요.

개요

이 문서는 OneSignal의 레거시 Player 모델 웹 SDK의 메서드, 속성 및 이벤트를 새로운 User 모델 SDK에 매핑합니다. 각 섹션에는 일치하는 TypeScript 코드 예제가 포함되어 있어 통합을 업데이트하는 방법을 명확하게 보여줍니다. 모든 예제는 데모 목적으로 단순화되었습니다. 완전하고 최신 구현을 위해서는 각 메서드 또는 이벤트 아래에 제공된 문서 링크를 참조하세요.

OneSignal Service Worker

OneSignalSDKWorker.js 파일의 import를 업데이트하세요: Player 모델:
importScripts('https://cdn.onesignal.com/sdks/OneSignalSDKWorker.js');
User 모델:
importScripts("https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.sw.js");
파일 경로는 동일하게 유지하세요. importScripts URL만 업데이트하세요. 자세한 내용은 OneSignal Service Worker를 참조하세요.

초기화

init()

Player 모델: 문서
<script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async></script>
<script>
window.OneSignal = window.OneSignal || [];
OneSignal.push(function() {
  OneSignal.init({
    appId: "YOUR_APP_ID"
  });
});
</script>
User 모델: 문서
<script src="https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.page.js" defer></script>
<script>
window.OneSignalDeferred = window.OneSignalDeferred || [];
OneSignalDeferred.push(async function(OneSignal) {
  await OneSignal.init({
    appId: "YOUR_APP_ID",
  });
});
</script>

provideUserConsent()

Player 모델: 문서
OneSignal.provideUserConsent(true)
User 모델: 문서
OneSignal.setConsentGiven(true)

푸시 등록

showNativePrompt()

Player 모델:
OneSignal.showNativePrompt()
User 모델: 문서
OneSignal.Notifications.requestPermission()

registerForPushNotifications() — User 모델에서 제거됨

OneSignal.registerForPushNotifications()

#permissionPromptDisplay

Player 모델:
OneSignal.on('permissionPromptDisplay', () => ...)
User 모델: 문서
OneSignal.Notifications.addEventListener('permissionPromptDisplay', event => { ... })

showSlidedownPrompt()

Player 모델:
OneSignal.showSlidedownPrompt()
User 모델: 문서
OneSignal.Slidedown.promptPush()

showHttpPrompt() — User 모델에서 제거됨

OneSignal.showHttpPrompt()

showCategorySlidedown()

Player 모델:
OneSignal.showCategorySlidedown()
User 모델: 문서
OneSignal.Slidedown.promptPushCategories()

#getNotificationPermission

Player 모델:
OneSignal.on('getNotificationPermission', (permission) => ...)
User 모델: 문서
OneSignal.User.PushSubscription.addEventListener('change', ({ optedIn }) => { ... })

isPushNotificationsSupported()

Player 모델:
OneSignal.isPushNotificationsSupported()
User 모델: 문서
OneSignal.Notifications.isPushSupported()

isPushNotificationsEnabled()

Player 모델:
await OneSignal.isPushNotificationsEnabled()
User 모델: 문서
OneSignal.User.PushSubscription.optedIn

#subscriptionChange

Player 모델:
OneSignal.on('subscriptionChange', (subscribed) => ...)
User 모델:
OneSignal.User.PushSubscription.addEventListener('change', ({ token }) => { ... })

분석

#notificationPermissionChange

Player 모델:
OneSignal.on('notificationPermissionChange', ({ to }) => ...)
User 모델: 문서
OneSignal.Notifications.addEventListener('permissionChange', permission => { ... })

#popoverShown

Player 모델:
OneSignal.on('popoverShown', () => ...)
User 모델: 문서
OneSignal.Slidedown.addEventListener('slidedownShown', presented => { ... })

#customPromptClick

Player 모델:
OneSignal.on('customPromptClick', ({ result }) => ...)
User 모델: 문서
OneSignal.Notifications.addEventListener('click', ({notification, result}) => { ... })

사용자 ID

getUserId()

Player 모델:
OneSignal.getUserId()
User 모델: 문서
OneSignal.User.PushSubscription.id;

setExternalUserId()

Player 모델: 문서
OneSignal.setExternalUserId("external id")
User 모델: 문서
OneSignal.login("external id")

removeExternalUserId()

Player 모델:
OneSignal.removeExternalUserId()
User 모델: 문서
OneSignal.logout()

getExternalUserId()

Player 모델:
await OneSignal.getExternalUserId()
User 모델: 문서
OneSignal.User.externalId

태그

sendTag()

Player 모델:
OneSignal.sendTag("key", "value")
User 모델:
OneSignal.User.addTag("key", "value")
User 모델 문서

sendTags()

Player 모델:
OneSignal.sendTags({ key1: 'value1', key2: 'value2' })
User 모델:
OneSignal.User.addTags({ key1: 'value1', key2: 'value2' })

getTags()

Player 모델:
await OneSignal.getTags()
User 모델:
OneSignal.User.getTags()

deleteTag()

Player 모델:
OneSignal.deleteTag("key")
User 모델:
OneSignal.User.removeTag("key")

deleteTags()

Player 모델:
OneSignal.deleteTags(["key1", "key2"])
User 모델:
OneSignal.User.removeTags(["key1", "key2"])

푸시 알림

sendSelfNotification() — User 모델에서 제거됨

OneSignal.sendSelfNotification('title', 'message', 'url')

setSubscription()

Player 모델:
OneSignal.setSubscription(false)
User 모델:
OneSignal.Notifications.permission = false

알림 수신

#notificationDisplay

Player 모델:
OneSignal.on('notificationDisplay', (event) => { ... })
User 모델:
OneSignal.Notifications.addEventListener('foregroundWillDisplay', ({ notification }) => { ... })

#notificationDismiss

Player 모델:
OneSignal.on('notificationDismiss', (event) => { ... })
User 모델:
OneSignal.Notifications.addEventListener('dismiss', ({ notification }) => { ... })

#addListenerForNotificationOpened

Player 모델:
OneSignal.on('addListenerForNotificationOpened', (event) => { ... })
User 모델:
// TODO: User 모델에서 아직 구현되지 않음

이메일

setEmail()

User 모델 문서 Player 모델:
OneSignal.setEmail('email@example.com')
User 모델:
OneSignal.User.addEmail('email@example.com')

logoutEmail()

Player 모델:
OneSignal.logoutEmail()
User 모델:
OneSignal.User.removeEmail('email@example.com')

getEmailId() — User 모델에서 제거됨

SMS

setSMSNumber()

Player 모델:
OneSignal.setSMSNumber('+11234567890')
User 모델:
OneSignal.User.addSms('+11234567890')

logoutSMSNumber()

Player 모델:
OneSignal.logoutSMS()
User 모델:
OneSignal.User.removeSms('+11234567890')