我在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);
}
})
答案 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安装中删除现有的配置文件以确保安全,然后从门户网站修改并重新下载配置文件,并重新构建并重新提交该应用程序。