# 公共跳转参数 ## 地址 无。 这不是一个接口,是后台运营配置、H5 bridge、IM custom data 共用的一套 App 跳转参数。 ## 用在哪里 - Admin Banner:`type` 选 `APP`,`param` 填下面的 JSON。 - Admin 开屏配置:`type` 选 `APP`,`param` 填下面的 JSON。 - Admin 弹窗配置:`跳转类型` 选 `APP`,使用公共跳转组件生成下面的 JSON。 - H5 bridge:通过 `taskAction` 或其它业务 action 传下面的 JSON。 - 全服飘窗 IM:传 `jump_type`、`jump_param` 或 `jump_payload`。 ## 参数 ### 钱包 打开钱包页。 ```json {"type":"wallet"} ``` ### 指定房间 进入指定房间。 ```json {"type":"room","room_id":"ROOM_ID"} ``` ### 随机房间 进入一个随机公开房间。 ```json {"type":"room_random"} ``` ### 指定房内拉起窗口 进入指定房间后打开房内窗口。 ```json {"type":"room_window","room_id":"ROOM_ID","window":"gift_panel"} ``` ### 随机房内拉起窗口 进入随机公开房间后打开房内窗口。 ```json {"type":"room_random_window","window":"gift_panel"} ``` ### 指定房内拉起游戏 进入指定房间后打开指定游戏。 ```json {"type":"room_game","room_id":"ROOM_ID","game_id":"GAME_ID"} ``` ### 随机房内拉起游戏 进入随机公开房间后打开指定游戏。 ```json {"type":"room_random_game","game_id":"GAME_ID"} ``` ### Explore 游戏 H5 App 先切到 Explore tab,再打开对应的 H5。 ```json {"type":"explore_game","game_code":"game_dice"} ``` `game_code` 可填: - `game_dice`:打开 Explore 的 Dice Battle H5,对应 Flutter H5 key `game_dice`。 - `game_rock`:打开 Explore 的 Rock Paper Scissors H5,对应 Flutter H5 key `game_rock`。 ## window 可填值 ### 游戏窗口 打开房内游戏窗口。带 `game_id` 时直接打开这个游戏;不带 `game_id` 时打开游戏菜单。 ```json {"type":"room_window","room_id":"ROOM_ID","window":"game_window","game_id":"GAME_ID"} ``` ### 礼物面板 打开礼物面板。带 `gift_id` 时预选这个礼物。 ```json {"type":"room_window","room_id":"ROOM_ID","window":"gift_panel","gift_id":"GIFT_ID"} ``` ### 领红包弹窗 打开领红包弹窗。带 `red_packet_no` 时打开指定红包。 ```json {"type":"room_window","room_id":"ROOM_ID","window":"red_packet_claim","red_packet_no":"RED_PACKET_NO"} ``` ### 转盘窗口 打开房内转盘窗口。 ```json {"type":"room_window","room_id":"ROOM_ID","window":"wheel"} ``` ## Admin 配置方式 后台公共跳转组件里: - `跳转类型` 选 `APP`。 - `APP 目标` 选需要的目标。 - 目标是 `Explore 游戏 H5` 时,继续选择 `Game Code`。 - 保存后后台会生成 `param` JSON。 Explore 游戏 H5 的后台示例: ```json {"type":"explore_game","game_code":"game_rock"} ``` ## 返回值 无。 这是 App 内部跳转参数,没有服务端返回值。 ## 相关 IM 全服飘窗使用 IM custom message。App 会解析 `jump_type`、`jump_param`、`jump_payload`。 指定房间的 `game_win`、`super_gift` 和 `lucky_gift_big_win` 必须在顶层携带布尔字段 `room_locked`。App 用该字段在首页点击飘屏时先弹出房间密码输入;真正是否允许进房仍以 Room Cell 的 `JoinRoom` 校验为准。 当 `jump_payload` 跳转到与中奖事件不同的房间时,`jump_payload.room_locked` 必须与该目标房间对应;否则使用顶层的 `room_locked` 作为默认值。 ### 指定 jump_payload ```json { "broadcast_type": "game_win", "room_id": "ROOM_ID", "room_locked": true, "game_id": "GAME_ID", "coins": 1000, "jump_type": "room_window", "jump_payload": { "room_id": "ROOM_ID", "room_locked": true, "window": "gift_panel", "gift_id": "GIFT_ID" } } ``` ### 跳钱包 ```json { "broadcast_type": "game_win", "coins": 1000, "jump_type": "wallet", "jump_payload": {} } ``` ### 随机房拉起游戏 ```json { "broadcast_type": "game_win", "coins": 1000, "jump_type": "room_random_game", "jump_payload": { "game_id": "GAME_ID" } } ``` ### 跳 Explore 游戏 H5 ```json { "broadcast_type": "game_win", "coins": 1000, "jump_type": "explore_game", "jump_payload": { "game_code": "game_dice" } } ``` 也可以把 `game_code` 放在 `jump_param`: ```json { "broadcast_type": "game_win", "coins": 1000, "jump_type": "explore_game", "jump_param": "game_rock" } ``` 没有 `jump_type` 时,App 使用 IM 里的 `room_id` 和 `game_id` 作为默认跳转。