跳转到主要内容

消息接收设置

更改推送消息的接收设置。

URL 确认

此 API 使用 service-api.playnanoo.com 域名。

API 信息

  • URL: https://service-api.playnanoo.com/push/v20220701/change
  • Method: PUT
  • 需要认证: 是
DeviceInfo 继承

此 API 的 Req 类继承自 DeviceInfo。DeviceInfo 的所有属性会自动包含。

请求参数

参数类型必填说明
receive_ynstring必填是否接收推送消息("Y" 或 "N")
receive_night_ynstring必填是否接收夜间推送消息("Y" 或 "N")
夜间推送

夜间推送是指晚上 9 点到次日早上 8 点之间的推送消息。

响应数据

Res 类

字段类型说明
Statusstring处理结果状态

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,让用户能够按照自己的意愿控制通知。