更新后iOS应用程序从通知中心消失

时间:2013-03-27 22:25:00

标签: ios push-notification titanium apple-push-notifications

我在Titanium Studio中使用推送通知,徽章和声音通过Urban Airship编写了一个iOS应用程序。在我上次更新后,升级的人员在通知中心遇到问题。起初我的应用程序仍然出现在通知中心,但通常出现在应用程序名称下的“徽章,声音,横幅”已经消失。如果您进入通知中心的应用程序设置,那么更改这些内容的选项就不存在了。当然,Push Notifications也不起作用。

现在,如果您重新启动手机或重新安装应用程序,通知中心中的程序条目将完全消失。我发现重新安装应用程序并重新启动手机足够多次后,通知中心的条目将重新出现,推送将再次运行。要求所有用户这样做当然是一件荒谬的事。

即使发生这一切,我仍然会从手机上收到适当的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);
  }
})

1 个答案:

答案 0 :(得分:0)

如果通知设置已消失,则不太可能是代码问题。代码只能请求通知,它不能完全改变设置。

您的更新可能是使用较旧的配置文件构建的,该配置文件未启用推送功能。在配置文件中找不到“aps-environment”标志,当应用程序尝试注册时,它将在xcode控制台中显示此错误: https://support.urbanairship.com/customer/portal/articles/60710-can-t-get-a-device-token-%22no-valid-aps-environment-entitlement-%22-seen-in-console

如果出现此问题,您可以从xcode安装中删除现有的配置文件以确保安全,然后从门户网站修改并重新下载配置文件,并重新构建并重新提交该应用程序。