标签: apple-push-notifications

如何使用Erlang发送推送通知?

我正在尝试使用Erlang向APN发送推送通知.这是我到目前为止提出的代码:

-module(apnstest2).
-export([connect/0]).

connect() ->
    application:start(ssl),
    ssl:seed("someseedstring"),
    Address = "gateway.sandbox.push.apple.com",
    Port = 2195,
    Cert = "/path/to/Certificate.pem",
    Key = "/path/to/Key.unenc.pem",
    Options = [{certfile, Cert}, {keyfile, Key}, {mode, binary}],
    Timeout = 1000,
    {ok, Socket} = ssl:connect(Address, Port, Options, Timeout),

    Token = "195ec05a962b24954693c0b638b6216579a0d1d74b3e1c6f534c6f8fd0d50d03",
    Payload = "{\"aps\":{\"alert\":\"Just testing.\",\"sound\":\"chime\", \"badge\":10}}",
    TokenLength = length(Token),
    PayloadLength = length(Payload),

    Packet = [<<0:8, TokenLength, Token, PayloadLength, Payload>>],

    ssl:send(Socket, list_to_binary(Packet)),
    ssl:close(Socket).
Run Code Online (Sandbox Code Playgroud)

代码没有利用Erlang的并发性,但只是一个原型.我只想测试是否可以以最简单的方式发送推送.

我认为问题在于发送到APN的数据包.这是推送通知的二进制格式:

alt text http://developer.apple.com/IPhone/library/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Art/aps_provider_binary.jpg

我应该如何在Erlang中创建这样的数据包?有人可以看看我的代码并告诉我问题出在哪里?
我还使用Erlang的SSL应用程序来创建连接并发送数据,我不知道这是问题还是数据包.
谢谢!

binary erlang push apple-push-notifications

20
推荐指数
1
解决办法
4026
查看次数

在PhoneGap for iOS上接收推送通知

大家好,我想通过我的PhoneGap容器收到Apple推送通知.现在有人如果已经实施了吗?

非常感谢

iphone push push-notification apple-push-notifications cordova

20
推荐指数
2
解决办法
3万
查看次数

如何使用Amazon Simple Notification Service(SNS)发送批量的推送通知

像许多公司一样,我工作的那个公司不习惯使用Apple的APNS:没有官方图书馆,随机截断的流等等...... Android的推送系统也是如此:限于小批量,完全不同于Apple的APNS ...这就是为什么我们正在寻找替代方案,当亚马逊声称能够几乎免费发送数百万推送通知时,我们认为SNS将是完美的解决方案.

问题是我们经常有超过一百万台设备需要解决,显然我们的推送活动很少针对相同的设备.就我们挖掘而言,唯一的解决方案是使用AWS API,它只提供一种方法来一次创建一个端点!这对我们来说是一件大事,因为经过一些测试,我们认为为了创建1 000 000个端点,需要大约15小时(约17个呼叫/秒).

即使在创建了所有端点之后,为了立即发送所有推送,需要将端点添加到主题中,并且再次,这必须一次完成一个端点(因此再多15个小时).事件,如果我们多线程我们的电话让我们说30个线程,它仍然需要一个小时!

那么,有人能告诉我们是否有任何错过的东西吗?亚马逊是否真的希望我们在30小时内充斥他们的网络服务以创建一个推送活动?如果花费数小时准备,他们怎么能假装一秒钟发送一百万次?他们是否正在为SNS开发批处理API?是否可以插入包含令牌的Amazon DB来提供SNS主题?

performance push-notification amazon-web-services apple-push-notifications amazon-sns

20
推荐指数
1
解决办法
9804
查看次数

是否可以在Google App Engine应用程序中实施iPhone推送通知?

我正处于iPhone应用程序的规划阶段,由于其可扩展性功能,我正在考虑将Google App Engine用于我的服务器组件.

推送通知使用二进制接口发送到gateway.push.apple.com:2195.

