开发环境:
iOS 9.3.2(iPh6ne 6+)......但它适用于iOS 8.x
Phonegap 6.2.7
Phonegap-plugin-push v1.7.2
PHP7(服务器端) - contentpush - ref
我的情况:
令牌已自动发送到我的服务器
消息已成功发送至ssl://gateway.push.apple.com 2195
设备中没有收到任何警报("")
push.on(' notification',function(data){ 的console.log(data.message); 警报("&#34); alert(data.title +"消息:" + data.message); });
答案 0 :(得分:10)
如果您在连接到网络时未看到Apple推送通知,请与网络管理员联系,确保可以访问相关的TCP端口。
要使用Apple推送通知服务(APN),您的Mac和iOS客户端需要与Apple服务器的直接和持久连接。
iOS设备首先尝试使用移动数据连接到APN。如果设备无法通过蜂窝连接连接到Apple的服务器,则会尝试使用Wi-Fi进行连接。
如果您使用防火墙后面的Wi-Fi或蜂窝数据的专用接入点名称(APN),您需要与这些端口上的APN服务器建立直接,未经代理的连接:
TCP port 5223: For communicating with Apple Push Notification services (APNs)
TCP port 2195: For sending notifications to APNs
TCP port 2196: For the APNs feedback service
TCP port 443: For a fallback on Wi-Fi only, when devices can't reach APNs on port 5223
APNs服务器使用负载平衡,因此您的设备不会始终连接到相同的公共IP地址以进行通知。最好允许访问分配给Apple的整个17.0.0.0/8地址块上的这些端口。
APN代表Apple推送通知服务。 APN代表接入点名称,即蜂窝数据网络和互联网之间的网关。
check this link for same explanation
并检查How do I troubleshoot issues with Push Notifications on iOS?
答案 1 :(得分:3)
总而言之。我现在发现了问题。我想分享我开发apns应用程序的经验。
服务器侧
确保
正确创建您的pem文件(生产)
正确输入您的passphase
在您的应用上传到App Store之前,网址应为ssl://gateway.sandbox.push.apple.com 2195。 (这是我的问题)
应用侧
确保您已在Xcode中启用推送通知按钮和背景通知
在Xcode7中启用bitcode应为“No”。