如果应用程序已在运行,我们如何处理推送通知?我想在应用程序运行时显示警报(而不是推送通知警报).仅在应用程序未运行时,才显示推送通知警报.
此外,如果我向APN发送有效负载,如何使用取消按钮创建警报?
使用推送通知服务是否有任何费用?
我知道它需要使用我自己的服务器发送通知,但信号通过Apple服务器传递.没有服务器转让费?
我有一个快速的问题.我一直在测试我的iPhone应用程序的开发推送通知证书,并且它一直正常工作.我只想知道在将应用程序提交到AppStore之前是否可以测试生产证书?我尝试过,但是当我使用生产证书时,消息不会出现.当我使用生产证书时,Apple是否要求应用程序在AppStore中?
谢谢.
我意识到有一个问题是允许多个服务器使用相同的SSL证书将推送通知发送到同一个应用程序,但我的问题是不同的.
假设单个iOS应用程序的开发人员希望允许多个提供程序向其应用程序发送推送通知,但希望控制哪些提供程序有权将APN发送到他的应用程序(并且能够从任何一个提取者撤消该权限)他们).
如果所有提供商都拥有相同的证书,为了阻止其中一个提供者发送APN,他必须全部阻止它们(通过撤销推送SSL证书,并获得一个新证书).是否有可能从同一个应用程序的Apple多个推送SSL证书?
这样就可以为每个提供商分配一个唯一的证书,这将允许阻止单个提供商而不会阻止其他提供商.
在Apple Provisioning Portal上,似乎没有可能为同一个应用程序和相同的环境(开发/生产)创建多个Push SSL证书,但我想确定是否无法完成.
ssl-certificate push-notification apple-push-notifications ios
根据Apple指南:
"作为呈现通知的结果,用户点击警报的操作按钮或点击(或点击)应用程序图标.如果点击操作按钮(在运行iOS的设备上),系统启动应用程序和应用程序调用其委托的应用程序:didFinishLaunchingWithOptions:方法(如果已实现);它传递通知有效负载(用于远程通知)或本地通知对象(用于本地通知).
如果在运行iOS的设备上轻触应用程序图标,则应用程序会调用相同的方法,但不会提供有关通知的信息.如果在运行Mac OS X的计算机上单击应用程序图标,则应用程序将调用委托的applicationDidFinishLaunching:方法,其中委托可以获取远程通知有效负载.
我的问题是假设用户从提供商那里得到3-4个推送通知,所有这些都存储在苹果的通知中心.如果用户点击了通知提醒,他/她可以轻松地在应用中获取通知数据.但是,如果用户点击iPhone上的应用程序图标,如何获取所有先前通知的所有数据.
提前致谢!
我正在开发一个PHP网站+ iPhone应用程序和iPhone应用程序的API,有学生和医生的消息系统,当任何人发送消息(来自网站或iPhone)时,其他用户应该在他的iphone上获得推送通知.例如,如果学生为教师添加新问题,将向教师发送教师iPhone/iPad的推送通知,当教师回复学生的答案时,学生将收到推送通知.
由于教师和学生注册网站的数量没有限制,我的问题是如何向注册用户的iPhone发送推送消息?我想在有人回复或添加问题时立即发送推送消息.请提供PHP代码以发送多个推送消息.我在注册时为每个用户保存设备令牌.
当老师回复问题我发送邮件给学生时,我也想向学生发送推送通知,反之亦然,所以请指定能够管理错误条件的代码.
我有一个应用程序,涉及定期向〜1M用户发送Apple推送通知.这样做的设置已经构建并测试了少量通知.由于我无法测试那种规模的发送,我有兴趣知道发送批量推送通知是否有任何问题.我有用Python编写的脚本,它打开与推送服务器的单一连接,并通过该连接发送所有通知.Apple建议尽可能长时间保持打开状态.但我也看到连接终止,你需要重新建立它.
总而言之,令人不安的是,成功的发送不被确认,只有错误的发送被标记.从程序员的角度来看,而不是简单地检查一件事"如果(成功)",你现在需要注意许多可能出错的事情.
我的问题是:您需要注意哪些典型的错误,以确保您的消息不会默默地消失?连接关闭很简单.还有其他人吗?
我正在研究为iPhone构建实时聊天应用程序(但这个问题同样适用于Android和其他设备)基本上我希望应用程序在打开时以及关闭时接收实时消息,就像iPhone一样拥有"消息"应用程序.
当它关闭时,我可以使用本地推送通知服务,如APNS,当应用程序打开时,我可以运行自己的websockets服务器或使用第三方提供程序,如PubNub或Pusher,这是我一直在做的事情.
然后我想知道:为什么我不能完全依赖APNS进行实时消息传递,同时应用程序处于打开状态且关闭时?这感觉就像一个更清洁的解决方案,因为它是由一个推送服务器驱动的.有人可以开导我吗?谢谢.
我不知道为什么,但是没有显示Xcode中的功能推送通知选项.为什么?
我按照开发人员指南,创建cers,启用提供配置文件等.
我在Xcode首选项中刷新了帐户.我做错了什么?

我正在尝试将GCM用于IOS和Android客户端.当应用程序位于前台时,它似乎与IOS一起正常工作,但是,当应用程序在后台时,通知中心不会收到消息而didReceiveRemoteNotification with completionHandler不会被调用.
我发现一个问题是从GCM到APNS的格式错误的消息.也就是说,它看起来如何:
[message: New message, collapse_key: do_not_collapse, from: **************]虽然,IOS推送通知应该
aps在通知中有关键,对吗?以及内容可用设置为1.例如:
{"aps":{"content-available":1},"data-id":345}
顺便说一句,在前台应用程序中接收消息,问题仅在于背景.关于我应该如何解决问题,使GCM同时适用于ios和android的任何建议?
更新:这就是我在网上发现的:
关于实际通信,只要应用程序在iOS设备上处于后台,GCM就使用APNS发送消息,该应用程序的行为与使用Apple的通知系统类似.但是当应用程序处于活动状态时,GCM会直接与应用程序通信
所以我在前台模式下收到的消息:
[消息:新消息,collapse_key:do_not_collapse,来自:**************]
来自GCM的直接消息(APNS根本没有参与此事).所以问题是:APNS是否重新格式化GCM发送给它的内容以遵守ios通知格式?如果是这样,我怎么知道APNS实际上做了什么,是否它以不同的格式向我发送通知?有没有办法查看来自APNS的传入数据的日志?
更新: 好的,我设法更改了消息的结构,现在在前台模式下,我收到以下消息:
收到通知:["aps":{"alert":"Simple message","content-available":1},collapse_key:do_not_collapse,from:**************]
现在看起来格式很好,但是当应用程序在后台时仍然没有反应.didReceiveRemoteNotifification completionHandler没有被调用!我应该寻找什么,问题出在哪里?方括号是推送通知的问题吗?更准确地说,ios不会从收到的通知中发布任何警报/徽章/横幅.
push-notification apple-push-notifications ios google-cloud-messaging