但是,服务器的JRE只允许使用以下标准类,不包括Socket类.可以URLConnection用某种方式来做到这一点?

考虑到Google App Engine应用程序的限制,有没有办法实现推送通知?

如果可能的话,我想避免使用AppNotifyUrbanAirship等第三方服务.

iphone google-app-engine push-notification apple-push-notifications

19
推荐指数
2
解决办法
5547
查看次数

如何在不编写自己的应用程序的情况下向iOS发送推送通知?

我想向基于iOS的设备发送推送通知,但我不想编写自己的应用程序.根据我目前收集的内容,要使用Apple推送通知服务发送推送通知,我需要使用用于签署应用程序的SSL证书.

基本上,我正在寻找的是iOS相当于Notify My Android,这是一款安装在Android设备上的应用程序,它具有带简单HTTP API的Web服务,用于发送通知.

push-notification apple-push-notifications ios

19
推荐指数
3
解决办法
3万
查看次数

服务器推送通知实现

组,

我计划将我自己的服务器推送通知服务器实现到Android/IOS应用程序.因此,我的应用程序服务器(可以通过NodeJ实现)将联系该Notification Server以将消息推送到设备.所以我通过互联网浏览并找到了以下现有的解决方案.

谷歌云消息传递

Apple推送通知服务

Firefox os推送通知

Microsoft推送通知服务


Q1)
在各自的网站上; 他们只是告知如何使用他们的通知服务器.但是我需要有关他们如何实现服务器推送的信息.

请告诉我; 他们是否遵循以下任何一项?

轮询

长期民意调查

服务器已发送事件

与客户端的TLS,SSL或TCP套接字连接

XMPP


Q2)

以下两种方法声称虽然我的应用程序没有运行; 他们仍然可以向APP发送通知吗?怎么可能?

Apple推送通知服务

Firefox os推送通知


Q3)

在Firefox os推送通知; 他们已经告知他们正在避免保持活力以节省电池寿命.我的问题是没有keep-alive如何确定连接是否仍然存在?


Q4)

所有这些(GCM/APNS/FireFox OS)实现只是服务器端推送,并且不接受来自客户端的请求.我对么?
所以我的服务器仍然需要处理推送消息以外的数百万设备请求,对吗?
如果我在自己的通知服务器和客户端设备之间使用websocket,我是否需要在我的应用服务器和客户端之间再保持一个websocket连接以接收来自设备的请求?

android push-notification apple-push-notifications ios

19
推荐指数
2
解决办法
2万
查看次数

如何在PHP中发送HTTP/2 POST请求

在Ruby发送HTTP/2 POST请求时发现了一个类似的问题 但是我想用PHP更新我的服务器

此处描述了基于HTTP/2的新Apple推送通知API:https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/APNsProviderAPI.html

任何具有HTTP/2经验的人都可以帮助我在PHP中作为客户端发出请求.

php curl push-notification apple-push-notifications http2

19
推荐指数
2
解决办法
2万
查看次数

iOS 9:如何检测用户何时对推送通知请求说"不允许"?

在iOS 9中,是否有我可以阅读的系统级回调告诉我用户是否在推送通知请求上点击了"不允许"?

我通过自定义屏幕提示用户,告知他们推送通知及其在我的应用中的价值.

自定义Tripnary提示

他们有两个选择,是或否.如果他们选择是,我请求操作系统进行推送通知,他们会看到如下图所示的弹出窗口.

用于推送通知的iOS Level系统提示

现在,如果用户点击YES,则会有一个函数调用didRegisterForRemoteNotificationsWithDeviceToken,告诉我此设备已注册推送通知.我可以使用它来进入下一个屏幕(并在注册后将它们带入第一个屏幕)

但是,如何检测用户是否点击不允许?我需要知道,所以我可以相应地将用户移动到下一个屏幕(并在注册后将它们带入第一个屏幕).didFailToRegisterForRemoteNotificationsWithError如果用户点击"不允许",则不会调用该函数.

