相关疑难解决方法(0)

APNS(Apple推送通知服务)的可靠性

我们的应用程序使用APNS接收推送通知.但是,我们的客户声称他们的一些设备没有收到通知,并认为他们"必须"确保通知100%交付.但我已经在某处读过APNS不是100%可靠的,并且应该存在通知未交付的情况.

我目前对如何确保随时收到APNS感到恐慌.我已阅读的情况下,这可能APNS未送达(设备可能离线).但我们的测试表明即使设备在线(Wifi或3G),有时APNS也没有交付.

是否有任何特定案例可能无法提供APNS?或者我们(开发人员)可以使用代码来确保接收所有通知吗?我在代码中所做的只是将应用程序注册到远程通知并写入didRegisterForRemoteNotificationsWithDeviceToken,然后将设备令牌丢弃到我们的服务器.

任何帮助将不胜感激,因为如果他们的所有设备都没有收到APNS,我们的客户几乎会杀了我们!

push-notification apple-push-notifications ios

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

PHP:向ios发送推送通知

我正在从php向ios发送推送通知.它工作正常,这是我的代码:

$passphrase = '';
$badge = 1;
$path = base_path('path/to/certificate.pem');
$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', $path);
stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);
$fp = stream_socket_client(
    'ssl://gateway.sandbox.push.apple.com:2195', $err,
    $errstr, 60, STREAM_CLIENT_CONNECT | STREAM_CLIENT_PERSISTENT, $ctx
);

if (!$fp) {
    self::SavePush($device_token, $message, $device_id, $device_type, $user_id, "pending", "normal", null);
}

//echo 'Connected to APNS' . PHP_EOL;
$body['aps'] = array(
    'alert' => $message,
    'badge' => $badge,
    'sound' => 'default'
);
$payload = json_encode($body);
$msg = chr(0) . pack('n', 32) . pack('H*', $device_token) . pack('n', strlen($payload)) . …
Run Code Online (Sandbox Code Playgroud)

php push-notification ios

8
推荐指数
1
解决办法
1115
查看次数

任何知道苹果应用程序是否获得推送通知的选项?

我构建了获取推送通知的xcode应用程序,主要问题是推送通知对我来说非常关键.所以我想检查推送通知是否已经安装了应用程序的设备,我明白,如果iPhone没有互联网连接/ 3G推送通知没有到达设备.

如何检查设备是否收到通知?如何检查APNS是否成功发送推送通知?

如果推送通知没有发送到设备,我想发送短信,所以我想到通过推送通知打开通知事件的想法,并发送请求到我的服务器,以便我可以知道推送通知是否是成功交付与否.主要问题是用户每次收到通知都需要打开应用程序,而在夜晚则出现问题.所以这个选项对我不好.

我查看了反馈服务器推送通知,但是如果推送通知未送达,我找不到任何可以获得的信息

任何的想法??

iphone xcode objective-c apple-push-notifications

7
推荐指数
2
解决办法
6681
查看次数

重试URLSession dataTask的模式?

我是iOS/Swift开发的新手,我正在开发一个向REST API提出多个请求的应用程序.以下是检索"消息"的其中一个调用的示例:

func getMessages() {

    let endpoint = "/api/outgoingMessages"

    let parameters: [String: Any] = [
        "limit" : 100,
        "sortOrder" : "ASC"
    ]

    guard let url = createURLWithComponents(endpoint: endpoint, parameters: parameters) else {
        print("Failed to create URL!")
        return
    }

    do {
        var request = try URLRequest(url: url, method: .get)

        let task = URLSession.shared.dataTask(with: request as URLRequest) { (data, response, error) in

            if let error = error {
                print("Request failed with error: \(error)")
                // TODO: retry failed request
            } else if let …
Run Code Online (Sandbox Code Playgroud)

ios nsurlsession swift nsurlsessiondatatask retry-logic

7
推荐指数
2
解决办法
4324
查看次数

检测在未启动应用程序且用户未通过它们打开应用程序时是否收到推送通知

是否有可能检测应用程序处于脱机状态时(不是在后台还是前台)是否收到了推送通知?如果用户直接从弹簧板上而不是从推送通知警报中打开应用程序,则是否可以检测到。

iphone objective-c ios swift

6
推荐指数
1
解决办法
4274
查看次数

使用APNS发送远程推送通知的发送报告 - IOS

我正在使用APNS发送远程推送通知.要求是将通知发送给应用程序用户(即使用户没有点击通知或甚至看不到通知),根据通知ID i向Web服务器发送送达回执(即调用Web服务)接收.

APNS没有提供交付报告.他们是APNS的反馈服务,但也不提供交付报告.

所以我想知道获得远程推送通知的交付报告的可能方法是什么.如果我能够在APP deligate或其他任何其他远程推送通知到达时执行自定义方法,即使APP在后台或由用户终止,那么它将解决我的问题.

任何帮助将受到高度赞赏.

下面是我目前使用的代码,当应用程序处于后台时,它无法正常工作.

我写了一个自定义方法

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
Run Code Online (Sandbox Code Playgroud)

向服务器发送确认收到通知的确认.当应用程序在前台时,所有功能都完美地执行.但是当应用程序处于后台时会出现问题.写的自定义方法

 -(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
Run Code Online (Sandbox Code Playgroud)

直到用户通过点击通知栏打开应用程序才执行,如果用户通过点击应用程序图标而不是通知栏打开应用程序,则不会执行.

iphone objective-c push-notification apple-push-notifications ios

0
推荐指数
1
解决办法
2061
查看次数