推送通知在iOS 10上无法正常工作

6

在安装了新的iOS 10更新后,推送通知不起作用,而相同的代码实现在iOS 9上有效。对于推送通知,iOS 10有什么新的变化吗?我无法弄清楚。另外,在功能设置下打开推送通知是否必要。


你尝试过找出为什么它不起作用吗?你是如何实现它的?你是否收到任何错误或警告? - Ketan Parmar
2
请查看此链接:https://dev59.com/JFkS5IYBdhLWcg3w25sM#39383027 - Anbu.Karthik
1
@Anbu.Karthik 我看过那篇帖子,在那种情况下,他收到了通知但是 didReceiveNotification 没有被调用,而在我的情况下,我根本没有收到通知。 - Sanchit Kumar Singh
1
我认为这不是沙盒或生产环境的问题,应用程序应该在AppDelegate中响应通知方法。 - vaibhav
1
可能是在iOS 10上处理用户通知的重复问题。 - Bhadresh Kathiriya
显示剩余2条评论
3个回答

10
需要对iOS 10和xCode 8 GM进行一些更改。您需要实现UserNotification.framework及其委托方法以使推送通知正常工作,并在功能中启用推送通知。
您需要导入新的UserNotification.framework。请按照此链接操作:iOS 10中的推送通知问题

1
感谢提供的链接,启用推送通知功能在能力范围内非常有帮助。之前在iOS 9及以下版本中,即使没有在能力范围内进行任何更改,也可以正常工作。虽然我不清楚为什么在iOS 10中需要这样做。 - Sanchit Kumar Singh
1
在未启用推送通知功能的情况下,我收到了来自苹果开发者账户的电子邮件: 缺少推送通知权限 - 您的应用程序似乎已注册Apple推送通知服务,但应用程序签名的权限不包括“aps-environment”权限。 因此,我解决了这个问题,并在功能中找到了它。 - Ashish Shah
1
好的,所以在能力中没有启用推送通知,推送就能正常工作?你在entitlements或者.plist中加了什么吗? - Sanchit Kumar Singh
如果我们在能力中启用推送通知,是否不需要在应用程序委托中注册iOS 10通知的额外代码,如答案中所述? - jayant rawat
1
@AshishShah 不需要实现 UserNotification,可以使用 UIUserNotificationSettings 实现。您只需启用推送通知的功能,这将在您的项目中生成一个 .entitlement 文件。 - Rajan Maheshwari

2

Xcode 7不需要启用推送通知功能,但Xcode 8现在要求必须启用。在Xcode 8中启用推送通知功能会带来以下更改:

project.pbxproj

com.apple.Push = {
    enabled = 1;
};

*.entitlements(用于开发)

<key>aps-environment</key>
<string>*development*</string>

*.entitlements(适用于企业和生产)


<key>aps-environment</key>
<string>*production*</string>

除了com.apple.Push = {enabled = 1;};之外,项目文件project.pbxproj中还有其他必需的行用于远程通知吗? 谢谢 :D @Jen C - Skander Fathallah

1

iOS 10需要添加推送通知权限,因此如果您“修复问题”,问题将自动解决。

问题


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接