这是我在CSDN上面的正经发表的第一篇文章,希望能开个好头。本文主要讲解了如何在iOS和Android开启本地推送

1.先说iOS

Unity原生支持iOS的本地推送,需要引用UnityEngine.IOS.

1.1 注册

 NotificationServices.RegisterForNotifications(NotificationType.Alert | NotificationType.Badge | NotificationType.Sound);

/

NotificationType通知类型

NotificationType.Alert是指消息


Notification.Badge

Notification.Sound是指通知声音



1.2注册完之后需要写一个方法,就是推送的具体具体实现,Unity原生的方法就是,在NotificationService类中

public static void ScheduleLocalNotification(iOS.LocalNotification notification);

首先需要简单了解一下iOS.LocalNotification 这个类,这个类定义本地通知的,我主要用的到了其中的这几个属性

alertBody:定义了推送的内容,是string类型

fireDate:通知的时间.类型为DateTime。

alertAcion:简单理解为通知的标题,string类型

soundName:通知的声音,string 类型

hasAction:bool 类型,用来控制action是否可见,true为可见。

定义好了LocalNotification之后,就可以使用NotificationService.ScheduleLocalNotification(你定义的LocalNotification)就可以了

1.3. 清除和取消本地通知

还是Unity中的方法,

取消所有本地通知:NotificationService.CancelAllLocalNotifications

取消本地通知:NotificationService.CancelLocalNotification(iOS.LocalzNotifiation localNotification)

清除所有本地通知:NotificationService.ClearLocalNotifications()

这几个方法我只用到了取消所有本地通知和清除所有本地通知,ApplicationPause和Awake里面

不知道小伙伴们看到这里的时候是不是有点懵,反正刚开始的时候我看取消和清除是一样的,感觉很懵逼。举个例子给懵逼的小伙伴们。

ex:有一个app每天10点的时候都会固定发送本地通知,小明是这个app的用户,上午9:00-11:00的时候,小明一直运行这个App,小明打开程序之后,程序清除了昨天十点发送的本地通知,在通知栏里面看不到了这个通知。也会取消今天十点要发送的通知。小明在今天十点的时候不会接收到通知。

public class iOSLocalzNotificationTest : MonoBehaviour    {        ///         ///定义并且给本地通知赋值        ///         UnityEngine.iOS.LocalNotification localNotification = new UnityEngine.iOS.LocalNotification()        {            alertAction = "test",            alertBody = "this is a test",            hasAction = true,            fireDate = DateTime.Now.AddSeconds(10),        };                ///         /// 在程序启动时注册通知并取消清除所有通知        ///         private void Awake()        {            ClearNotification();            UnityEngine.iOS.NotificationServices.RegisterForNotifications(                UnityEngine.iOS.NotificationType.Badge | UnityEngine.iOS.NotificationType.Alert | UnityEngine.iOS.NotificationType.Sound);        }        ///         /// 计划通知        ///         /// 本地通知        private void ScheduleLocalNotification(UnityEngine.iOS.LocalNotification localNotification)        {            UnityEngine.iOS.NotificationServices.ScheduleLocalNotification(localNotification);        }        ///         /// 清除取消通知        ///         private void ClearNotification()        {            UnityEngine.iOS.NotificationServices.ClearLocalNotifications();            UnityEngine.iOS.NotificationServices.CancelAllLocalNotifications();        }        ///         /// 程序转入前台时,取消并清除通知,程序转入后台时,计划通知        ///         ///         private void OnApplicationPause(bool pause)        {            if (pause)            {                ScheduleLocalNotification(localNotification);            }            else            {                ClearNotification();            }        }    }



2Android

由于Unity中没有安卓的通知方法,我在用了一个开源的安卓本地通知的一个插件。


地址是


https://github.com/Agasper/unity-android-notifications


如果有任何疑问,欢迎找博主交流。如需转载,请说明出处


更多相关文章

  1. Android(安卓)AlertDialog的各种用法总结
  2. EditTextView:取消焦点&自动获取焦点
  3. android 带清除功能的EditText
  4. android 状态栏(StatusBar)
  5. android 卸载程序、清除数据、停止服务用法
  6. android studio接入支付宝
  7. Android(安卓)中单选框或复选框点击其中一个,其余取消操作
  8. Android之AppWidget的按钮事件开启Activity
  9. Android使用Notification通知栏功能的封装

随机推荐

  1. android 架构体系
  2. Android 學習之旅!(2)
  3. Android读取文件
  4. ubuntu下android内核编译
  5. Android面试系列文章2018之Android部分Se
  6. Android下媒体库的实现
  7. ANDROID 自动接听 支持2.3以上版本
  8. [转]Jollen 的 Android 教學,#3: 第一個
  9. Android安全机制详解
  10. Android系统启动,用过安卓手机的都知道,你