本地/推送通知和启动应用程序
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.ipa 而 A.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独家管理自己的生命周期。以上是关于本地/推送通知和启动应用程序的主要内容,如果未能解决你的问题,请参考以下文章