Unity3D研究院之IOS本地消息通知LocalNotification的使用(六十七)
http://www.xuanyusong.com/archives/2632
现在的游戏里一般都会有本地消息,比如每天定时12点或者下午6点告诉玩家进入游戏领取体力。这种东西没必要服务器去推送,客户端就可以完成。Unity里面提供了本地任务的功能但是只有IOS上才支持,开始我有点不解为什么Android上不支持,当我把Android的本地通知做完后,我才明白。IOS源生的API中就支持固定时间循环推送,而Android上需要自己开启一个Services,启动一个AlarmManager的定时器任务,还好我之前开发过Android, 言归正传今天我们先说IOS上的本地通知。
代码其实很简单,我先说下原理后面给出实现步骤。
1.当游戏进入后台的时候注册本地通知
2.当游戏进入前台的时候关闭本地通知
下面上代码。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
using UnityEngine;
using System.Collections;
public class NewBehaviourScript : MonoBehaviour {
//本地推送
public static void NotificationMessage(string message,int hour ,bool isRepeatDay)
{
int year = System.DateTime.Now.Year;
int month = System.DateTime.Now.Month;
int day= System.DateTime.Now.Day;
System.DateTime newDate = new System.DateTime(year,month,day,hour,0,0);
NotificationMessage(message,newDate,isRepeatDay);
}
//本地推送 你可以传入一个固定的推送时间
public static void NotificationMessage(string message,System.DateTime newDate,bool isRepeatDay)
{
//推送时间需要大于当前时间
if(newDate > System.DateTime.Now)
{
LocalNotification localNotification = new LocalNotification();
localNotification.fireDate =newDate;
localNotification.alertBody = message;
localNotification.applicationIconBadgeNumber = 1;
localNotification.hasAction = true;
if(isRepeatDay)
{
//是否每天定期循环
localNotification.repeatCalendar = CalendarIdentifier.ChineseCalendar;
localNotification.repeatInterval = CalendarUnit.Day;
}
localNotification.soundName = LocalNotification.defaultSoundName;
NotificationServices.ScheduleLocalNotification(localNotification);
}
}
void Awake()
{
//第一次进入游戏的时候清空,有可能用户自己把游戏冲后台杀死,这里强制清空
CleanNotification();
}
void OnApplicationPause(bool paused)
{
//程序进入后台时
if(paused)
{
//10秒后发送
NotificationMessage("雨松MOMO : 10秒后发送",System.DateTime.Now.AddSeconds(10),false);
//每天中午12点推送
NotificationMessage("雨松MOMO : 每天中午12点推送",12,true);
}
else
{
//程序从后台进入前台时
CleanNotification();
}
}
//清空所有本地消息
void CleanNotification()
{
LocalNotification l = new LocalNotification ();
l.applicationIconBadgeNumber = -1;
NotificationServices.PresentLocalNotificationNow (l);
NotificationServices.CancelAllLocalNotifications ();
NotificationServices.ClearLocalNotifications ();
}
}
|
弹出的消息通知。

