> ## 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.

# 移动 SDK 映射

> 比较 OneSignal 的传统播放器模型（v3 和 v4）与现代用户模型（v5+）之间的方法和属性名称，提供并排的 Swift 代码示例以简化迁移。

<Warning>
  OneSignal 已从以设备为中心的模型（播放器 ID）更新为以用户为中心的模型（OneSignal ID）。有关迁移指导，请参阅[用户模型迁移指南](./user-model-migration-guide)。

  有关传统以设备为中心的实现文档，请参阅[版本 9](/v9.0/docs/sdk-reference)。
</Warning>

此页面映射 OneSignal 播放器模型和用户模型 SDK 之间的方法和属性名称。它镜像了原始[播放器模型客户端 SDK 参考](/v9.0/docs/sdk-reference)的布局以便熟悉。Swift 示例说明了 API 更改，但这些并不总是完整的工作示例。请参阅链接文档以获取其他语言的示例和完整的实现细节。

## 初始化 OneSignal

### `initWithLaunchOptions()`

**播放器模型** [参考](/v9.0/docs/sdk-reference)

```swift theme={null}
OneSignal.initWithLaunchOptions(launchOptions)
OneSignal.setAppId("ONESIGNAL_APP_ID")
```

**用户模型** [参考](./mobile-sdk-reference#initialize)

```swift theme={null}
OneSignal.initialize("YOUR_ONESIGNAL_APP_ID", withLaunchOptions: launchOptions)
```

***

## 调试

### `setLogLevel()`

**播放器模型** [参考](/v9.0/docs/sdk-reference)

```swift theme={null}
OneSignal.setLogLevel(.LL_VERBOSE, visualLevel: .LL_NONE)
```

**用户模型** [参考](./mobile-sdk-reference#debugging)

```swift theme={null}
OneSignal.Debug.setLogLevel(.LL_VERBOSE)
```

***

## 外部用户 ID

### `setExternalId()`

**播放器模型** [参考](/v9.0/docs/sdk-reference)

```swift theme={null}
OneSignal.setExternalId("EXTERNAL_USER_ID")
```

**用户模型** [参考](./mobile-sdk-reference#debugging)

```swift theme={null}
OneSignal.login("EXTERNAL_USER_ID")
```

### `removeExternalUserId()`

**播放器模型** [参考](/v9.0/docs/sdk-reference)

```swift theme={null}
OneSignal.removeExternalUserId({ results in ... })
```

**用户模型** [参考](./mobile-sdk-reference#log-out-a-user)

```swift theme={null}
OneSignal.logout()
```

***

## 标签

### `sendTag()`

**播放器模型** [参考](./add-user-data-tags)

```swift theme={null}
OneSignal.sendTag("key", value: "value")
```

**用户模型** [参考](./mobile-sdk-reference)

```swift theme={null}
OneSignal.User.addTag(key: "key", value: "value")
```

### `sendTags()`

````swift theme={null}
OneSignal.sendTags(["key1": "value1", "key2": "value2"])

```swift
OneSignal.User.addTags(["key1": "value1", "key2": "value2"])
````

### `getTags()`

```swift theme={null}
OneSignal.getTags({ tags in ..., onFailure: { error in ... })
```

```swift theme={null}
let tags = OneSignal.User.getTags()
```

### `deleteTag()`

```swift theme={null}
OneSignal.deleteTag("key")
```

```swift theme={null}
OneSignal.User.removeTag("key")
```

### `deleteTags()`

```swift theme={null}
OneSignal.deleteTags(["key1", "key2"])
```

```swift theme={null}
OneSignal.User.removeTags(["key1", "key2"])
```

***

## 用户数据

### `notificationPermissionStatus`

```swift theme={null}
OneSignal.getDeviceState().notificationPermissionStatus
```

```swift theme={null}
OneSignal.Notifications.permissionNative
```

### `userId`

```swift theme={null}
OneSignal.getDeviceState().userId
```

```swift theme={null}
OneSignal.User.pushSubscription.id
```

### `hasNotificationPermission()` / `areNotificationsEnabled`

```swift theme={null}
OneSignal.getDeviceState().areNotificationsEnabled()
```

```swift theme={null}
OneSignal.Notifications.permission
```

### `pushToken`

```swift theme={null}
OneSignal.getDeviceState().pushToken
```

```swift theme={null}
OneSignal.User.pushSubscription.token
```

### `hasNotificationPermission`

```swift theme={null}
OneSignal.getDeviceState().hasNotificationPermission
```

```swift theme={null}
OneSignal.User.pushSubscription.optedIn
```

### `isSubscribed` \[已弃用]

```swift theme={null}
OneSignal.getDeviceState().isSubscribed
```

**用户模型**: 不适用

### `isPushDisabled` \[已弃用]

```swift theme={null}
OneSignal.getDeviceState().isPushDisabled
```

**用户模型**: 不适用

### `setLanguage()`

```swift theme={null}
OneSignal.setLanguage("es")
```

```swift theme={null}
OneSignal.User.setLanguage("en")
```

***

## 隐私

### `setRequiresUserPrivacyConsent()`

```swift theme={null}
OneSignal.setRequiresUserPrivacyConsent(true)
```

```swift theme={null}
OneSignal.setConsentRequired(true)
```

### `consentGranted()`

```swift theme={null}
OneSignal.consentGranted(true)
```

```swift theme={null}
OneSignal.setConsentGiven(true)
```

***

## 位置

### `setLocationShared()`

````swift theme={null}
OneSignal.setLocationShared(false)

```swift
OneSignal.Location.isShared = false
````

### `isLocationShared()`

```swift theme={null}
OneSignal.isLocationShared()
```

```swift theme={null}
OneSignal.Location.isShared
```

### `promptLocation()`

```swift theme={null}
OneSignal.promptLocation()
```

```swift theme={null}
OneSignal.Location.requestPermission()
```

***

## 订阅观察者

### `addSubscriptionObserver()`

```swift theme={null}
OneSignal.addSubscriptionObserver(subscriptionObserver)
```

```swift theme={null}
OneSignal.User.pushSubscription.addObserver(pushSubscriptionObserver)
```

### `removeSubscriptionObserver()`

```swift theme={null}
OneSignal.removeSubscriptionObserver(subscriptionObserver)
```

```swift theme={null}
OneSignal.User.pushSubscription.removeObserver(pushSubscriptionObserver)
```

***

## 推送通知

### `promptForPushNotifications()`

```swift theme={null}
OneSignal.promptForPushNotifications()
```

```swift theme={null}
OneSignal.Notifications.requestPermission()
```

### `postNotification()` \[已弃用]

```swift theme={null}
OneSignal.postNotification()
```

**用户模型**: 不适用

### `clearOneSignalNotifications()`

```swift theme={null}
OneSignal.clearOneSignalNotifications()
```

```swift theme={null}
OneSignal.Notifications.clearAll()
```

### `disablePush()`

```swift theme={null}
OneSignal.disablePush(true)
```

```swift theme={null}
OneSignal.User.pushSubscription.optOut()
```

### `unsubscribeWhenNotificationsAreDisabled()` \[已弃用]

```swift theme={null}
OneSignal.unsubscribeWhenNotificationsAreDisabled(false)
```

**用户模型**: 不适用

### `setLaunchURLsInApp()` \[已弃用]

```swift theme={null}
OneSignal.setLaunchURLsInApp(true)
```

**用户模型**: 不适用

### `registerForProvisionalAuthorization()`

```swift theme={null}
OneSignal.registerForProvisionalAuthorization({userResponse in ...})
```

```swift theme={null}
OneSignal.Notifications.registerForProvisionalAuthorization({ userReponse in ... })
```

### `setNotificationWillShowInForegroundHandler()`

```swift theme={null}
OneSignal.setNotificationWillShowInForegroundHandler(foregroundHandler)
```

```swift theme={null}
OneSignal.Notifications.addForegroundLifecycleListener(notificationLifecyleHandler)
```

### `setNotificationOpenedHandler()`

```swift theme={null}
OneSignal.setNotificationOpenedHandler(notificationOpenHandler)
```

```swift theme={null}
OneSignal.Notifications.addClickListener(notificationClickListener)
```

### `addPermissionObserver()`

```swift theme={null}
OneSignal.addPermissionObserver(self as OSPermissionObserver)
```

```swift theme={null}
OneSignal.Notifications.addPermissionObserver(notificationPermissionObserver)
```

### `removePermissionObserver()`

````swift theme={null}
OneSignal.removePermissionObserver()

```swift
OneSignal.Notifications.removePermissionObserver(notificationPermissionObserver)
````

***

## 实时活动

### `enterLiveActivity()`

```swift theme={null}
OneSignal.enterLiveActivity("my_activity_id", withToken: myToken)
```

```swift theme={null}
OneSignal.LiveActivities.enter("my_activity_id", withToken: "TOKEN")
```

### `exit()`

```swift theme={null}
OneSignal.exitLiveActivity("my_activity_id")
```

```swift theme={null}
OneSignal.LiveActivities.exit("my_activity_id")
```

***

## 应用内消息

### `addTrigger()`

```swift theme={null}
OneSignal.addTrigger("prompt_ios", withValue: "true");
```

```swift theme={null}
OneSignal.InAppMessages.addTrigger("KEY", withValue: "VALUE")
```

### `addTriggers()`

```swift theme={null}
OneSignal.addTriggers(["trigger_key_1": "1", "trigger_key_2": "some_other_value"])
```

```swift theme={null}
OneSignal.InAppMessages.addTriggers(["trigger_key_1": "1", "trigger_key_2": "some_other_value"])
```

### `removeTriggerForKey()`

```swift theme={null}
OneSignal.removeTriggerForKey("trigger_key_1");
```

```swift theme={null}
OneSignal.InAppMessages.removeTrigger("trigger_key_1")
```

### `removeTriggerForKeys()`

```swift theme={null}
OneSignal.removeTriggerForKeys(["trigger_key_1", "trigger_key_2"])
```

```swift theme={null}
OneSignal.InAppMessages.removeTriggers(["trigger_key_1", "trigger_key_2"])
```

### `getTriggerValueForKey()` \[已弃用]

```swift theme={null}
OneSignal.getTriggerValueForKey("trigger_key");
```

**用户模型**: 不适用

### `inAppMessagesArePaused`

```swift theme={null}
OneSignal.inAppMessagesArePaused = true
```

```swift theme={null}
OneSignal.InAppMessages.paused = true
```

### `setInAppMessageLifecycleHandler()`

```swift theme={null}
OneSignal.setInAppMessageLifecycleHandler(handler)
```

```swift theme={null}
OneSignal.InAppMessages.addLifecycleListener(listener)
```

### `setInAppMessageClickHandler()`

```swift theme={null}
OneSignal.setInAppMessageClickHandler(clickHandler)
```

```swift theme={null}
OneSignal.InAppMessages.addClickListener(clickListener)
```

***

## 电子邮件

### `setEmail()`

**用户模型** [文档](./mobile-sdk-reference#addemail-%2C-removeemail)

```swift theme={null}
OneSignal.setEmail("email@example.com")
```

```swift theme={null}
OneSignal.User.addEmail("email@example.com")
```

### `logoutEmail()`

```swift theme={null}
OneSignal.logoutEmail()
```

```swift theme={null}
OneSignal.User.removeEmail("email@example.com")
```

***

## 短信

### `setSMSNumber()`

```swift theme={null}
OneSignal.setSMSNumber("+11234567890")
```

````swift theme={null}
OneSignal.User.addSms("+11234567890")

### `logoutSMSNumber()`

```swift
OneSignal.logoutSMSNumber()
````

```swift theme={null}
OneSignal.User.removeSms("+11234567890")
```

### `addSMSSubscriptionObserver()` \[已弃用]

```swift theme={null}
OneSignal.add(subscriptionObserver)
```

**用户模型**: 不适用

### `getSMSId()` \[已弃用]

```csharp theme={null}
OneSignal.Default.SMSSubscriptionState.smsUserId
```

**用户模型**: 不适用

***

## 结果

### `sendOutcome()`

```swift theme={null}
OneSignal.sendOutcome("Purchase")
```

```swift theme={null}
OneSignal.Session.addOutcome("Purchase")
```

### `sendOutcomeWithValue()`

```swift theme={null}
OneSignal.sendOutcomeWithValue(withValue: "Purchase", value: 18.76)
```

```swift theme={null}
OneSignal.Session.addOutcome("Purchase", 18.76)
```

### `sendUniqueOutcome()`

```swift theme={null}
OneSignal.sendUniqueOutcome("Swipe")
```

```swift theme={null}
OneSignal.Session.addUniqueOutcome("Swipe")
```

***
