iOS如何通过推送打开指定页面
众所周知推送功能已经是APP如今必不可少的一个APP功能,现在我就来介绍一下iOS如何通过推送打开指定页面。
先去 didFinishLaunchingWithOptions 方法配置消息,AppDelegate 要遵循 MPushRegisterDelegate 协议。
@interface AppDelegate () <MPushRegisterDelegate>
配置消息
MPushNotificationConfiguration *configuration = [[MPushNotificationConfiguration alloc] init]; configuration.types = MPushAuthorizationOptionsBadge | MPushAuthorizationOptionsSound | MPushAuthorizationOptionsAlert; [MobPush setupNotification:configurationdelegate:self];
MobPush 新增设置方法,添加了第二个参数:delegate,将第二个参数 delegate 设为 self
+ (void)setupNotification:(MPushNotificationConfiguration *)configuration delegate:(id <MPushRegisterDelegate>)delegate;
然后再去处理接受到的推送消息,跳转相应的页面,这里以 Demo 为例子,点击通知跳转 web 页面,先去推送创建后台配置 url = http://m.mob.com 键值对。
- iOS 8 - 9 前台收到通知 后台点击通知
// iOS 8-9 前台收到通知 后台点击通知 - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler { if (application.applicationState == UIApplicationStateActive) { // 应用在前台 // 最好先弹出一个 Alert,如下图片,今日头条,当你在浏览新闻,应用在前台,他就会弹出一个 Alert,告知你是否查看详情 } else { // 应用在后台 // 应用在后台点击通知,直接跳转 web 页面 NSString *url = userInfo[@"url"]; if (url) { UINavigationController *nav = (UINavigationController *)self.window.rootViewController; WebViewController *webVC = [[WebViewController alloc] init]; webVC.url = url; [nav pushViewController:webVC animated:YES]; } } completionHandler(UIBackgroundFetchResultNewData); }
iOS 10 之后,使用 MPushRegisterDelegate 协议的方法
// iOS 10 后台点击通知 - (void)mpushNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(NSUInteger options))completionHandler { // 应用在后台点击通知,直接跳转 web 页面 NSString *url = userInfo[@"url"]; if (url) { UINavigationController *nav = (UINavigationController *)self.window.rootViewController; WebViewController *webVC = [[WebViewController alloc] init]; webVC.url = url; [nav pushViewController:webVC animated:YES]; } } // iOS 10 前台收到通知 - (void)mpushNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void(^)(void))completionHandler { // 跟上面的一样 }
以上就是我整理的比较简单的方式啦~
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
ASCSDK-------通用包接入文档(COCOS篇)
先说下大体的思路。和之前说的在Unity中接入ASCSDK一样,在Cocos2dx中接入ASCSDK,我们也分为两步,一个Android中的部分,另 一个是Coccos2dx中的部分。同时,我们希望尽可能地封装不同平台之间数据的传递,以及接口的调用。使得大部分游戏基于这个封装,都可以最快地速度来完成ASCSDK的接入。 新建一个Android工程,作为ASCSDK和Cocos2dx的一个中间工程(ASCSDK_Cocos2dx),主要负责ASCSDK的接口调用封装,参数传递和解析等。这个工程,对于所有游戏都试用。 在Cocos2dx中封装JNI调用,以及和Android中交互的数据格式等的定义和解析。同样地,这部分对于所有游戏也都适用。游戏中只需要调用这里提供的相关接口,以及实现相应的回调即可完成接入。 首先, 我们使用cocos new 新建一个Cocos2dx(我这里使用的是Cocos2dx 3.10版本)工程,名为Cocos_Demo。 目录如下图 demo中我们创建了5个按钮,分别为登陆,支付,评价,展示横幅,展示插屏。代码以及运行效果如下。 #include "HelloWo...
- 下一篇
界面无小事(二): 让RecyclerView展示更多不同视图
界面无小事(一): RecyclerView+CardView了解一下界面无小事(二): 让RecyclerView展示更多不同视图界面无小事(三):用RecyclerView + Toolbar做个文件选择器界面无小事(四):来写个滚动选择器吧!界面无小事(五):自定义TextView界面无小事(六):来做个好看得侧拉菜单! 目录 前言 GridLayoutManager的使用 Glide加载图片 让RecyclerView支持更多不同布局 来看看横向滚动 还有瀑布流 最后 前言 之前设置布局的时候用了最简单的LinearLayoutManager, 而且是单一布局, 这次来感受下GridLayoutManager和瀑布流以及多布局. GridLayoutManager的使用 比起LinearLayoutManager, GridLayoutManager可以适用的场景就更多了. 来看一段代码: RecyclerView rvTest = (RecyclerView) findViewById(R.id.rv_test); //rvTest.setLayoutManager(new ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker安装Oracle12C,快速搭建Oracle学习环境
- 2048小游戏-低调大师作品
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题