Questions tagged «push-notification»

推送通知是从远程服务器推送到移动设备的警报,徽章或声音。Apple通过Apple Push Notification Service(APNS)传递推送通知。Android设备通过Google Cloud Messaging(GCM)服务接收推送通知。过去,Android设备使用云到设备消息传递(C2DM)框架。Windows Phone应用程序通过MPNS或较新的WNS接收推送通知。

16
Android是否支持近实时推送通知?
我最近了解了iPhone应用程序能够接收几乎即时的应用程序 通知的功能。 它以推送通知的形式提供,这是一个定制协议,可始终保持与iPhone的数据连接,并向应用程序发送二进制数据包消息,从服务器应用程序发送到电话应用程序后0.5-5秒之间,它会迅速以惊人的速度弹出警报响应时间。这是作为数据而不是SMS发送的,以非常小的数据包形式发送,这些数据包是数据计划的一部分,而不是传入消息。 我想知道,如果使用Android,是否有类似的功能,或者是否有可能使用Android API来实现与此类似的功能。为了澄清起见,我将类似定义为: 不是短信,而是一些数据驱动的解决方案 尽可能实时 具有可扩展性,即作为移动应用程序的服务器部分,我可以在几秒钟内通知数千个应用程序实例 我很欣赏该应用程序可能是基于请求的HTTP请求/响应样式,但理想情况下,我不想为了检查通知而进行大量轮询;除此之外,这就像滴水沥干数据计划一样。


