标签: apple-push-notifications

Apple推送通知折叠关键等效

使用Google推送通知时,我可以指定collapse_key值,这样设备就不会收到同一个collapse_key的多个通知.APNS是否具有类似的功能,或者是否有人知道模拟此功能的方法?

collapse apple-push-notifications ios

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

APNS错误响应包中不同状态码的含义

使用增强通知格式时,APNS在错误响应数据包中返回以下状态代码.

0   - No errors encountered
1   - Processing error
2   - Missing device token
3   - Missing topic
4   - Missing payload
5   - Invalid token size
6   - Invalid topic size
7   - Invalid payload size
8   - Invalid token
255 - None (unknown)

我想知道这些状态代码中的哪一个实际上表明该问题实际上与设备令牌有关(即:我可以将我数据库中的特定设备令牌标记为无效或无效).我确信当我收到值为8的状态代码时,我可以安全地执行此操作.此外,我非常确定状态代码2,4,5和7是什么,以及它们何时返回.

但对于其余的状态代码,我几乎处于黑暗中.Apple的网站也没有太多关于它们的信息.

任何人都可以详细了解每个状态代码.提前谢谢了.

push-notification apple-push-notifications ios

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

如何在iptables CentOS 6中打开端口2195以激活APNS

我试过这个解决方案:

iptables -I OUTPUT -p tcp --dport 2195 -j ACCEPT
/etc/init.d/iptables stop
/etc/init.d/iptables start
Run Code Online (Sandbox Code Playgroud)

但仍无法访问该端口.

如果我需要为APNS打开更多端口,请告诉我.

linux centos5 centos iptables apple-push-notifications

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

使用未声明的类型UNAuthorizationOptions

我正在尝试使用Firebase来处理推送通知.我安装了Firebasepod('Firebase/Core'和'FirebaseMessaging'pods).

在我将Firebase导入项目之后

import Firebase
Run Code Online (Sandbox Code Playgroud)

我已经像这样配置了Firebase应用程序(代码是从官方文档中复制的):

  func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?)
-> Bool {FIRApp.configure() }
Run Code Online (Sandbox Code Playgroud)

之后,我尝试使用此代码(代码从官方文档复制):

if #available(iOS 10.0, *) {
            let authOptions : UNAuthorizationOptions = [.alert, .badge, .sound]
            UNUserNotificationCenter.current().requestAuthorization(
                options: authOptions,
                completionHandler: {_,_ in })

            // For iOS 10 display notification (sent via APNS)
            UNUserNotificationCenter.current().delegate = self
            // For iOS 10 data message (sent via FCM)
            FIRMessaging.messaging().remoteMessageDelegate = self

        } else {
            let settings: UIUserNotificationSettings =
                UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: nil)
            application.registerUserNotificationSettings(settings)
        }

        application.registerForRemoteNotifications()
Run Code Online (Sandbox Code Playgroud)

但是我从标题中得到了错误: …

apple-push-notifications ios firebase swift firebase-cloud-messaging

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

Flutter Push 通知未显示在 IOS 上

我在推送通知方面遇到 Flutter 和 IOS 问题。

我的设置和有效的东西:

1)我安装了firebase_messaging: ^5.1.6没有错误的软件包/按照他们的所有IOS说明进行操作

2) 我已在 IOS 上征得用户许可并接受接收推送通知

3) 我能够在 IOS 和 Android 设备上获得 FCM 令牌

4)我在苹果开发者部分创建了一个密钥,并将密钥添加到 FCM

5)我在测试时关闭了应用程序/将其发送到后台 - 仍然没有运气

6) 我已经使用 Xcode 将 google-service-info 文件添加到 Runner

7) 我在 XCode 功能中添加了推送通知和后台通知

8) 我正在 iPhone 7 物理设备和物理 iPad 上进行测试

我使用 curl 向 IOS 设备发送通知

curl -X POST --header "Authorization: key=<myAuthKEY>" \
    --Header "Content-Type: application/json" \
    https://fcm.googleapis.com/fcm/send \
    -d "{\"to\":\"<myDeviceKey>\",\"notification\":{\"body\":\"Hello\"},\"priority\":10}"

Run Code Online (Sandbox Code Playgroud)

我收到了来自 firebase 的成功响应

{"multicast_id":<SomeIdHere>,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"<SomeIdHere>"}]}
Run Code Online (Sandbox Code Playgroud)

这是我检索令牌的方法:

firebaseMessaging.getToken().then((String token) {
      _authModel.setNotificationToken(token);
    });
Run Code Online (Sandbox Code Playgroud)

当我在 IOS 上运行该应用程序时,我没有收到任何 Firebase 错误。 …

apple-push-notifications dart flutter

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

当应用程序处于后台时,未在 iOS 13.3 中调用 didReceiveRemoteNotification

