本地/推送通知和启动应用程序

Posted

技术标签:

【中文标题】本地/推送通知和启动应用程序【英文标题】:Local/Push-Notification and launch app 【发布时间】:2014-01-09 06:45:42 【问题描述】:

我在以下场景中遇到了问题。

1) 应用在后台。

2) 推送通知。

3) 根据推送通知的文本启动应用程序。(对于启动应用程序,我使用自定义 URL 方案)

Eq.我在 A.ipa 中注册了推送通知,并希望通过 pushnotification 启动 B.ipa

是否可以从 Local/Push-Notification(iOS7) 启动应用程序?

有没有其他方法可以与后台应用程序通信并启动其他应用程序?

谢谢,

【问题讨论】:

【参考方案1】:

使用 URLSchemes 从您的应用 (A) 启动另一个应用 (B)。但是 B 应用程序应该使用 URL Schemes 注册。

您可以搜索 URL Schemes 并浏览可用的教程。

【讨论】:

是的,B 已注册 URL Schemes。它在 A.ipa 处于前台时成功启动。但我想知道,推送通知是否可以午餐 B.ipaA.ipa 处于前台模式? 当我的应用程序在后台时,以下 API 是否工作?(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"HelloTest ://aaTest.com.HelloTest"]]; // 我从未尝试过,但我认为此链接包含有关您的问题的一些信息:nshipster.com/launch-options【参考方案2】:

是的,可以从本地/推送通知启动应用程序。实际上,这是默认行为。

iOS7 之前,通知都是“冗长的”,这意味着向用户显示一个警报视图,允许他在需要时启动应用程序,或者关闭通知,离开应用程序不知道。 iOS7 引入了静默推送通知,无需用户交互即可启动应用程序。

【讨论】:

感谢您的回复, 当Socket通信建立并且app在后台时,我能实现同样的事情吗? 我已经尝试使用本地通知,它无法从后台启动新的 B.ipa。确保推送通知在后台启动 B.ipa。 通过本机通知,应用程序可以通过其协议专门针对第二个应用程序的 URL 启动另一个应用程序。关于您自己的套接字:您了解存在于您自己的应用程序中,并在您的应用程序死亡时死亡:当您的应用程序未启动时,它们不会收到任何数据。 我强烈推荐你阅读objc.io/issue-5/multitasking.html - 这是一篇关于ios多任务处理的***文章。您将严格了解系统提供的 API,原因是:iOS 将允许您通过这些 API独家管理自己的生命周期。

以上是关于本地/推送通知和启动应用程序的主要内容,如果未能解决你的问题,请参考以下文章

如何在android中显示本地推送通知(在主屏幕上的应用程序图标上,如i-phone)

本地化应用程序的 Android GCM 推送通知

推送通知参数本地化

推送通知 vs 本地通知 vs 电话 vs 请勿打扰

如何在前台接收推送通知时显示颤振本地通知?

iOS(本地通知与远程通知)