7
如果用户强行退出,iOS会在后台启动我的应用程序吗?
我通过content-available在推送通知中使用该标志来触发后台获取。我有fetch和remote-notification UIBackgroundModes启用。 这是我在AppDelegate.m中使用的实现: - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler { NSLog(@"Remote Notification Recieved"); UILocalNotification *notification = [[UILocalNotification alloc] init]; notification.alertBody = @"Looks like i got a notification - fetch thingy"; [application presentLocalNotificationNow:notification]; completionHandler(UIBackgroundFetchResultNewData); } 当应用在后台运行时,它可以正常运行。(收到通知,应用程序触发了“看起来好像我收到了通知”本地通知,如上面的代码所示)。 但是,当应用程序未运行且收到带有该content-available标志的推送通知时,该应用程序将不会启动,并且didRecieveRemoteNotification永远不会调用委托方法。 WWDC视频多任务处理的新功能(WWDC 2013的#204)显示了以下内容: 它说收到带有content-available标志的推送通知时,应用程序“启动到后台” 。 为什么我的应用程序没有启动到后台? 因此,真正的问题是: 用户强制退出应用后,iOS会执行后台任务吗?


18
在前台iOS中获取App时的推送通知
我在我的应用程序中使用了推送通知服务。当应用程序在后台运行时,我可以在通知屏幕上看到通知(当我们从iOS设备顶部向下滑动时显示的屏幕)。但是如果应用程序位于前台,则委托方法 - (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo 正在被呼叫,但通知未显示在通知屏幕中。 我想在通知屏幕上显示通知,而不管应用程序是在后台还是在前台。寻找解决方案让我很累。任何帮助是极大的赞赏。

14
重置应用的推送通知设置
我正在开发带有推送通知的应用程序。为了检查用户交互的所有可能方式,我想在用户第一次启动时拒绝为我的应用启用推送通知时测试我的应用。 registerForRemoteNotificationTypes但是,对话框(由发起)在每个应用中仅出现一次。如何重置应用程序的iPhone OS内存。删除应用程序并重新安装没有帮助。

26
通过推送通知检测应用程序是否已启动/打开
是否可以通过推送通知了解应用程序是否已启动/打开? 我想启动事件可以在这里找到: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { if (launchOptions != nil) { // Launched from push notification NSDictionary *notification = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]; } } 但是,当应用程序在后台运行时,如何从推送通知中检测到它已打开?

14
静音推送未传递到iOS 11上的应用程序
我注意到在iOS 11 beta 2上,application:didReceiveRemoteNotification:fetchCompletionHandler无论应用程序的状态(背景/前景)如何,静默通知都不会传递到。 我实现了该UIApplicationDelegete方法,application:didReceiveRemoteNotification:fetchCompletionHandler并发送以下静默推送 { "aps": { "content-available": 1 }, "mydata": { "foo": "bar" } } 但在iOS 11上未调用委托方法。 它在其他版本的iOS上也能正常工作,而文档部分“ 配置静默通知”中并未提及需要执行其他任何操作。 这是iOS 11中的错误,还是我错过了iOS 11中的新功能? 请注意,我并不是在谈论或使用该UserNotification框架,而该框架不需要发送静默推送。 这是一个说明问题的示例项目(您必须设置自己的bundle id) 当您午餐示例项目并将上述有效负载发送到应用程序时,您可以使用macOS控制台查看推送是否正确传递到设备,而不是正确传递给应用程序。 更新10.08 看来该行为是随机的。有时在重新启动设备后,有效负载会正确交付,但一段时间后它将停止工作。 如下面的屏幕快照所示,标记为1的推送仅发送给设备,推送2(在设备重启后)也传递给应用程序。 更新14.08-iOS 11 Beta 6 仍然是相同的行为。以下是应该起作用但不起作用的另一件事。当应用程序的方案设置为“等待启动可执行文件”时,应该以静默方式唤醒应用程序并在后台启动它。 更新21.08-iOS 11 Beta 7 仍然是相同的行为,并且错误报告中没有来自Apple的更新。 更新29.08-iOS 11 Beta 8 还是一样的问题。现在使用的重现步骤如下: 在Xcode项目方案中,选择“等待可执行文件启动” 在中添加断点 didReceiveRemoteNotification: fetchCompletionHandler …

23
如何修复Xcode 4.3中的“找不到适用于应用程序的有效'aps-environment'授权字符串”?
我一直在非常努力地创建一个可以接收推送通知的简单iOS应用程序。我这样做的唯一理由是为其他团队成员建立了使用程序,并且无法在网络上的其他地方找到此类指令的最新工作版本。对于iOS开发人员来说,我们的商店还很陌生,我个人对iOS开发人员和Xcode完全没有经验。我偶然发现了来自苹果公司和其他地方的数十篇教程,文章和故障发布,我觉得我可能快要出现了…… 这是我必须要做的(请注意,我使用的是Xcode 4.3,最初尝试仅部署到iOS 5.1,我发现相对于早期版本的Xcode,最近发生了一些变化,但是我还是新手。这-并且发现它完全令人困惑和困惑): 1)我在iPhone上启用了推送功能的配置文件 2)在我的测试Xcode项目中,我已选择了配置文件作为签名身份(在Build Settings> Code Signing中) 3)我已在“摘要和信息”>“自定义iOS目标属性”下正确设置了我的捆绑包标识符*(我认为??) 4)我在我的代表的didFinishLaunchingWithOptions中调用了registerForRemoteNotificationTypes 5)我的委托中有didRegisterForRemoteNotificationsWithDeviceToken和didFailToRegisterForRemoteNotificationsWithError,分别设置为记录设备令牌或错误 6)我在摘要下选中了启用权利。 7)在所选的权利文件的正下方,是Tinker6(我的测试项目的名称),该文件是在我选中“启用权利”时自动生成的 8)在Tinker6.entitlements文件中,我得到了以下内容(基于网络上的许多不同帖子,我收集的内容是正确的,但我无法从Apple本身找到任何确定的信息): 更新 9)另外,我尝试了没有授权文件的整个过程,并且得到了基本上相同的结果。 10)我的mobileprovision文件内容正确包含权利(我已经打乱了数字和域名,但结构上相同): <key>application-identifier</key> <string>12355456A7.com.whatever.tinker</string> <key>aps-environment</key> <string>development</string> <key>get-task-allow</key> <true/> <key>keychain-access-groups</key> <array> <string>12355456A7.*</string> </array> /结束更新 当我尝试在设备上运行此代码时,在Xcode输出中出现以下错误: 2012-06-11 12:45:23.762 Tinker6[13332:707] Failed to get token, error: Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment' entitlement string found for application" UserInfo=0x24a3b0 …