我在敲我的头。我正在实施推送通知。一切正常(收到推送,更新徽章),但在 iOS 13.3 下,应用程序在后台时不会调用方法 application(_:didReceiveRemoteNotification:fetchCompletionHandler:) 。如果应用程序在前台或使用 iOS 12 设备,则调用该方法。我通过以下方式注册推送通知:

[[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:(UNAuthorizationOptionBadge | UNAuthorizationOptionSound | UNAuthorizationOptionAlert) completionHandler:^(BOOL granted, NSError * _Nullable error) {
    if (granted) {
        dispatch_async(dispatch_get_main_queue(), ^{
            [[UIApplication sharedApplication] registerForRemoteNotifications];
        });
    }
}];
Run Code Online (Sandbox Code Playgroud)

有效载荷设置为以下

{"aps": {
    "badge": 10,
    "alert": "test",
    "content-available": 1
}}
Run Code Online (Sandbox Code Playgroud)

我尝试在所有变体中添加“远程通知”和“后台处理”作为应用程序功能(仅“远程通知”/“后台处理”,没有任何这些功能,启用两者)而没有任何更改。我为 UNUserNotificationCenter 设置了委托,但同样没有成功。我相应地设置了标题:

curl -v \
 -H 'apns-priority: 4' \
 -H 'apns-topic: xx.xxxxx.xxxx' \
 -H 'apns-push-type: alert' \
 -H 'Content-Type: application/json; charset=utf-8' \
 -d '{"aps": {"badge": 10,"alert": "test", "content-available":1}}' \
 --http2 \
 --cert pushcert.pem \
 https://api.sandbox.push.apple.com/3/device/1234567890 …
Run Code Online (Sandbox Code Playgroud)

objective-c apple-push-notifications ios silent-notification ios13

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

Apple推送通知:发送大量消息

我使用PHP连接到apns以向多个设备发送一些通知,尽管问题更具概念性,因此它不必特定于PHP.

我将同时发送大约7000个设备(并且正在增长).我的进程每天运行ONCE并广播到所有设备,因此我不会不断重新打开连接.

目前,我可以轻松地一次发送到2个设备,并且消息将成功传送.但是,当我尝试发送到完整的7000个设备时,消息似乎无法提供.

我的代码的伪逻辑是:

open connection to apple
loop over device-tokens
    write to socket connection per device
end loop
close connection to apple.
Run Code Online (Sandbox Code Playgroud)

我已经看到某个地方我应该只执行一个SINGLE写入,并构造一个巨大的主体,换句话说,伪代码看起来像:

loop over device tokens
    create payload aggregating all devices
end loop
open connection to apple
write to socket ONCE with whole payload for 7000 devices
close connection
Run Code Online (Sandbox Code Playgroud)

这很难测试,因为我显然无法通过测试消息向我的7000个生产用户发送垃圾邮件.有没有其他人有类似的问题?

谢谢

php iphone notifications push apple-push-notifications

18
推荐指数
1
解决办法
1万
查看次数

推送通知服务器

我需要为至少APNS,GCM实现服务器端推送通知服务.任何可信赖的开源项目,适合生产环境,我可以开始?

push-notification apple-push-notifications google-cloud-messaging

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

在Python中格式化APNS样式的JSON消息以与Amazon SNS一起使用

我正在创建一个iOS应用程序,而对于我们的推送通知,我们正在使用亚马逊的简单通知服务(SNS).

SNS很精彩,但文档很少.我正在使用亚马逊的Python库boto,我已经找到了如何发送纯文本推送通知:

device_arn = 'MY ENDPOINT ARN GOES HERE'
plain_text_message = 'a plaintext message'
sns.publish(message=plain_text_message,target_arn=device_arn)
Run Code Online (Sandbox Code Playgroud)

但是,文档中不清楚的是如何创建Apple推送通知服务(APNS)消息.我需要发送声音和徽章以及推送通知,但无法弄清楚如何格式化消息的JSON.

到目前为止,这是我最好的猜测:

message = {'default':'default message', 'message':{'APNS_SANDBOX':{'aps':{'alert':'inner message','sound':'mySound.caf'}}}}
messageJSON = json.dumps(message,ensure_ascii=False)
sns.publish(message=messageJSON,target_arn=device_arn,message_structure='json')
Run Code Online (Sandbox Code Playgroud)

但是,当我运行此代码时,我在通知上看到的只是"默认消息" - 这意味着Amazon SNS拒绝了我的消息格式,default而是显示了该消息.

如何正确格式化此JSON?

python json amazon-web-services apple-push-notifications amazon-sns

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

如果在iOS 8.0及更高版本中不支持registerForRemoteNotificationTypes:,则为iOS构建

如果设备注册通知的方式发生了重大变化,我们无法使用registerForRemoteNotificationTypes:如果我们不能使用Xcode 6 beta,我们如何构建新版本的应用程序以支持iOS 8?我们是否必须构建并提交Xcode 6 GM版本发布的日期,以便我们的用户继续获得推送通知?

xcode apple-push-notifications ios xcode6 ios8

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