我不知道标题是否正确,但是..
我有一个使用PushNotification 插件和 UrbanAirship 的带有推送通知的 cordova 1.9 应用程序。一切正常。
现在,当我从通知中启动/恢复我的应用程序时,我想打开我的应用程序的特定页面。
这可能使用 Javascript 吗?阅读objective-c时我完全迷失了。
我不知道标题是否正确,但是..
我有一个使用PushNotification 插件和 UrbanAirship 的带有推送通知的 cordova 1.9 应用程序。一切正常。
现在,当我从通知中启动/恢复我的应用程序时,我想打开我的应用程序的特定页面。
这可能使用 Javascript 吗?阅读objective-c时我完全迷失了。
通知导致难以理解 JSON 结构。
它不是:
if(notifications.length > 0){
但:
if(notifications.notifications.length > 0){
数组打开:notifications.notifications[]
结构。
我不确定您是如何尝试加载页面的,但最简单的方法是调用 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);
}
}
});
}
几天前我在你的位置。我认为破解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
}