首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

app被销毁或被杀时,点击推送通知后如何打开特定的控制器

当一个app被销毁或被杀时,点击推送通知后如何打开特定的控制器,可以通过以下步骤实现:

  1. 在推送通知的payload中添加自定义字段,用于标识要打开的控制器。例如,可以在payload中添加一个字段"controller",值为要打开的控制器的标识符。
  2. 在接收到推送通知的设备上,通过注册远程通知的代理方法(如iOS中的UNUserNotificationCenterDelegate),获取到推送通知的payload。
  3. 解析推送通知的payload,获取到自定义字段的值。
  4. 根据自定义字段的值,判断要打开的控制器是哪个,并进行相应的处理。可以通过条件语句或者switch语句来判断。
  5. 打开特定的控制器。根据具体的开发框架和语言,可以使用相应的方法或函数来实现。例如,在iOS中,可以使用导航控制器的pushViewController方法或者present方法来打开特定的控制器。

以下是一个示例的iOS代码片段,用于在接收到推送通知后打开特定的控制器:

代码语言:swift
复制
// 在AppDelegate中注册远程通知的代理方法
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    UNUserNotificationCenter.current().delegate = self
    // 其他初始化代码
    return true
}

// 实现UNUserNotificationCenterDelegate代理方法
extension AppDelegate: UNUserNotificationCenterDelegate {
    // 接收到推送通知时调用
    func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
        let userInfo = response.notification.request.content.userInfo
        // 解析推送通知的payload
        if let controllerIdentifier = userInfo["controller"] as? String {
            // 判断要打开的控制器是哪个
            if controllerIdentifier == "ViewController1" {
                // 打开特定的控制器
                let viewController1 = ViewController1()
                // 使用导航控制器的pushViewController方法打开控制器
                navigationController?.pushViewController(viewController1, animated: true)
            } else if controllerIdentifier == "ViewController2" {
                // 打开特定的控制器
                let viewController2 = ViewController2()
                // 使用present方法打开控制器
                present(viewController2, animated: true, completion: nil)
            }
        }
        completionHandler()
    }
}

请注意,以上代码仅为示例,具体实现方式可能因开发框架和语言而异。在实际开发中,可以根据具体需求进行适当的修改和调整。

