Skip to content

Commit

Permalink
Merge pull request #602 from haoxiuwen/doc-v2
Browse files Browse the repository at this point in the history
Modify iOS Offline Push Doc
haoxiuwen authored Jan 15, 2024
2 parents 84213ee + 0111040 commit a297f4d
Showing 1 changed file with 17 additions and 4 deletions.
21 changes: 17 additions & 4 deletions docs/document/ios/push.md
Original file line number Diff line number Diff line change
@@ -507,7 +507,20 @@ message.chatType = EMChatTypeChat;
### 5. 解析收到的推送字段
当设备收到推送并点击时,iOS 会通过 `launchOptions` 将推送中的 JSON 传递给 app,这样就可以根据推送的内容定制 app 的一些行为,比如页面跳转等。 当收到推送通知并点击推送时,app 获取推送内容的方法:
当设备收到推送通知并点击时,iOS 系统会将推送通知中的自定义推送内容(JSON)传递给 app,这样你就可以根据推送内容自定义点击推送通知触发的行为,例如,页面跳转等。当收到推送通知并点击时,app 获取推送内容的方式如下:
- 若 app 中使用了 `SceneDelegate`,app 的启动流程通过场景系统进行管理。当你点击离线推送的消息打开 app 时,app 将首先启动场景,然后调用 `SceneDelegate` 中的相应方法处理场景的连接和配置。你需要在 `SceneDelegate` 的 `scene(_:willConnectTo:options:)` 方法中查看 `connectionOptions` 参数获取推送内容,示例代码如下:
```objectivec
- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions {
// 获取启动选项
NSDictionary *launchOptions = connectionOptions.notificationResponse.notification.request.content.userInfo;
// 进行相应的处理
// ...
}
```

- 若 app 中不使用 `SceneDelegate`,iOS 系统会通过 `application:didFinishLaunchingWithOptions:` 方法中的 `launchOptions` 将推送中的用户自定义信息传递给 app。你需要查看 `launchOptions` 参数获取推送内容。

```plaintext
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
@@ -516,7 +529,7 @@ message.chatType = EMChatTypeChat;
```

userInfo:
推送中的用户自定义信息的数据结构:

```plaintext
{
@@ -539,8 +552,8 @@ userInfo:
| `body` | 显示内容。 |
| `badge` | 角标数。 |
| `sound` | 提示铃声。 |
| `f` | 消息发送方 ID。 |
| `t` | 消息接收方 ID。 |
| `f` | 消息发送方的用户 ID。 |
| `t` | 消息接收方的与用户 ID。 |
| `g` | 群组 ID,单聊无该字段。 |
| `m` | 消息 ID。 |

0 comments on commit a297f4d

Please sign in to comment.