当前位置: 移动技术网 > IT编程>移动开发>IOS > iOS点击推送消息跳转处理

iOS点击推送消息跳转处理

2019年07月24日  | 移动技术网IT编程  | 我要评论

美女性感热舞,北京冰箱维修,qqskin.exe

当用户通过点击通知消息进入应用时

- (bool)application:(uiapplication*)application didfinishlaunchingwithoptions:(nsdictionary*)launchoptions

launchoptions

中会有推送消息的userinfo信息,此时我们可以通过

nsdictionary* remotenotification = [launchoptions objectforkey:uiapplicationlaunchoptionsremotenotificationkey]; 

获得推送消息内容。如果remotenotification不为空,则说明用户通过推送消息进入,那么可以声明一个属性

@property (nonatomic) bool islaunchedbynotification; 

用于标识用户是否通过点击通知消息进入本应用。此时,

- (void)application:(uiapplication*)application didreceiveremotenotification:(nsdictionary*)userinfo 

一定会被调用,ios7可以使用

- (void)application:(uiapplication*)application didreceiveremotenotification:(nsdictionary*)userinfo fetchcompletionhandler:(void (^)(uibackgroundfetchresult))completionhandler 

因为此方法的调用时,mainviewcontroller已经被初始化,所以我们已经可以在mainviewcontroller注册推送消息的监听,用于展示对应的视图,如下:

//订阅展示视图消息,将直接打开某个分支视图
[[nsnotificationcenter defaultcenter] addobserver:self selector:@selector(presentview:) name:@"presentview" object:nil];//弹出消息框提示用户有订阅通知消息。主要用于用户在使用应用时,弹出提示框
[[nsnotificationcenter defaultcenter] addobserver:self selector:@selector(shownotification:) name:@"notification" object:nil]; 

所以在appdelegate的didreceiveremotenotification中可以通过判断islaunchedbynotification来通知不同的展示方法。

脑补一个推送来临时,播放震动声音不停止的代码(不是播放音乐哦)

首先包含头文件

#import <audiotoolbox/audiotoolbox.h> 

注册一段声音(本例中直接使用默认1007)

@property (nonatomic, assign) systemsoundid soundid;
nsstring *path = [[nsbundle mainbundle] pathforresource:soundname oftype:nil];
audioservicescreatesystemsoundid((__bridge cfurlref)[nsurl fileurlwithpath:path], &_soundid);
audioservicesaddsystemsoundcompletion(_soundid, null, null, soundcompletecallback, null); // 核心代码 可重复执行
audioservicesplaysystemsound(ksystemsoundid_vibrate);
audioservicesplaysystemsound(_soundid);
// block 用于 audioservicesaddsystemsoundcompletion(_soundid, null, null, soundcompletecallback, null); 函数调用
void soundcompletecallback(systemsoundid soundid,void * clientdata)
{
audioservicesplaysystemsound(ksystemsoundid_vibrate);
audioservicesplaysystemsound(soundid);
}
// 停止播放
-(void)stopalertsoundwithsoundid:(systemsoundid)soundid 
{
audioservicesdisposesystemsoundid(ksystemsoundid_vibrate);
audioservicesdisposesystemsoundid(soundid);
audioservicesremovesystemsoundcompletion(soundid);
}

以上内容是小编给大家介绍的ios点击推送消息跳转处理的相关内容,希望对大家有所帮助!

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

  • ios uicollectionview实现横向滚动

    现在使用卡片效果的app很多,之前公司让实现一种卡片效果,就写了一篇关于实现卡片的文章。文章最后附有demo实现上我选择了使用uicollectionview ... [阅读全文]
  • iOS UICollectionView实现横向滑动

    本文实例为大家分享了ios uicollectionview实现横向滑动的具体代码,供大家参考,具体内容如下uicollectionview的横向滚动,目前我使... [阅读全文]
  • iOS13适配深色模式(Dark Mode)的实现

    iOS13适配深色模式(Dark Mode)的实现

    好像大概也许是一年前, mac os系统发布了深色模式外观, 看着挺刺激, 时至今日用着也还挺爽的终于, 随着iphone11等新手机的发售, ios 13系统... [阅读全文]
  • ios 使用xcode11 新建项目工程的步骤详解

    ios 使用xcode11 新建项目工程的步骤详解

    xcode11新建项目工程,新增了scenedelegate这个类,转而将原appdelegate负责的对ui生命周期的处理担子接了过来。故此可以理解为:ios... [阅读全文]
  • iOS实现转盘效果

    本文实例为大家分享了ios实现转盘效果的具体代码,供大家参考,具体内容如下demo下载地址: ios转盘效果功能:实现了常用的ios转盘效果,轮盘抽奖效果的实现... [阅读全文]
  • iOS开发实现转盘功能

    本文实例为大家分享了ios实现转盘功能的具体代码,供大家参考,具体内容如下今天给同学们讲解一下一个转盘选号的功能,直接上代码直接看viewcontroller#... [阅读全文]
  • iOS实现轮盘动态效果

    本文实例为大家分享了ios实现轮盘动态效果的具体代码,供大家参考,具体内容如下一个常用的绘图,主要用来打分之类的动画,效果如下。主要是ios的绘图和动画,本来想... [阅读全文]
  • iOS实现九宫格连线手势解锁

    本文实例为大家分享了ios实现九宫格连线手势解锁的具体代码,供大家参考,具体内容如下demo下载地址:效果图:核心代码://// clockview.m// 手... [阅读全文]
  • iOS实现卡片堆叠效果

    本文实例为大家分享了ios实现卡片堆叠效果的具体代码,供大家参考,具体内容如下如图,这就是最终效果。去年安卓5.0发布的时候,当我看到安卓全新的material... [阅读全文]
  • iOS利用余弦函数实现卡片浏览工具

    iOS利用余弦函数实现卡片浏览工具

    本文实例为大家分享了ios利用余弦函数实现卡片浏览工具的具体代码,供大家参考,具体内容如下一、实现效果通过拖拽屏幕实现卡片移动,左右两侧的卡片随着拖动变小,中间... [阅读全文]
验证码:
移动技术网