6
通过推送通知启动时调试应用
我目前正在开发一个接收推送通知的应用程序。我通过PHP页面使所有这些工作都100%进行。我的应用程序可以接收几种不同类型的推送通知。PHP会处理此问题,并将不同的信息包发送到我的应用程序,这些信息包都可以正常接收。 但是,当用户“查看”通知并启动我的应用程序时,我显然希望采取与用户手动启动应用程序不同的操作-最重要的是,根据推送通知类型采取不同的操作。从结构上讲,我的工作正常。 我的一种推送类型应该打开一个UIView,该UIView与多个不同的服务器建立多个连接并来回协商数据。例如,从主菜单触发时,此UIView可以正常工作-但是,当我的推送通知触发此UIView出现时,套接字连接无法按预期方式工作。 现在我的问题不是关于套接字的,而是更多-您如何调试这样的问题?据我所知(相对较新),当应用程序从推送通知启动时,无法将执行链接到调试器/控制台/等...我在尝试使用以下代码进行调试时遇到了非常困难的时间UIAlertViews,因为各种服务器之间有许多来回的通讯线路。 您对我的任何建议将不胜感激。

10
带有新Firebase Cloud Messaging系统的通知图标
昨天,Google在Google I / O上展示了基于新Firebase的新通知系统。我使用Github上的示例尝试了这个新的FCM(Firebase Cloud Messaging)。 尽管我已声明特定的可绘制对象,但通知的图标始终是ic_launcher 为什么呢 下面是用于处理邮件的官方代码 public class AppFirebaseMessagingService extends FirebaseMessagingService { /** * Called when message is received. * * @param remoteMessage Object representing the message received from Firebase Cloud Messaging. */ // [START receive_message] @Override public void onMessageReceived(RemoteMessage remoteMessage) { // If the application is …

4
续签推送证书并保持当前的App Store应用正常运行
我在应用商店上有一个应用,该应用使用的是iOS供应配置文件(分发版)已过期。此配置文件包含的推送证书也已过期(并且不再出现在门户中)。 问题1:是否可以重新创建推送证书,然后更新配置文件?(我的钥匙串上仍然有推送证书(过期))? 问题2:我是否需要使用包含新的Push证书的新配置文件将应用重新提交到应用商店? 由于推送证书已过期,因此我可能无法将通知发送给该应用程序的现有用户。

19
在AppDelegate.m中获取屏幕上当前显示的UIViewController
UIViewController屏幕上的当前电流需要通过设置一些徽标视图来响应来自APN的推送通知。但是我怎么能获得UIViewControllerin方法application:didReceiveRemoteNotification:of AppDelegate.m? 我尝试使用self.window.rootViewController获取当前的显示UIViewController,它可能是一个UINavigationViewController或其他某种类型的视图控制器。而且我发现的visibleViewController属性UINavigationViewController可用于UIViewController在屏幕上显示。但是如果不是,该UINavigationViewController怎么办? 任何帮助表示赞赏!相关代码如下。 AppDelegate.m ... - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { //I would like to find out which view controller is on the screen here. UIViewController *vc = [(UINavigationViewController *)self.window.rootViewController visibleViewController]; [vc performSelector:@selector(handleThePushNotification:) withObject:userInfo]; } ... ViewControllerA.m - (void)handleThePushNotification:(NSDictionary *)userInfo{ //set some badge view here }

11
在Xcode 8 / Swift 3.0中注册推送通知?
我正在尝试让我的应用程序在Xcode 8.0中运行,并且遇到错误。我知道这段代码在swift的早期版本中可以正常工作,但是我假设在新版本中对此代码进行了更改。这是我要运行的代码: let settings = UIUserNotificationSettings(forTypes: [.Sound, .Alert, .Badge], categories: nil) UIApplication.sharedApplication().registerUserNotificationSettings(settings) UIApplication.shared().registerForRemoteNotifications() 我收到的错误是“参数标签'(forTypes :, Categories :)'与任何可用的重载都不匹配” 我可以尝试使用其他命令来使其正常工作吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.