最后是本工程的下载地址,雨松MOMO祝大家学习愉快。
http://vdisk.weibo.com/s/qDm4IY-bnMQb
- 本文固定链接: http://www.xuanyusong.com/archives/2632
- 转载请注明: 雨松MOMO 2014年05月19日 于 雨松MOMO程序研究院 发表
Unity3D研究院之IOS本地消息通知LocalNotification的使用(六十七)的更多相关文章
- Unity3D研究院之IOS本地消息通知LocalNotification的使用
原地址:http://www.xuanyusong.com/archives/2632 现在的游戏里一般都会有本地消息,比如每天定时12点或者下午6点告诉玩家进入游戏领取体力.这种东西没必要服务器 ...
- iOS开发-消息通知机制(NSNotification和NSNotificationCenter)
iOS中委托模式和消息机制基本上开发中用到的比较多,一般最开始页面传值通过委托实现的比较多,类之间的传值用到的比较多,不过委托相对来说只能是一对一,比如说页面A跳转到页面B,页面的B的值改变要映射到页 ...
- Unity3D研究院之IOS Android支持中文与本地文件的读取写
前几天有个朋友问我为什么在IOS平台中可以正常的读写文件可是在Android平台中就无法正常的读写.当时因为在上班所以我没时间来帮他解决,晚上回家后我就拿起安卓手机真机调试很快就定位问题所在,原 ...
- IOS - 本地消息推送
第一步:创建本地推送 // 创建一个本地推送 UILocalNotification *notification = [[[UILocalNotification alloc] init] autor ...
- 使用UILocalNotification给App添加本地消息通知
使用过的代码,直接贴上 UILocalNotification *notification = [[UILocalNotification alloc] init]; if (notification ...
- (转)Unity3D研究院之IOS&Android收集Log文件
转自:http://www.xuanyusong.com/archives/2477 有段时间没有写过文章了,不知道大伙儿还记得雨松MOMO吗? 嘿嘿. 开发项目的时候尤其在处理与服务器交互这块,如果 ...
- iOS 本地消息推送机制
转发自:https://www.jianshu.com/p/e347f999ed95 //已经废除的 http://blog.csdn.net/three_zhang/article/deta ...
- 【转载】Unity3D研究院之IOS触摸屏手势控制镜头旋转与缩放
前几篇文章介绍了很多Unity3D引擎自身的一些问题, 今天我们在回到IOS设备上讨论一些触摸屏幕手势,本章的目标是通过触摸iPhone屏幕手势 实现模型左右的旋转,与模型的缩放. 大家想一想模型的旋 ...
- 【转载】Unity3D研究院之IOS&Andoird使用Sharesdk遇到的坑
这两天研究了一下ShareSDK,说实话挺好用的,但是还是有点坑的地方.那么雨松MOMO写下博文记录一下来我遇到的坑,嘿嘿. 大部分内容它的文档上已经说的很清楚了. http://wiki.share ...
随机推荐
- Liquibase 快速开始
Step 1 :创建Changelog文件,所有的数据库变动都会保存在Changelog文件中 <?xml version="1.0" encoding="UTF- ...
- WN7下安装office2013编辑文档反应这么慢?
把office在高级选项里面“禁用硬件加速”给打勾就OK了. [office 2013密钥] 9MBNG-4VQ2Q-WQ2VF-X9MV2-MPXKV F2V7V-8WN76-77BPV-MKY36 ...
- linux:/lib/libc.so.6: version `glibc_2.7′ not found【没有解决】采用新方法达到目的
1 下载glibc wget http://ftp.gnu.org/pub/gnu/glibc/glibc-2.7.tar.gz 2. tar zxf glibc-2.7.tar.gz 3. cd g ...
- java 时间格式化中的模式字母
java日期格式化中的模式字母有特定的意义,由于没有注意,今天在做工程的时候导致出现了奇怪的日期: 错误写法如下: 然而得到了错误的结果: 正确写法如下: 这样就得到了正确的结果 mm指的是分钟,MM ...
- Codeforces Round 252 (Div. 2)
layout: post title: Codeforces Round 252 (Div. 2) author: "luowentaoaa" catalog: true tags ...
- 线段树+Dfs序【p2982】[USACO10FEB]慢下来Slowing down
Description 每天Farmer John的N头奶牛(1 <= N <= 100000,编号1-N)从粮仓走向他的自己的牧场.牧场构成了一棵树,粮仓在1号牧场.恰好有N-1条道路直 ...
- 洛谷——P2556 [AHOI2002]黑白图像压缩
P2556 [AHOI2002]黑白图像压缩 题目描述 选修基础生物基因学的时候, 小可可在家里做了一次图像学试验. 她知道:整个图像其实就是若干个图像点(称作像素)的序列,假定序列中像素的个数总是 ...
- tensorflow bilstm官方示例
''' A Bidirectional Recurrent Neural Network (LSTM) implementation example using TensorFlow library. ...
- 微信小程序开发教程(五)开发框架:MINA
微信团队为小程序提供的框架命名为MINA应用框架.MINA框架通过封装微信客户端提供的文件系统.网络通信.任务管理.数据安全等基础功能,对上层提供一整套JavaScript API,让开发者能够非常方 ...
- windows下虚拟环境安装方法
方法一:使用virtualenv安装虚拟环境 1.安装virtualenv pip install virtualenv 2.随意创建文件夹(将来虚拟环境会在这个文件夹) mkdir mypro ...