phonegap 中的后台通知
Posted
技术标签:
【中文标题】phonegap 中的后台通知【英文标题】:background notification in phonegap 【发布时间】:2012-07-26 00:53:26 【问题描述】:我正在使用 Phonegap for ios 构建一个简单的闹钟,并且我已经在后台和前台触发了通知。 (所有都在 Drew Dahlman 和本教程 http://www.drewdahlman.com/meusLabs/?p=84 的帮助下)。
phonegap 插件提供了在触发 localNotification 时运行后台和前台功能的能力。
我的问题是,如果应用程序在后台,我似乎只会得到一个默认的“关闭/查看”对话框,而不是我正在设置的通知对话框。 我希望让后台通知让用户能够“起床”或“打盹”,但当然,这对于默认的“关闭/查看”通知是不可能的。
我弄错了吗?还有其他方法吗?
我设置本地通知的代码很简单
plugins.localNotification.add( date: set_alarm, 消息:“背景”, 徽章:1, 编号:12, 声音:'Alarm_01.caf', 背景:'MyApp.Alarm.notification_background', 前景:'MyApp.Alarm.notification_foreground' );前台通知工作正常,这只是我正在努力处理的后台通知。
【问题讨论】:
在进行了一些研究和挖掘之后——看起来这可能是一个不错的补充——在通知中添加自定义按钮...developer.apple.com/library/ios/#documentation/… 看起来你可以自定义按钮。我将继续挖掘,如果你想接受它并这样做 - 请分叉 git repo,我将使其正式成为插件的一部分。 谢谢德鲁。我从来没有做过Objective C,有点超出我的专业领域。我之前查看了该文档,并认为它说您可以在这些按钮上创建标题和操作,但现在我查看 UI Guildines (developer.apple.com/library/ios/#documentation/UserExperience/…),它说您只能更改操作按钮的文本。不想让你对此大发雷霆,我不确定这是否可能。你怎么看? 【参考方案1】:在您的应用程序 delegate.m 文件中,您需要在应用程序进入后台时激活警报或本地通知:
- (void)applicationDidEnterBackground:(UIApplication *)application
或
- (void)applicationWillResignActive:(UIApplication *)application
(取决于您的需要)可以在此处找到更多文档:
http://developer.apple.com/library/ios/#documentation/uikit/reference/UIApplicationDelegate_Protocol/Reference/Reference.html
我的怀疑是你只配置了应用程序在–application:didFinishLaunchingWithOptions:
和-application:didReceiveLocalNotification:
之后触发警报
这是默认设置。
还有很多其他选择:
监控应用状态变化
应用程序:willFinishLaunchingWithOptions: 应用程序:didFinishLaunchingWithOptions: applicationDidBecomeActive: applicationWillResignActive: applicationDidEnterBackground: applicationWillEnterForeground: applicationWillTerminate: applicationDidFinishLaunching:管理应用状态恢复
应用程序:shouldSaveApplicationState: 应用程序:shouldRestoreApplicationState: application:viewControllerWithRestorationIdentifierPath:coder: 应用程序:willEncodeRestorableStateWithCoder: 应用程序:didDecodeRestorableStateWithCoder:为故事板提供一个窗口 窗口属性 管理默认界面方向
应用程序:supportedInterfaceOrientationsForWindow:打开一个 URL 资源
application:openURL:sourceApplication:annotation: 应用程序:handleOpenURL:管理状态栏更改
应用程序:willChangeStatusBarOrientation:持续时间: 应用程序:didChangeStatusBarOrientation: 应用程序:willChangeStatusBarFrame: 应用程序:didChangeStatusBarFrame:响应系统通知
applicationDidReceiveMemoryWarning: applicationSignificantTimeChange:处理远程通知
应用程序:didReceiveRemoteNotification: 应用程序:didRegisterForRemoteNotificationsWithDeviceToken: 应用程序:didFailToRegisterForRemoteNotificationsWithError:响应内容保护更改
applicationProtectedDataWillBecomeUnavailable: applicationProtectedDataDidBecomeAvailable:【讨论】:
以上是关于phonegap 中的后台通知的主要内容,如果未能解决你的问题,请参考以下文章
当应用程序在Phonegap(cordova)的后台状态下收到推送通知时增加徽章编号,
如何在后台应用程序时从 JavaScript 发出通知/警报 - PhoneGap iPhone/iOS