我的后端使用Node.js和Express.js,使用npmapn包处理APN,它使用Apple的新提供商身份验证token。iOS应用程序获得许可并将收到的32字节设备token发送到后端,编码为base64字符串。但是当尝试使用设备token(编码为ascii、utf8或base64)发送推送通知时,APN服务器返回-{"sent":[],"failed":[{"device":"....token....","status":"400","response":{"reason":"BadDeviceToken"}}]}发送到APN服务器的token格式应该是什么?
我为iOS和Android创建了一个应用程序,我使用APN获取iOS的deviceToken和Android的GCM。我决定迁移到firebase以简化token管理。我注意到一个仅适用于iOS应用程序的问题,我想知道是否其他人也遇到过它。当我将iOS应用程序迁移到firebase时,除非重新安装该应用程序,否则不会重新生成token。我关注firebaseguide去做但没有结果。其他人有这个问题吗?提前致谢 最佳答案 我解决了我的问题。我关闭和打开功能我重新启动了XCode我将FIRInstanceIDAPNSTokenType
我需要通过有效负载显示推送通知的动态操作。像这样:{Platform":"apns","Title":"BookingfromAPI","Content":"Hellothere","Category":"confirmBooking","Actions":[{"ButtonText":"Confirm","ActionName":"confirmBooking"},{"ButtonText":"Decline","ActionName":"declineBooking"},]}它的良好做法是什么?到目前为止可能吗?现在我对类别使用静态配置并且它工作正常:varconfirm_acti
对于我们的生产应用程序,推送通知运行良好且速度极快(这是沙盒APN服务器的已知问题吗?如果我们做错了什么,似乎它根本就不会起作用——但有些人确实进来了,这令人费解。我们不想在无法彻底测试通知并确保其正常运行的情况下将构建推向生产。有人对这个问题有什么看法吗? 最佳答案 您可以而且应该使用与生产APN服务器配合使用的临时构建来测试您的应用。这是测试应用程序(尤其是推送通知)是否已准备就绪的最佳方式。至于沙箱环境,也许用于沙箱测试的数据库包含一些生产设备token,从而导致失败。 关于ios
我相信我已经按照说明签署了我的mobileconfig文件,因此在获得用户许可的情况下,我可以正确设置他们的APN。但是,当使用此mobileconfig文件时,iOS屏幕仍继续显示“未验证”。然而,在“更多详细信息”下,它提供了一些令人鼓舞的信息——签名认证信息似乎都是正确的。即,我很接近-有什么想法吗?我已经尝试了基础-iOSmobileconfigwalkarounds和变体,包括不使用证书链。 最佳答案 如何在apple中签署和验证.mobileconfig文件从key链中导出证书keychainaccess-->Certi
我正在尝试使用nodejs实现推送通知服务器。我下载了node-apn库并尝试启动示例代码。当我运行示例代码文件时,出现错误“意外的语法标记”。所以我查看了发生语法错误的代码行。constEndpoint=require("./lib/protocol/endpoint")({tls,protocol,});这看起来很奇怪,但其他人都可以很好地使用node-apn库除了我。如果下面只包含一行代码,我会得到语法错误。要求(“apn”);有没有人遇到过这种情况?或者有人成功实现了这个node-apn库吗?任何帮助将不胜感激。提前致谢。 最佳答案
我正在使用Parse.com将客户端推送通知从一台iDevice发送到另一台iDevice。它适用于“开发”设置,即-在“开发”上设置的appID的推送通知设置-开发SSL证书-开发配置文件通过此设置,我成功地向自己发送了推送通知(发送者=接收者=我的设备)。现在我想测试两个不同设备之间的通信。为此,我使用了TestFlight(因为这是我通常向客户端发送更新的方式)。我按照所有建议的步骤从开发转移到临时:将AppID设置更新为“生产”推送通知创建了一个生产SSL证书,将其上传到ParseServer为AdHocDevelopment生成了一个新的ProvisioningProfile
除了使用推送通知触发应用程序定期运行某些代码(特别是:从服务器拉取新消息)之外,是否有Apple批准的良好替代方案?伪装成VoIP应用程序不是一个好的选择(不会被批准,参见iPhone:repeatingbackgroundtask)我不能使用位置更新,如果用户不四处走动,它应该可以工作在模拟器中,使用beginBackgroundTaskWithExpirationHandler和dispatch_async会给你10分钟的后台时间,我发现如果后台“自行重启”,backgroundTimeRemaining属性似乎总是重置为10分钟。这是代码。-(void)work{UIAppl
使用APN的应用程序似乎习惯于在应用程序启动时从操作系统获取token。但是,如果一个应用程序已经获取过一次,那么它是否需要再次获取它(如果已经这样做,则将其发送到服务器)是否有任何意义。从操作系统获取的APNtoken是否会发生变化? 最佳答案 您问题的答案在Apple文档(本地和推送通知编程指南)中:Byrequestingthedevicetokenandpassingittotheprovidereverytimeyourapplicationlaunches,youhelptoensurethattheproviderha
这里有类似的问题:jQueryMobile,PhonegapandDeviceToken-iOS场景是,我有这个基于PhoneGapWeb的应用程序,nativeiOS帮助我在APN上注册了设备,并且我在服务器数据库中收到了设备token。问题1:如何使用PhoneGap将注册用户(通过UIWebView)关联到此设备token?我现在的想法是编写自定义插件并在用户注册期间传递设备token。有没有更好的选择?问题2:由于device_token可能会不时更改,我应该如何将此用户重新链接到此device_token?也许每当用户登录时,我都会执行window.plugins.Plugi