2017-08-10 131 views
1

我使用this发送推送通知LaraveliOS应用程序。它对64个字符长度的令牌工作正常,但它会用长度为54个字符的令牌抛出此错误。适配器Apns不支持xxxxxxxxxxxxxxxxxxxxxxx令牌的设备

我送用下面的代码推送:

$payload = PushNotification::Message($message, array(
         'badge' => 1, 
         'sound' => 'default', 
        )); 

        PushNotification::app('appNameIOS') 
         ->to($device_token) 
         ->send($payload); 

我想抓住这样的例外:

catch (Exception $ex){ 
//do something 
} 

而且这样的:

catch (PushException $ex) { 
//do something 
} 

但并没有发现异常并且引发这个错误:

Adapter Apns does not support xxxxxxxxxxxxxxxxxxxxxxx token's device

如何在发送推送前验证令牌?

+0

看到这个曾经https://github.com/davibennun/laravel-push-notification/issues/96 –

+0

尝试检查设备令牌是有效的发送通知之前... –

+0

是的,我已经看到了这这个硬编码检查令牌的长度是64,这是不正确的,因为长度可以变化。看看这个:https://stackoverflow.com/questions/12452448/size-of-iphone-device-token – Saani

回答

0

在发送通知之前检查它是否是有效的标记。

if(ctype_xdigit($device_token) && 64 == strlen($device_token)){ 
     $msgPush = 'There are new actity'; 
     $payload = PushNotification::Message($message, array(
        'badge' => 1, 
        'sound' => 'default', 
       )); 

       PushNotification::app('appNameIOS') 
        ->to($device_token) 
        ->send($payload); 
} 
+0

这个硬编码检查令牌的长度为64,这是不正确的,因为长度可以变化。看看这个:https://stackoverflow.com/questions/12452448/size-of-iphone-device-token – Saani

+0

检查设备标记是否格式不正确。 –