laravel-push-notification 在响应正文中返回 html 标记

Posted

技术标签:

【中文标题】laravel-push-notification 在响应正文中返回 html 标记【英文标题】:laravel-push-notification return html tag in response body 【发布时间】:2016-04-15 17:25:30 【问题描述】:

我正在使用davibennun/laravel-push-notification 发送通知。 当我调用通知方法并从我的 api 返回 $push->getFeedback(); 时,我在响应正文中收到 <html></html> 标签,并且在我的设备上没有收到任何通知。 这是我的api方法:

public function sendnotif(Request $request)

    $push = PushNotification::app('appNameios')
                    ->to($request['deviceToken'])
                    ->send('Hello World, i`m a push message');
    return $push->getFeedback();

在离子 app.js 文件中:

    $rootScope.$on('$cordovaPush:notificationReceived', function(event, notification) 
    if(ionic.Platform.isIOS())
      console.log('ios');
      if (notification.alert) 
        navigator.notification.alert(notification.alert);
      
      if (notification.sound) 
        var snd = new Media(event.sound);
        snd.play();
      
      if (notification.badge) 
        $cordovaPush.setBadgeNumber(notification.badge).then(function(result) 
          console.log('badgeResult');
          console.log(result);
        , function(err) 
          console.log('badgeResult');
          console.log(err);
        );
      
    
    else if(ionic.Platform.isandroid())
      console.log('android');
      switch(notification.event) 
        case 'registered':
          if (notification.regid.length > 0 ) 
            alert('registration ID = ' + notification.regid);
          
          break;
        case 'message':
          // this is the actual push notification. its format depends on the data model from the push server
          alert('message = ' + notification.message + ' msgCount = ' + notification.msgcnt);
          break;
        case 'error':
          alert('GCM error = ' + notification.msg);
          break;
        default:
          alert('An unknown GCM event has occurred');
          break;
      
    
    else
      console.log('can not detect device');
    
  );

【问题讨论】:

【参考方案1】:

经过几个小时的搜索,我终于找到了解决方案。 现在在我的api 中,我使用以下代码行返回getAdapter()->getResponse() 的通知结果:

    foreach ($push->pushManager as $push) 
        $response = $push->getAdapter()->getResponse();
    
    return var_dump($response);

此代码返回无效的设备令牌数组,因此如果您的结果数组为空,则表示已发送所有通知。 另外,在我的 ionic 应用程序上,我遇到了一些 js 错误。修复它们后,我在设备上成功收到通知。

【讨论】:

以上是关于laravel-push-notification 在响应正文中返回 html 标记的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 推送通知和消息传递

Laravel 推送通知桌面(chrome 或 firefox)

ios通知无法在laravel中设置私钥文件

带有队列的laravel中的android和ios推送通知