直接在推送 iOS 上启动 App
Posted
技术标签:
【中文标题】直接在推送 iOS 上启动 App【英文标题】:Launch App directly on push iOS 【发布时间】:2016-01-06 09:48:16 【问题描述】:我可以在收到推送时启动应用程序,而不点击推送通知吗?
此类行为的示例:当应用处于后台时,显示 voip 应用的来电屏幕。
据我所知,APN 推送通知是不可能的,但在 ios 8 中,Apple 引入了带有 Voip 推送类型的 PushKit 框架,据我所知,我可以使用它们实现我想要的行为。
【问题讨论】:
不,你不能。没有这样的功能。 我没有读过关于 PushKit 的文章,但从用户的角度来看,如果一个应用程序可以像这样启动自己,而没有用户交互。我真的希望你的问题没有答案。 @NicolasMiari 我可以在 android 和所有 Android VoIP 应用程序上都有这样的行为,我认为当你有 voip 来电时看到通话屏幕很舒服(就像你在常规通话中看到通话屏幕一样) . 【参考方案1】:不,这是完全不允许的,也不太可能是 Apple 推出的一项功能。
【讨论】:
请解释一下link >使用 PushKit 接收 VoIP 推送有很多优点: >与标准推送通知不同,用户必须先响应 >您的应用可以执行操作,VoIP 推送直接进入您的应用程序进行 > 处理。 >即使您的应用在后台运行,也会为您的应用提供运行时间来处理推送。 这仅适用于 VoIP 应用程序,不适用于其他应用程序。【参考方案2】:您只能接收用户从通知中心点击或选择的通知的有效负载。
但是有一种方法,你可以使用它来处理你的每一个推送通知。将值为 1 的 key content-available 添加到您的 aps 字典中。
它看起来像,
"aps" :
"alert" :
"title" : "Game Request",
"body" : "Bob wants to play poker",
,
"badge" : 5
"content-available" : 1
如果 iOS 系统检测到此键值为 1 的 pushNotification,它将调用您的 appDelegate 的 application:didReceiveRemoteNotification:fetchCompletionHandler:
。
【讨论】:
你回答的最后一行它将调用你的appDelegate的application:didReceiveRemoteNotification:fetchCompletionHandler:
这是否意味着我可以启动我的应用程序?
应用程序将在后台启动并调用上述方法
如果我想让我的应用在前台打开,即手机屏幕?有什么技巧吗?
否 接收推送时不能在前台打开应用,因为推送只是用来通知用户
似乎开发人员是 iOS 的奴隶。范围之外什么都做不了..哈哈哈【参考方案3】:
不,它很可能永远不会成为功能。 即使你(假设)从技术上介绍它,苹果现在也会屏蔽你的应用。
Pushkit 仅用于接收 VoIP 呼叫(显然需要在那里)。就是这样。为了 通用应用程序,它不存在。
【讨论】:
以上是关于直接在推送 iOS 上启动 App的主要内容,如果未能解决你的问题,请参考以下文章
更新远程推送通知上的 UIMutableUserNotificationAction 按钮标题
iOS开发 首次启动显示用户引导,第二次启动直接进入App,UIScrollView,UIPageControl,NSUserDefaults