跳到主要内容

增加或清空本地推送(AddLocalNotification/ClearLocalNotifications)

警告

Android 平台需启用 INTLConfig.ini 里的 ANDROID_LOCAL_NOTIFICATION_ENABLE 配置。

[Player Network SDK & MSDK] 本地通知由用户自定义设置,保存在本地,根据时间触发。

当设置的时间小于当前设备时间,通知立即弹出。

说明

Android 和 iOS 的消息结构体不一样。

支持的平台

支持Android, iOS 平台。

函数定义

// 增加本地推送
void AddLocalNotification(string channel, GUALocalNotification localNotification);

// 清空本地推送
void ClearLocalNotifications(string channel);

入参说明

名称参数类型说明
channelstring三方渠道专有名词
比如 "XG", "Firebase"
localNotificationGUALocalNotification本地通知结构体
Android 和 iOS 不同

回调处理

回调处理接口是 GUAPushResultObserver。回调数据结构是 GUAPushResult

回调事件是 PushNotificationEvents。 回调 ID 是 GUA_PUSH_ADD_LOCAL_NOTIFICATIONGUA_PUSH_CLEAR_LOCAL_NOTIFICATIONS

代码示例

#if UNITY_IOS
GUALocalNotification localNotification = new GUALocalNotification ();
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
localNotification.RepeatType = 1;
localNotification.FireTime = Convert.Toint(ts.TotalSeconds) + 5;
localNotification.Badge = 2;
localNotification.AlertBody = "INTL Push iOS 测试";
localNotification.AlertAction = "INTL Action";
Dictionary<string,string> userInfo = new Dictionary<string,string>();
userInfo["key1"] = "value1";
userInfo["key2"] = "value2";
localNotification.UserInfo = userInfo;
localNotification.AlertTitle = "title";
GUA_NAMESPACE::GUAPushService::AddLocalNotification("Firebase", localNotification);

GUA_NAMESPACE::GUAPushService::ClearLocalNotifications("Firebase");
#endif
#if UNITY_ANDROID
GUALocalNotification localNotification = new GUALocalNotification();
localNotification.ActionType = 1;
localNotification.Lights = 1;
localNotification.Ring = 1;
localNotification.Vibrate = 1;
localNotification.BuilderId = 0;
localNotification.Content = "INTL Push Android content";
localNotification.ActionParameter = "com.intlgame.demo.xxxActivity";
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
localNotification.FireTime = Convert.Toint(ts.TotalSeconds) + 5;
localNotification.Title = "INTL Push Android title";
localNotification.TickerText = "INTL Push Android ticker text";
localNotification.RingRaw = "android.resource://intlgame.demo/raw/ring_file";
localNotification.SmallIcon = "drawable_name";

//default
localNotification.Type = -1;
localNotification.IconType = -1;
localNotification.StyleId = -1;
localNotification.CustomContent = "";
localNotification.PackageDownloadUrl = "";
localNotification.IconRes = "";
localNotification.Date = "";
localNotification.Hour = "";
localNotification.Min = "";
GUA_NAMESPACE::GUAPushService::AddLocalNotification("Firebase", localNotification);

GUA_NAMESPACE::GUAPushService::ClearLocalNotifications("Firebase");
#endif

数据结构

Android

GUALocalNotification

参数类型说明
ActionTypeint设置动作类型:
1:打开 activity 或 app 本身
2:打开浏览器
3:打开Intent
4:通过包名打开应用
Lightsint是否呼吸灯
0:否
1:是
默认:0
RingRawstring指定应用内的声音(raw/ring.mp3)
例如:android.resource://intlgame.demo/raw/ring
Vibrateint是否振动
0:否
1:是
默认:0
BuilderIdint指定通知 id
已展示的相同 id 的通知会被后触发的通知覆盖
Titlestring设置消息标题
Contentstring设置消息内容
TickerTextstring设置标题栏走马灯内容
ActionParameterstring当 ActionType=1 时,ActionParameter 可以为应用内的 Activity 的类名。
例如 com.intl.TestActivity。
当 ActionType=2 时,ActionParameter 是一个 URL,点击通知后,直接用浏览器打开此URL地址。
当 ActionType=3 时,ActionParameter 是一个序列化的 Intent。
当 ActionType=4 时,ActionParameter 为应用包名。
FireTimelong设置通知触发时间,long 类型(UTC时间的时间戳,单位:秒)
Ringint是否播放声音
0:否
1:是
默认:1
SmallIconstring指定状态栏的小图片(test.png)
例如:test
Typeint[仅限 MSD] Type
IconTypeint[仅限 MSD] Icon type
StyleIDint[仅限 MSD] style ID
CustomContentstring[仅限 MSD] Custom Content
PackageDownloadUrlstring[仅限 MSD] Package download URL
IconResstring[仅限 MSD] Icon resolution
Datestring[仅限 MSD] Date
Hourstring[仅限 MSD] Hour
Minstring[仅限 MSD] Minute

iOS

GUALocalNotification

参数类型说明
RepeatTypeint推送重复发送周期
1:分钟
2:小时
3:天
4:星期
5:月
6:年
默认:0,代表不重复
FireTimelong本地推送触发的时间
Badgeint角标
AlertBodystring推送的内容
AlertActionstring替换弹框的按钮文字内容
默认为:启动
UserInfoDictionary<string,string>自定义参数,可以用来标识推送和增加附加信息
AlertTitlestring推送的简短描述