调用了该 API 后,JPush 推送服务完全被停止。具体表现为:
JPushBinding.StopJPush();
调用了此 API 后,极光推送完全恢复正常工作。
JPushBinding.ResumeJPush();
调用此 API 来判断当前 Push Service 是否停止。
bool isStopped = JPushBinding.IsPushStopped();
此 API 提供清除通知的功能,包括:清除所有 JPush 展现的通知(不包括非 JPush SDK 展现的)。
JPushBinding.ClearAllNotifications();
此 API 用于清除指定的某个通知。
JPushBinding.ClearNotificationById(1); // 1: 指定通知的 notificationId
默认情况下用户在任何时间都允许推送。即任何时候有推送下来,客户端都会收到,并展示。
开发者可以调用此 API 来设置允许推送的时间。
如果不在该时间段内收到消息,当前的行为是:推送到的通知会被扔掉。
这是一个纯粹客户端的实现,所以与客户端时间是否准确、时区等这些,都没有关系。
JPushBinding.SetPushTime("0,1,2,3", 8, 20); // 周日到周三的早上 8 点至晚上 8 点可以推送。
默认情况下用户在收到推送通知时,客户端可能会有震动,响铃等提示。但用户在睡觉、开会等时间点希望为 “免打扰” 模式,也是静音时段的概念。
开发者可以调用此 API 来设置静音时段,如果在该时间段内收到消息,则:不会有铃声和震动。
JPushBinding.SetSilenceTime(20, 0, 7, 0); // 设置晚上 8 点至早上 7 点通知静默。
在 Android 6.0 及以上的系统上,需要去请求一些用到的权限,JPush SDK 用到的一些需要请求如下权限,因为需要这些权限使统计更加精准,功能更加丰富,建议开发者调用。
"android.permission.READ_PHONE_STATE"
"android.permission.WRITE_EXTERNAL_STORAGE"
"android.permission.READ_EXTERNAL_STORAGE"
"android.permission.ACCESS_FINE_LOCATION"
JPushBinding.RequestPermission();
大多数情况下,开发者不需要调用这里的定制通知栏 API 来自定义通知栏样式,只需要使用 SDK 默认的即可。
如果想要:
用于定制 Android Notification 里的 defaults / flags / icon 等基础样式(行为)。
具体可见官方文档。
如果要使用,一定要修改 JPushBinding 中的 SetBasicPushNotificationBuilder 方法,去根据自己的业务逻辑修改代码。
public static void SetBasicPushNotificationBuilder()
{
// 需要根据自己业务情况修改后再调用。
int builderId = 1; // 定义该样式的 id 为 1,后台推送时就需要也设置相应推送的 builderId 为 1。
int notiFlags = notificationFlags | FLAG_AUTO_CANCEL;
int notiDefaults = notificationDefaults | DEFAULT_ALL;
// statusBarDrawableName: 状态栏通知图标的资源文件名称(R.drawable.statusBarDrawableName)。
_plugin.Call("setBasicPushNotificationBuilder", builderId, notiDefaults, notiFlags, null);
}
// 使用时直接调用。
JPushBinding.SetBasicPushNotificationBuilder();
继承 Basic 进一步让开发者定制 Notification Layout。
public static void SetCustomPushNotificationBuilder()
{
Debug.Log("unity---setCustomPushNotificationBuilder");
// 需要根据自己业务情况修改后再调用。
int builderId = 1;
string layoutName = "yourNotificationLayoutName";
// 指定最顶层状态栏小图标。
string statusBarDrawableName = "yourStatusBarDrawableName";
// 指定下拉状态栏时显示的通知图标。
string layoutIconDrawableName = "yourLayoutIconDrawableName";
_plugin.Call("setCustomPushNotificationBuilder", builderId, layoutName, statusBarDrawableName, layoutIconDrawableName);
}
// 使用时直接调用。
JPushBinding.SetCustomPushNotificationBuilder();
通过极光推送,推送了很多通知到客户端时,如果用户不去处理,就会有很多保留在那里。
此功能用于限制保留的通知条数,默认为保留最近 5 条通知。
开发者可通过调用此 API 来定义为不同的数量。
仅对通知有效。所谓保留最近的,意思是,如果有新的通知到达,之前列表里最老的那条会被移除。
例如,设置为保留最近 5 条通知。假设已经有 5 条显示在通知栏,当第 6 条到达时,第 1 条将会被移除。
JPushBinding.setLatestNotificationNumber(10); // 保留最近的 10 条通知。
通过极光推送的SDK,开发者只需要简单调用几个接口,便可以在应用中定时发送本地通知。
- 本地通知API不依赖于网络,无网条件下依旧可以触发。
- 本地通知与网络推送的通知是相互独立的,不受保留最近通知条数上限的限制。
- 本地通知的定时时间是自发送时算起的,不受中间关机等操作的影响。
添加一个本地通知。
// 10 秒之后触发该本地推送。
JPushBinding.AddLocalNotification(0, "content", "title", 1, 10, null);
添加一个本地通知。
// 在 2020/1/5 12:00:00 触发该本地推送。
JPushBinding.AddLocalNotificationByDate(0, "content", "title", 1, 2020, 1, 5, 12 , 0 , 0 , null);
移除指定本地通知。
JPushBinding.RemoveLocalNotification(1); // 1:特定通知的 Notification ID。
清除所有本地通知。
JPushBinding.ClearLocalNotifications();
获取推送连接状态。
bool isConnect = JPushBinding.GetConnectionState();
动态配置 channel
用于上报用户的通知栏被打开,或者用于上报用户自定义消息被展示等客户端需要统计的事件。
设置地理围栏监控周期,最小3分钟,最大1天。默认为15分钟,当距离地理围栏边界小于1000米周期自动调整为3分钟。设置成功后一直使用设置周期,不会进行调整。
JPush SDK 开启和关闭省电模式,默认为关闭。