推荐的腾讯云相关产品:腾讯移动推送(https://cloud.tencent.com/product/umeng_push

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

应用保活终极总结(二):Android6.0及以上保活实践(进程防杀篇)

说起来比较绕口,总之本文要讨论内容是如何防止Android应用系统“杀掉”,下篇讨论是“被杀掉”如何让它复活。...当"咕咚"处于停止状态,其进程被杀死,通知栏图标清理,等待几分钟没有 自动重启,当重新进入“咕咚”,会从欢迎界面重新进入; b....(滑动清理除外),说明已经启动保活机制:   - ①"咕咚"禁止了返回键,以保证运动Activity不被销毁;   - ②不断更新通知栏计时,以保证APP始终在前台,防止系统回收;   - ③"...咕咚"清理能够自动重启,通知被删除自动弹出,说明可能有另外一个东西(进程Service)监听器运动Service(进程)存活状态,当Service销毁,立马将其拉起来;   - ④“咕咚...分析: 当"乐动力"处于停止状态,黑屏状态下,其在短时间内系统杀死,说明保活机制没有启用; 但当处于运动暂停进行状态,"乐动力"在一段时间内没有被杀死,且当锁屏,"乐动力"会自动将运动界面切换到前台

3.8K21

后台杀死后,Android应用如何重新走闪屏逻辑

后台杀死与恢复堆栈.jpg APP后台杀死后,APP端进程销毁了,也就不存在什么Activity了,也就没有什么Activity堆栈,不过AMS却是保留了下来: ?...后台杀死与恢复堆栈-杀.jpg 当用户再次启动APP时候会怎么样呢?这个时候,首先看到其实C,而不是栈底部A,也就是说往往被杀死后,恢复看到第一个界面是用户最后见到那个界面。 ?...从推送唤起被杀APP如何走闪屏逻辑 对于推送消息处理,其路由器一般放在MainActivity,并且在onCreate跟onNewIntent都有添加,如果APP存活情况,可以直接跳转目标页面,...如果APP被杀,这个时候,希望先跳转主界面,再跳转目标页面,在效果上来看就是,用户先看到目标页面,点击返回时候再看到主界面,如果加上闪屏,希望达到效果是先看到闪屏、点击返回看到目标页,再点击返回看到主页面...路由系统中,针对这两种场景要,先跳转闪屏,闪屏回来,再跳转推送如何判断呢,后面两种场景其实只需要判断是否有Activity存活即可,也就是查查APPtopActivity是否为null,注意不要去向

2.7K40

Android 功耗(12)---省电续航-相互唤醒

03用户通知栏更是变成各种商业博弈,个别后台推送消息还调用提示音进行广告提示,巴不得用户24小使用。其实任何图形和声音调用都是需要费电。...相互唤醒启动方式 方式一: 系统广播(开机、解锁)->启动推送服务pushService,即第三方APP永远不被杀SDK技术->将所有注册相同推送服务家族系APP执行 台启动; 方式二: 通过...,即第三方APP永远不被杀SDK技术->将所有注册相同推送服务家族系APP执行后台启动; 方式四: 伪装Activity前台进程启动app->启动推送服务pushService,即第三方APP永远不被杀...; 4.Android设置–> WLAN–>点击菜单键选择高级–>休眠状态下保持WLAN连接下拉列表{始终、仅限充电、从不(会增加数据流量)},如果设置不为始终,那么我们锁屏休眠,程序将会处于无网络状态...; 4.Android设置–> WLAN–>点击菜单键选择高级–>休眠状态下保持WLAN连接下拉列表{始终、仅限充电、从不(会增加数据流量)},如果设置不为始终,那么我们锁屏休眠,程序将会处于无网络状态

96430

iOS 本地推送概念步骤:属性:点击通知跳到指定控制器界面快捷回复功能(iOS 8以后可用), category 属性使用方法

(说明新内容数量) 播放音效(提醒作用) 2.用户也可以决定是否要开启以下4个功能: 显示App图标数字 播放音效 锁屏显示 显示在“通知中心” 3、注意: 发送推送通知,如果程序正在前台执行,那么推送通知就不会被呈现出来...,但是微信在前台时候也能推送消息,方法是:创建一个view,仿造系统消息通知样式向下出现,点击回到根控制器再进行跳转(注意压栈) 点击通知打开通知app 不管程序打开还是关闭,推送都能如期发出..., nonatomic,copy) NSString *alertTitle NS_AVAILABLE_IOS(8_2); 12、设置通知推送携带参数,一般用于点击通知打开指定控制器页面 @property...(nullable, nonatomic,copy) NSDictionary *userInfo; 例子: 发送通知,带一个索引2参数,点击通知打开程序自动跳到第三个控制器(TabBarController...案例结构,tabBarController索引分别为0 1 2 1、接收到本地通知调用(AppDelegate中),该方法只有程序前台后台时候才有用,退出无法接收到消息即无法跳转,如需要在程序退出推送通知

2.5K60

Android消息推送:第三方消息推送平台详细解析

(开发成本和后台管理、统计成本) 消息到达率高 如果一个手机里有多个App使用了同一家推送服务,那么这些App将共用一条消息通道,即使你家App推送服务被杀死了,那么只要用户打开了其他集成该推送服务...有一天你App被杀死了,但这时用户启动了今日头条,那么推送系统也就会通过共享推送通道顺便把你推送消息送达到手机上,然后还可能把你进程也唤醒(“保活”了)。...如果用户群体精准(使用小米手机华为手机居多),可以考虑只集成对应手机厂商推送; 注意:单一手机厂商也能工作,比如小米推送在非小米手机上当然也能工作,只不过不是系统级别的服务了,容易被杀死。...通知栏消息:该类消息在被送达用户设备,直接以系统通知形式展示给用户 不会继续传递到App 透传消息:该类消息在被送达用户设备,还会继续传递到App 通过回调App某个BroadcastReceiver...因为透传消息在整个消息传递过程中比通知栏消息多了一步-传递到App,因此透传消息就增加一些系统限制概率,给系统杀死概率就高一些,所以说,通知栏消息比透传消息应该能提供更好送达率。

9.6K60

iOS开发--本地通知与远程通知

Paste_Image.png 通知注意点 1、App在前台运行时候,通知不会展示出来 2、点击通知,默认会自动打开推送通知App 3、不管App是否打开通知都可以如期发出 1、本地推送通知...@property(nonatomic,copy) NSString *alertAction; // 设置点击通知启动图片(一般设置App启动图片,这里可以随便写) @property...,如果用户打开通知,可以让用户进入一些特定界面 /* 应用程序在进入前台,或者在前台时候都会执行该方法 */ - (void)application:(UIApplication *)application...deviceToken给公司服务器 4、监听用户对通知点击 如何调试远程推送功能 1、真机 2、调试推送需要证书文件 证书自己配置。。。...3、发布具有推送服务App 包含推送cer证书+某个具有发布资格电脑,就可以发布 如何推送 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions

3.1K20

IMSDK华为离线推送快速集成

一、简介 即时通信 IM 终端用户需要随时都能够得知最新消息,而由于移动端设备性能与电量有限,当 App 处于后台,为了避免维持长连接而导致过多资源消耗,即时通信 IM 推荐您使用各厂商提供系统级推送通道来进行消息通知...本篇主要介绍:在tuikit上如何快速跑通华为离线推送,实现如下功能点,顺便记录一下,在集成过程中,容易踩到坑点 1、退后台/杀进程,接收离线消息 2、离线消息透传ext字段 3、通知点击打开应用内界面...//APP 检测到应用退后台可以调用此接口,可以用作桌面应用角标的初始化未读数量。 //从5.0.1版本开始,如果配置了离线推送,会收到厂商离线推送通道下发通知栏消息。...步骤2:接收端获取自定义内容 若 添加证书 设置【点击通知操作为【打开应用】打开应用内指定界面】,当点击通知消息,客户端可以在相应 Activity 中获取自定义内容,可以参考 OfflineMessageDispatcher.java...6、由于华为推送兼容性问题,自定义ext字段,只能在部分 EUI10+ 设备上收到 7、进程被杀,厂商推送离线消息到来,弹出通知栏行为、通知栏样式、震动、提示音、角标增加,都是系统行为,控制开关在手机系统设置里面

2K40

IMSDK华为离线推送快速集成

一、简介 即时通信 IM 终端用户需要随时都能够得知最新消息,而由于移动端设备性能与电量有限,当 App 处于后台,为了避免维持长连接而导致过多资源消耗,即时通信 IM 推荐您使用各厂商提供系统级推送通道来进行消息通知...本篇主要介绍:在tuikit上如何快速跑通华为离线推送,实现如下功能点,顺便记录一下,在集成过程中,容易踩到坑点 1、退后台/杀进程,接收离线消息 2、离线消息透传ext字段 3、通知点击打开应用内界面...//APP 检测到应用退后台可以调用此接口,可以用作桌面应用角标的初始化未读数量。 //从5.0.1版本开始,如果配置了离线推送,会收到厂商离线推送通道下发通知栏消息。...步骤2:接收端获取自定义内容 若 添加证书 设置【点击通知操作为【打开应用】打开应用内指定界面】,当点击通知消息,客户端可以在相应 Activity 中获取自定义内容,可以参考 OfflineMessageDispatcher.java...6、由于华为推送兼容性问题,自定义ext字段,只能在部分 EUI10+ 设备上收到 7、进程被杀,厂商推送离线消息到来,弹出通知栏行为、弹出顶部横幅行为、通知栏样式、震动、提示音、角标增加,都是系统行为

4K40

IMSDK离线推送

App 在后台容易系统 kill,因此推荐在安卓设备上集成对应厂商推送,依赖厂商系统级服务,推送到达率较高。...另外请打开app通知栏权限、不要设置手机免打扰模式。 iOS app退后台,可以调用deBackground接口通知云通信后台,云通信后台会以离线消息方式投递消息下来。...②、苹果官网证书过期、密码错误等原因,未知错误可以先重新申请一个证书再运行看看 3、安卓点击通知栏,可以跳转到指定页面吗 答:暂时还不支持,只能按系统标准打开应用。...6、通知栏刷出了离线消息,点击打开app,进入到会话页面,怎么获取到这个离线消息呢 答、离线状态,新消息不会触发onNewmessage接口,进入会话页面,通过拉取漫游消息拉取到这条离线消息。...但是一旦IMAPP在后台kill了,消息就只能通过离线消息方式,由厂商服务推送到他们设备系统进程里面,由系统进程弹出通知栏、定义通知点击跳转事件。

6K151

IMSDK华为离线推送快速调试

一、简介 即时通信 IM 终端用户需要随时都能够得知最新消息,而由于移动端设备性能与电量有限,当 App 处于后台,为了避免维持长连接而导致过多资源消耗,即时通信 IM 推荐您使用各厂商提供系统级推送通道来进行消息通知...本篇主要介绍:在tuikit上如何快速跑通华为离线推送,实现如下功能点,顺便记录一下,在集成过程中,容易踩到坑点 1、退后台/杀进程,接收离线消息 2、离线消息透传ext字段 3、通知点击打开应用内界面...//APP 检测到应用退后台可以调用此接口,可以用作桌面应用角标的初始化未读数量。 //从5.0.1版本开始,如果配置了离线推送,会收到厂商离线推送通道下发通知栏消息。...步骤2:接收端获取自定义内容 若 添加证书 设置【点击通知操作为【打开应用】打开应用内指定界面】,当点击通知消息,客户端可以在相应 Activity 中获取自定义内容,可以参考 OfflineMessageDispatcher.java...7、由于华为推送兼容性问题,自定义ext字段,只能在部分 EUI10+ 设备上收到 8、进程被杀,厂商推送离线消息到来,弹出通知栏行为、弹出顶部横幅行为、通知栏样式、震动、提示音、角标增加,都是系统行为

2.1K90

ios入门之消息推送

本地推送 不需要服务器支持(无需联网)就能发出推送通知app本地创建通知,加入到系统Schedule里,如果触发器条件达成时会推送相应消息内容,如常见定时任务闹钟等。 ?...= YES; //设置通过点击通知打开APP时候启动图片(无论字符串设置成什么内容,都是显示应用程序启动图片) localNote.alertLaunchImage = @"111...当用户点击本地推送通知时候,会自动打开app,这里有2种情况:app在后台运行,或者系统进程杀死,对于这两种情况,我们怎么处理呢? app后台运行 ?...对于app被杀情况,要先启动app,启动完毕会调用AppDelegate方法。 需要特别注意是:在iOS8.0以后本地通知有了一些变化,如果要使用本地通知,需要得到用户许可。...launchOptions设置 if (launchOptions[UIApplicationLaunchOptionsLocalNotificationKey]) { // 当被杀死状态收到本地通知执行跳转代码

1.8K60

Android 进程保活招式大全

方案设计思想 监控手机锁屏解锁事件,在屏幕锁屏启动1个像素 Activity,在用户解锁将 Activity 销毁掉。注意该 Activity 需设计成用户无感知。...方案实现挑战 从 Android2.3 开始调用 setForeground 将后台 Service 设置为前台 Service ,必须在系统通知栏发送一条通知,也就是前台 Service 与一条可见通知绑定在一起...方案设计思想 在发生特定系统事件,系统会发出响应广播,通过在 AndroidManifest 中“静态”注册对应广播监听器,即可在发生响应事件拉活。 常用用于拉活广播事件包括: ?...这些方案包括: 利用系统通知管理权限进行拉活 利用辅助功能拉活,将应用加入厂商管理软件白名单。 这些方案需要结合具体产品特性来搞。 上面所有解释这些方案都是考虑无 Root 情况。...国内版应用:根据终端不同,在小米手机(包括 MIUI)接入小米推送、华为手机接入华为推送;其他手机可以考虑接入腾讯信鸽极光推送与小米推送做 A/B Test。

3K70

Android 点击通知栏消息打开activity,并判断app是否运行

android通知栏消息点击事件如果是打开一个activity,我们要考虑两种情况: 应用正在前台运行。 应用已退出。...对于第二种情况,我参照了很多app做法,现总结为以下两种: 点击通知栏消息打开activity按下返回键判断app是否启动,如果没有启动就要启动app点击通知栏消息判断app是否正在前台运行,.../** * 启动App,为跳转到主页MainActivityIntent写入打开通知Intent,如果有通知情况下 * * @param appStartActivity...,为跳转到主页MainActivityIntent写入打开通知Intent,如果有通知情况下 * * @param appStartActivity * app...BLaunch mode为singleTask,此时D通过Intent跳转到B,则栈情况变成了:A B。而C和D弹出销毁了,也就是说位于B之上实例都被销毁了。

3K10

057 组件化Android

如果已经创建,就直接通知它加载组件。否则,先将该进程创建起来,再通知它加载组件。 关闭组件: 组件关闭,其所运行在进程无需关闭,这样就可以让组件重新打开得到快速启动。...: (1).首先检查有没有泄漏Surface,即那些Session已经不存在但是还没有销毁Surface,以及那些宿主Activity已经不可见但是还没有销毁Surface。...如果存在的话,就将它们销毁即可,不用KillPids。 (2).如果不存在没有泄漏Surface,那么那些存在Surface进程都有可能被杀掉,这是通过KillPids来实现。...如果后台进程超过限制,那么最近越是不使用后台进程,就越会被杀掉。 (4). 通知进程ScheduleTrimMemory。 updateOomAdjLocked-- single: (1)....2.Init和System Server进程oom_adj等于-16,是最高,保证不会被杀死。 3.PhoneApp具有persist属性,它oom_adj设置为-12,也能保证不会被杀死。

57430

推送-远程通知推送教程

在Xcode完成一些下载,看起应该会是下面的样子 1463989064930009.png 这个步骤背后操作是,如果你当前开发者帐号下没有对应App ID就会主动创建App ID,并且打开推送通知功能...你可以登陆开发者中心确认是否打开了这个功能: 1463989123284236.jpg 如果这个过程中出现问题,可以手动创建App ID或者点击开发者中心 + Edit 按钮开启推送通知功能。...处理接收到通知 在这个章节,你将会学习当App接收到通知或者用户点击通知应该如何执行什么样操作。...编绎运行,完成安装,发送一些新动态。点击通知以启动App,启动之后App会显示一些新消息。...,当交互通知用户触发打开App并让其进入前台.这个交互动作标识符是 VIEW_IDENTIFIER ,这个标识符用于区分同一通知不同交互动作.

3.9K30

再谈Android客户端进程保活

搞Android同学都知道,每一个Android应用启动至少对应一个进程,有的则有多个进程,大多数主流APP都会包含多个进程,因为除了主要进程之外,还有诸如长连接、推送等进程。...空进程 某个进程不包含任何活跃组件该进程就会被置为空进程,完全没用,杀了它只有好处没坏处,第一个干它。 内存阈值 上面主要讲的是进程,那么进程是怎么被杀呢?这不得不提主要一个原因:内存。...缓存进程,空进程,在内存不足情况下就会优先kill CACHED_APP_MIN_ADJ 9 缓存进程,也就是空进程 SERVICE_B_ADJ 8 不活跃进程 PREVIOUS_APP_ADJ...GCM: 只要机器上有GMS ,启动就尝试注册GCM,并通知后台。服务器会根据终端是否保持长连,决定是否由GCM通知。GCM主要针对国外比较复杂网络环境。...,单个进程回收了并不影响其他进程。

3.7K71

搞定iOS推送,看这一篇就够了 顶

iOS 10及以后版本,处理APNs通知点击事件 // iOS 10: 点击通知进入App触发,在该方法内统计有效用户点击数 - (void)userNotificationCenter:(UNUserNotificationCenter...因为本人也是第一次搞推送这书,而且也踩了不少坑,为了下次不再踩同样坑,所以在这里就对如何制作推送证书进行了一次规整。 ####如何制作推送证书?...进入,我有点懵逼,因为之前没有了解过个推SDK逻辑,在询问了个推技术支持,技术支持告诉我怎么在个推平台上面去推,也是自己太粗心了,人家进去第一句话就写很清楚,推送通知目前仅支持安卓用户,iOS请使用透传消息...NICE啊,这下应用在前台、应用在后台和应用被杀情况下都可以收到推送消息了,爽歪歪啊!看来我们已经成功看了百分之九十了!...]; 发现demo里面有这么一行代码,我把这行代码打开推送一条消息,发现标题没有变化,我惊呆了!

1.6K41

京东金融客户端用户触达方式精细化探索与实践

短信消息触达能力是毋庸置疑,虽然短信文本中直接放入链接也可以打开,但是确存在一些局限性,这种方式仅支持打开web页面,无法跳转到APP原生页面,另外点击链接会先弹窗,由用户选择打开链接app,这种体验相比直接打开...③如何指定推送方式人群 基于ReglD推送 RegID为是推送SDK为每个设备上每个app注册推送服务生成唯一标示。...当开发者需要给一个多个具体设备推送消息,可以使用基于RegID推送,将个性化信息推送给指定设备。这种方式适用于需要为每个用户订制个性化推送场景。...VIVO通道 根据实时数仓提供数据与厂商反馈错误码分析发现,京东金融App在VIVO通道触达偏低主要因素为消息未进行合理分类而限额。经优化app消息触达率达到95%左右。...⑥解决Push消息连续点击重复跳转问题 当用户快速、连续点击一条通知,会触发 app 中指定回调方法对通知点击事件多次响应。

6.1K50
领券