消息接收设置
更改推送消息的接收设置。
URL 确认
此 API 使用 service-api.playnanoo.com 域名。
API 信息
- URL:
https://service-api.playnanoo.com/push/v20220701/change - Method:
PUT - 需要认证: 是
DeviceInfo 继承
此 API 的 Req 类继承自 DeviceInfo。DeviceInfo 的所有属性会自动包含。
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| receive_yn | string | 必填 | 是否接收推送消息("Y" 或 "N") |
| receive_night_yn | string | 必填 | 是否接收夜间推送消息("Y" 或 "N") |
夜间推送
夜间推送是指晚上 9 点到次日早上 8 点之间的推送消息。
响应数据
Res 类
| 字段 | 类型 | 说明 |
|---|---|---|
| Status | string | 处理结果状态 |
Unity C# 实现
BaseResponse 类
所有 API 响应的基类。
public class BaseResponse
{
public string ErrorCode;
public string Message;
public string WithdrawalKey;
public string BlockKey;
}
字段说明:
ErrorCode:错误代码Message:错误信息WithdrawalKey:账号处于注销等待状态时,用于恢复的密钥(仅注销等待中的账号提供)BlockKey:账号被封禁时提供的密钥(仅被封禁的账号提供)
推送设置变更类
using System;
using System.Collections;
using UnityEngine.Networking;
public class PushChange
{
static string url = "https://service-api.playnanoo.com/push/v20220701/change";
[Serializable]
public class Req : DeviceInfo
{
public string receive_yn;
public string receive_night_yn;
public IEnumerator Send(
bool receiveYn,
bool receiveNightYn,
Action<Res> onSuccess,
Action<BaseResponse> onError)
{
this.receive_yn = receiveYn ? "Y" : "N";
this.receive_night_yn = receiveNightYn ? "Y" : "N";
// PUT 방식 호출
yield return HttpClient.Send<Req, Res>(
UnityWebRequest.kHttpVerbPUT,
url,
requireToken: true,
body: this,
onSuccess: onSuccess,
onError: onError
);
}
}
[Serializable]
public class Res : BaseResponse
{
public string Status;
}
}
使用示例
完全关闭推送通知
using PlayNANOO;
public class PlayNANOOExample : MonoBehaviour
{
void DisableAllPush()
{
PushChange.Req req = new PushChange.Req();
StartCoroutine(req.Send(
receiveYn: false,
receiveNightYn: false,
onSuccess: res =>
{
Debug.Log($"푸시 알림 비활성화 성공: {res.Status}");
},
onError: (error) =>
{
Debug.LogError($"푸시 설정 변경 실패: [{error.ErrorCode}] [{error.Message}]");
}
));
}
}
仅关闭夜间推送
using PlayNANOO;
public class PlayNANOOExample : MonoBehaviour
{
void DisableNightPush()
{
PushChange.Req req = new PushChange.Req();
StartCoroutine(req.Send(
receiveYn: true,
receiveNightYn: false,
onSuccess: res =>
{
Debug.Log($"야간 푸시 비활성화 성공: {res.Status}");
},
onError: (error) =>
{
Debug.LogError($"푸시 설정 변경 실패: [{error.ErrorCode}] [{error.Message}]");
}
));
}
}
根据用户设置变更
using PlayNANOO;
public class PushSettingsUI : MonoBehaviour
{
public Toggle pushToggle;
public Toggle nightPushToggle;
public void OnSettingsChanged()
{
PushChange.Req req = new PushChange.Req();
StartCoroutine(req.Send(
receiveYn: pushToggle.isOn,
receiveNightYn: nightPushToggle.isOn,
onSuccess: res =>
{
Debug.Log($"푸시 설정 변경 성공: {res.Status}");
ShowMessage("푸시 알림 설정이 변경되었습니다.");
},
onError: (error) =>
{
Debug.LogError($"푸시 설정 변경 실패: [{error.ErrorCode}] [{error.Message}]");
ShowMessage("설정 변경에 실패했습니다. 다시 시도해주세요.");
}
));
}
void ShowMessage(string message)
{
// UI 메시지 표시
Debug.Log(message);
}
}
实时设置生效
通过此 API 更改的设置会立即在服务器上生效,并从下一次推送发送时开始应用。
令牌保留
设置变更不会删除令牌,仅更改接收与否。令牌将继续保留在服务器上。
用户体验
建议提供推送通知设置 UI,让用户能够按照自己的意愿控制通知。