美文网首页
本地推送(ios8以上)

本地推送(ios8以上)

作者: i大猫哥 | 来源:发表于2016-06-11 20:37 被阅读140次
  1. 首先在appDelegate中注册权限
    <p>注册本地推送权限</p>

<pre><code>
` - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

if (launchOptions[UIApplicationLaunchOptionsLocalNotificationKey]) {
    // 进入该方法说明是应用程序被杀死的情况下通过点击本地通知进入的该方法
    // 如果应用程序没有被杀死,通过点击本地通知只会进入didReceiveLocalNotification方法
    
// 在IOS8中必须注册本地通知
if ([[UIDevice currentDevice].systemVersion doubleValue] >= 8.0) {
    UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories:nil];
    
    [application registerUserNotificationSettings:settings];
}

}

return YES;

}

/**

  • 收到本地通知后,并且应用程序在前台或进入前台时才调用本方法
  • 如果应用程序被杀死了以后,再通过点击通知进入前台的时候也不会调用该方法。这种情况下应该在didFinishLaunchingWithOptions方法中设置点击通知后的操作
    */
  • (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
    {
    if (application.applicationState == UIApplicationStateInactive) {
    // 当应用程序进入前台的时候执行
    // 如果需要判断跳转到哪个页面,可以根据notification的userInfo传递过来的值来判断
    // 调试小技巧:如果想看应用程序退出后再进入前台是否执行了该方法,由于,退出应用程序后XCode就不再处于调试状态,所以不能通过打印来判断是否执行了该方法。但是可以通过给一个View添加一个控件来判断是否执行了该方法

      // 打印本地推送对象传过来的字典
      NSLog(@"%@",notification.userInfo);
    

    }

    UIApplicationState state = application.applicationState;
    // NSLog(@"%@,%d",notification,state);

    // 判断程序正在使用,此时程序没有在后台
    if (state == UIApplicationStateActive) {
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提醒"
    message:notification.alertBody
    delegate:self
    cancelButtonTitle:@"Close"
    otherButtonTitles:@"OK",nil];
    [alert show];

    }
    }`
    </code>
    </pre>

2.ViewController中初始化本地推送对象,界面点击时候,触发本地推送5秒后执行。

<p>初始化本地推送对象</p>

<pre><code>
` - (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

}

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
//[self setLocalNotice1];
[self setLocalNotice2];
}

-(void)setLocalNotice1
{
// 1.创建本地推送通知对象
UILocalNotification *localNote = [[UILocalNotification alloc] init];

// 2.设置本地推送通知内容(下面两个是必填参数)
// 2.1设置通知发出时间(触发后5秒钟后发出通知)
localNote.fireDate = [NSDate dateWithTimeIntervalSinceNow:2.0];
// 2.2 设置通知的内容
localNote.alertBody = @"吃饭了吗";
// 设置有通知的提醒声音
// 这个是设置系统默认声音
localNote.soundName = UILocalNotificationDefaultSoundName;
// 这个是设置自定义声音
localNote.soundName = @"sound.caf";
// 通过点击通知进入应用的时候是否显示启动图标(注意:这里的启动图片名称随便写)
localNote.alertLaunchImage = @"这里随便写";

// 3.调用通知
[[UIApplication sharedApplication] scheduleLocalNotification:localNote];

}

-(void)setLocalNotice2
{
// 1.创建一个本地通知
UILocalNotification *localNote = [[UILocalNotification alloc] init];

// 1.1.设置通知发出的时间
localNote.fireDate = [NSDate dateWithTimeIntervalSinceNow:5];

// 1.2.设置通知内容
localNote.alertBody = @"这是一个推送这是一个推送";

// 1.3.设置锁屏时,字体下方显示的一个文字
localNote.alertAction = @"赶紧!!!!!";
localNote.hasAction = YES;

// 1.4.设置启动图片(通过通知打开的)
localNote.alertLaunchImage = @"../Documents/IMG_0024.jpg";

// 1.5.设置通过到来的声音
localNote.soundName = UILocalNotificationDefaultSoundName;

// 1.6.设置应用图标左上角显示的数字
localNote.applicationIconBadgeNumber = 999;

// 1.7.设置一些额外的信息
localNote.userInfo = @{@"qq" : @"704711253", @"msg" : @"success"};

// 2.执行通知
[[UIApplication sharedApplication] scheduleLocalNotification:localNote];

}`
</code>
</pre>

参考网上资料,自己用xcode运行跑了一遍。做出以上内容,以后用到的时候能快速找到。

相关文章

  • 本地推送(ios8以上)

    首先在appDelegate中注册权限 注册本地推送权限 ` - (BOOL)application:...

  • ios 本地推送

    、、、 注册本地推送跟远程推送是同一个方法不过ios8以后需要在- (BOOL)application:(UIAp...

  • iOS8 本地推送 UILocalNotification

    前言 最近忙中偷闲,把有关本地推送的内容给整理一下,本篇文章主要讲述UILocalNotification的一些使...

  • iOS本地推送(本地通知)

    在iOS8之后,以前的本地推送写法可能会出错,接收不到推送的信息, 如果出现以下信息: 1 Attempting ...

  • iOS10 本地推送你玩过了吗?

    首先来看一下iOS10的推送的基本的实现,和之前的推送有啥差别。 权限申请iOS8之前,远程推送和本地推送是区分对...

  • iOS8本地推送

    在IOS8下没有注册,所以需要额外添加对IOS8的注册方法 第一步:注册本地通知 第二步:处理通知,这个是在app...

  • iOS8本地推送

    本地推送与远程推送相比要简单的多,不需要导入任何文件和系统库,但其功能也因此而受限,只能设置固定的时间进行推送,而...

  • iOS10推送开发

    iOS10推送授权 UNNotificationSettings属性 iOS10本地推送示例 定义推送 以上就是一...

  • iOS 消息推送 - 本地推送,兼顾iOS8 categorys

    本地推送 1、申请权限,开启通知2、app 主动向设备的通知中心发送本地消息3、在设定的触发时间,产生消息推送 1...

  • 本地推送 基本使用 (一)

    环境: Xcode 8.1系统: iOS10以下适用范围: 提醒通知,闹钟 0.在iOS8开始适用本地推送需要注册...

网友评论

      本文标题:本地推送(ios8以上)

      本文链接:https://www.haomeiwen.com/subject/jfkedttx.html