我有一个使用 Titanium Studio 编写的 iOS 应用程序,通过 Urban Airship 使用推送通知、徽章和声音。在我上次更新后,升级的人在通知中心遇到问题。起初我的应用程序仍然出现在通知中心,但通常出现在应用程序名称下的“徽章、声音、横幅”已经消失。如果您进入通知中心的应用程序设置,则根本不存在更改这些内容的选项。当然,推送通知此时也不起作用。
现在,如果您重新启动手机或重新安装应用程序,通知中心的程序条目将完全消失。我发现在重新安装应用程序并重新启动手机足够多次后,通知中心中的条目将重新出现,并且推送将再次起作用。要求我们所有的用户都这样做当然是一件荒谬的事情。
即使这一切都在发生,我仍然会从手机收到正确的 APID,并且推送消息声称可以正确发送。手机只是不显示它们。
在一个全新的安装中,我已经尝试过一切都很好。
我完全不知道该去哪里。有什么建议么?
编辑1:这是代码的相关部分。我只从以前的版本中更改了一行,并且记录了从以前的版本中更改的唯一且唯一的代码行。
var Urbanairship = require("com.0x82.urbanairship");
Urbanairship.options = {
APP_STORE_OR_AD_HOC_BUILD: true,
DEVELOPMENT_APP_KEY: "xxx",
DEVELOPMENT_APP_SECRET: "xxx",
PRODUCTION_APP_KEY: "yyy",
PRODUCTION_APP_SECRET: "yyy",
LOGGING_ENABLED: true,
LOG_LEVEL: 5
};
Ti.Network.registerForPushNotifications({
types: [
Ti.Network.NOTIFICATION_TYPE_BADGE,
Ti.Network.NOTIFICATION_TYPE_ALERT,
Ti.Network.NOTIFICATION_TYPE_SOUND
],
success: function(e){
var token = e.deviceToken;
Urbanairship.autoBadge = true;
Urbanairship.pushEnabled = true; //Added this line, only line to change
Urbanairship.registerDevice(token);
userData.pushID = token; //save pushid
Ti.App.Properties.setString('userData', JSON.stringify(userData));
},
error: function(e){
alert("The Push Servers appears to be down. Please restart the app and try again");
if(DEBUG == true){Ti.API.debug("Apple Push Error: "+e.error)}
},
callback: function(e){
pushReceived(e.data.type);
}
})