这个问题不重复,因为该问题的答案是针对iOS 7的,因为我的问题是具体的iOS 9.

objective-c apple-push-notifications ios

19
推荐指数
4
解决办法
2万
查看次数

未调用iOS10 UNNotificationServiceExtension

我正在实施新的iOS10扩展以使用丰富的通知.我试图在推送通知上测试它但不工作,我只是收到一个简单的通知,而不是通过扩展.

我做了官方网站和其他一些地方指定的所有内容:

  • 我的应用程序启动并运行推送通知和正确的配置文件
  • 我在我的应用程序中添加了一个新目标,即通知服务扩展
  • 实现了我自己的代码(真的没关系,因为甚至没有进入新类)
  • 此外,我必须为此扩展设置配置文件,我只使用带有通配符的配置文件,我没有看到任何文档指定扩展目标是否必须启用推送通知功能,在这种情况下我需要为此扩展一个特定的配置一,目前我只使用通配符,无论如何它匹配(它必须匹配)我在应用目标中使用的配置文件,并且仅为应用目标启用了推送通知功能.
  • 我添加了UNNotificationExtensionCategory和NSExtensionPointIdentifier.我也将该类别作为推送有效载荷的一部分从服务器发送.

正如我所说,我收到通知但从未通过扩展.我看到操作系统如何尝试加载扩展但随后抛出一个没有相关描述的错误来识别问题:

Dec 31 21:00:00 iPhone SpringBoard(libextension.dylib)[51] <Notice>: calling plugIn beginUsing:   
Dec 31 21:00:57 iPhone pkd[86] <Notice>: assigning plug-in com.test.app.NotificationWithAttachmentExtension(1.0) to plugin sandbox   
Dec 31 21:03:57 iPhone pkd[86] <Notice>: enabling pid=51 for plug-in com.test.app.NotificationWithAttachmentExtension(1.0) 38BB5FF1-2597-42E0-B950-169DBFA80573 /private/var/containers/Bundle/Application/A8C47706-C0EC-4FB1-ABA7-0118372F6900/testapp.app/PlugIns/NotificationWithAttachmentExtension.appex   
Dec 31 21:00:53 iPhone SpringBoard(PlugInKit)[51] <Notice>: plugin com.test.app.NotificationWithAttachmentExtension interrupted   
Dec 31 21:03:56 iPhone SpringBoard(PlugInKit)[51] <Notice>: Hub connection error Error Domain=NSCocoaErrorDomain Code=4097 "connection to service named com.test.app.NotificationWithAttachmentExtension" UserInfo={NSDebugDescription=connection to service named com.test.app.NotificationWithAttachmentExtension}   
Jun 29 13:33:36 iPhone SpringBoard(libextension.dylib)[51] <Notice>: PlugInKit …
Run Code Online (Sandbox Code Playgroud)

apple-push-notifications ios ios10

19
推荐指数
9
解决办法
2万
查看次数

IOS版本中的本地和推送通知兼容

我开发local NotificationsiOS 10.它工作得很好.但现在我应该如何编码local notifications,push notification如果用户正在使用iOS 9及以上版本.有人可以帮忙吗?

下面是代码 iOS 10

import UIKit
import UserNotifications

@available(iOS 10.0, *)
class ViewController: UIViewController,UNUserNotificationCenterDelegate {
    override func viewDidLoad() {
       super.viewDidLoad()

       if #available(iOS 10.0, *) {
        //Seeking permission of the user to display app notifications
        UNUserNotificationCenter.current().requestAuthorization(options: [.alert,.sound,.badge], completionHandler: {didAllow,Error in })
        UNUserNotificationCenter.current().delegate = self

       }
   }

   //To display notifications when app is running  inforeground
   func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> …
Run Code Online (Sandbox Code Playgroud)

apple-push-notifications ios uilocalnotification swift

19
推荐指数
2
解决办法
3万
查看次数