3

我不知道标题是否正确,但是..

我有一个使用PushNotification 插件和 UrbanAirship 的带有推送通知的 cordova 1.9 应用程序。一切正常。

现在,当我从通知中启动/恢复我的应用程序时,我想打开我的应用程序的特定页面。

这可能使用 Javascript 吗?阅读objective-c时我完全迷失了。

4

3 回答 3

3

通知导致难以理解 JSON 结构。

它不是:

if(notifications.length > 0){

但:

if(notifications.notifications.length > 0){

数组打开:notifications.notifications[]结构。

于 2012-09-14T14:42:06.300 回答
0

我不确定您是如何尝试加载页面的,但最简单的方法是调用 javascript 中的待处理通知,然后用于window.location.href加载要求页面。

当我在应用程序启动时有待处理的通知时,我正在使用此过程执行某些任务:

function registerAirship() {
    console.log("ready to register for airship");
    window.plugins.pushNotification.registerDevice({alert:true, badge:true, sound:true},function(status) {
       if (status.deviceToken) {
           window.token = status.deviceToken;
           if (status) {
               registerUAPush(token, "https://go.urbanairship.com/", key, key1, function(){
                    window.plugins.pushNotification.getPendingNotifications(function(notifications) {
                        if(notifications.length > 0){
                            var note = notifications[0];
                            if(note.applicationLaunchNotification == "1"){
                                // use the note.aps and redirect to required page
                            }
                        }
                    });
               });
           } else {
             alert("Registration Error: " + status);
           }
       }
   });
}
于 2012-07-13T18:59:47.937 回答
0

几天前我在你的位置。我认为破解objective-c是最容易的。

所以。

1)我找到了处理我的推送通知(AppDelegate.m)的函数,并在objective-c启动执行以处理通知后调用了一个js函数。在那一行之后,我这样做了:

[viewController.webView stringByEvaluatingJavaScriptFromString:@"opensometab()"];

2) 在我的网络应用程序的根目录中,我将它添加到 pushnotification.js 文件中(你应该可以将它放在任何地方,但我想要它在这里)。** 我的 JS 功能是激活视口中的选项卡,因此您的可能会有所不同。

function opensometab(){
    var tabPanel = Ext.Viewport.down('tabpanelname');
    tabPanel.setActiveItem(3); //index number 3 
}
于 2012-07-13T20:08:44.060 回答