Documentation Index
Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
Use this file to discover all available pages before exploring further.
OneSignal 已从以设备为中心的模型(播放器 ID)更新为以用户为中心的模型(OneSignal ID)。有关迁移指导,请参阅 用户模型迁移指南。有关旧版以设备为中心的实现文档,请参见 版本 9。
本文档将 OneSignal 的旧版 Player 模型 Web SDK 的方法、属性和事件映射到较新的 User 模型 SDK。每个部分都包含匹配的 TypeScript 代码示例,清楚地演示如何更新您的集成。
所有示例都为演示目的而简化。有关完整和最新的实现,请参阅每个方法或事件下提供的文档链接。
OneSignal 服务工作线程
更新您的 OneSignalSDKWorker.js 文件中的导入:
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 模型:
User 模型: 文档
OneSignal.User.PushSubscription.id;
setExternalUserId()
Player 模型: 文档
OneSignal.setExternalUserId("external id")
User 模型: 文档
OneSignal.login("external id")
removeExternalUserId()
Player 模型:
OneSignal.removeExternalUserId()
User 模型: 文档
getExternalUserId()
Player 模型:
await OneSignal.getExternalUserId()
User 模型: 文档
OneSignal.User.externalId
sendTag()
Player 模型:
OneSignal.sendTag("key", "value")
User 模型:
OneSignal.User.addTag("key", "value")
User 模型 文档
Player 模型:
OneSignal.sendTags({ key1: 'value1', key2: 'value2' })
User 模型:
OneSignal.User.addTags({ key1: 'value1', key2: 'value2' })
Player 模型:
await OneSignal.getTags()
User 模型:
deleteTag()
Player 模型:
OneSignal.deleteTag("key")
User 模型:
OneSignal.User.removeTag("key")
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) => { ... })
setEmail()
User Model 文档
Player 模型:
OneSignal.setEmail('email@example.com')
User 模型:
OneSignal.User.addEmail('email@example.com')
logoutEmail()
Player 模型:
User 模型:
OneSignal.User.removeEmail('email@example.com')
getEmailId() — User 模型中已弃用
setSMSNumber()
Player 模型:
OneSignal.setSMSNumber('+11234567890')
User 模型:
OneSignal.User.addSms('+11234567890')
logoutSMSNumber()
Player 模型:
User 模型:
OneSignal.User.removeSms('+11234567890')