我有一个cordova应用程序(codo(3.4.0)在iOS上运行,很快也在Android上运行。推送通知已实现并正常工作。我在检测应用程序何时通过推送通知启动并重定向应用程序时遇到麻烦到右边页面。
注意:这与在应用程序在后台运行时从推送通知启动应用程序无关。只有当应用程序完全关闭时才会出现!
我现在有以下工作流程:
定期启动:
来自推送通知的冷启动应用
正如您所看到的冷启动应用程序启动方案进入启动视图,这是不必要的,并导致用户等待第一个视图加载,只是再次重定向。
问题是当设备准备好时,我的javascript代码还没有意识到即将推出的推送通知,所以我正在寻找解决此问题的方法。
有没有办法可以将额外的参数传递给deviceready cordova事件?或者是否有人有另一个想法或解决方案来解决这个问题?
答案 0 :(得分:2)
我想你可以解决方法:
var coldstart = true;
// Update flag if app coldstart
document.addEventListener("pause", function() {
coldstart = false;
}, false);
答案 1 :(得分:1)
我最终设法解决了这个问题。似乎在启动期间,在以下方法中,launchOptions参数指示应用程序是否是从推送通知启动的。
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{
...
}
在上面的方法中,我为我的应用程序设置了启动URL,如果应用程序是从推送通知启动的,则提供额外的url参数。所以我现在有以下场景解决了我的问题:
希望它有所帮助。