手机操作系统中显示的 Bluemix 推送通知在单击时不会启动应用程序

Posted

技术标签:

【中文标题】手机操作系统中显示的 Bluemix 推送通知在单击时不会启动应用程序【英文标题】:Bluemix push notification displayed in phone OS, when clicked, won't launch the app 【发布时间】:2016-01-11 15:37:38 【问题描述】:

我正在使用 Bluemix 推送通知开发一个应用程序。当应用程序处于前台或后台时,调用带有完成处理程序的 didReceiveRemoteNotification() 一切正常。

但是当应用程序没有启动时,通知是由另一台设备发送的。当您从顶部向下滑动时,手机确实会在系统通知中显示推送通知,但单击通知不会启动应用程序。它只是关闭通知。 androidios 也是如此。

如何通过点击通知启动应用程序?

感谢和最好的问候,

【问题讨论】:

【参考方案1】:

对于 iOS,您需要确保您也成功地将应用程序注册到 APNs 服务。完成此操作后,您将能够通过单击收到的推送通知来打开应用程序。

目标-c:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
     [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:categories]];
     [[UIApplication sharedApplication] registerForRemoteNotifications];
     
     else
     [[UIApplication sharedApplication] registerForRemoteNotificationTypes:
     (UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert)];
     

     return YES;

斯威夫特:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool 
let notificationTypes: UIUserNotificationType = UIUserNotificationType.Badge | UIUserNotificationType.Alert | UIUserNotificationType.Sound
let notificationSettings: UIUserNotificationSettings = UIUserNotificationSettings(forTypes: notificationTypes, categories: categories)

application.registerUserNotificationSettings(notificationSettings)
application.registerForRemoteNotifications()

您可以在此处查看有关推送注册的更多信息:

Enabling iOS applications to receive push notifications

我还建议查看我们的 Bluemix 推送示例:

BMS iOS helloPush Sample

【讨论】:

谢谢乔希,它成功了。快速代码不知何故无法编译。抱怨“|”操作员。所以我使用了以下代码: // 向通知中心注册应用 let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: nil) UIApplication.sharedApplication().registerUserNotificationSettings(settings) UIApplication.sharedApplication( ).registerForRemoteNotifications()【参考方案2】:

对于 Android,您必须确保在您的 AndroidManifest.xml 中包含以下内容,在您希望在单击通知后启动应用时启动的所需 Activity 中:

<!--Notification Intent -->
<intent-filter>  
   <action android:name="<Your_Android_Package_Name.IBMPushNotification"/>   
   <category  android:name="android.intent.category.DEFAULT"/>
</intent-filter>

别忘了用你的包名代替Your_Android_Package_Name

有关详细信息,请参阅helloPush 示例。

【讨论】:

谢谢戴夫,这解决了。

以上是关于手机操作系统中显示的 Bluemix 推送通知在单击时不会启动应用程序的主要内容,如果未能解决你的问题,请参考以下文章

IBM Bluemix 通过 PHP 代码推送通知

使用 Bluemix 推送通知服务的基于用户的通知

带有用户 ID 的 Bluemix 推送通知

使用 IBM Worklight 和 IBM Bluemix 推送通知

适用于 Android 的 Bluemix 推送通知未发送任何通知

Bluemix 推送通知服务不再工作?