2

我有一个使用 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);
  }
})
4

1 回答 1

0

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

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

如果这是问题所在,为了安全起见,您可以从 xcode 安装中删除现有的配置文件,然后从门户修改并重新下载配置文件,然后重新构建并重新提交应用程序。

于 2013-03-29T20:30:54.957 回答