2013-10-12 2 views
0

Я использую API Pusher для уведомления, но его для работы для меня. У меня есть combobox на моем веб-сайте, который развернут на azure в этом поле со списком трех статусов, отображающих ожидающий полный запрос времени ожидания, когда пользователь изменит статус в поле со списком, поэтому запрос ajax будет отправлен в json-файл, в котором я добавил привязку канала и события.pusher api уведомление не работает над эмулятором android, а также браузером

Я также получать Сообщ на эмуляторе

10-12 12:13:15.544: D/CordovaLog(1257): file:///android_asset/www/index.html: Line 28 : Pusher : State changed : unavailable -> connected 
10-12 12:13:15.544: I/Web Console(1257): Pusher : State changed : unavailable -> connected at file:///android_asset/www/index.html:28 
10-12 12:13:15.553: D/CordovaLog(1257): file:///android_asset/www/index.html: Line 28 : Pusher : Event sent : {"event":"pusher:subscribe","data":{"channel":"dispatcher_channel"}} 
10-12 12:13:15.553: I/Web Console(1257): Pusher : Event sent : {"event":"pusher:subscribe","data":{"channel":"dispatcher_channel"}} at file:///android_asset/www/index.html:28 
10-12 12:13:17.613: D/CordovaLog(1257): file:///android_asset/www/index.html: Line 28 : Pusher : Event recd : {"event":"pusher_internal:subscription_succeeded","data":{},"channel":"dispatcher_channel"} 
10-12 12:13:17.613: I/Web Console(1257): Pusher : Event recd : {"event":"pusher_internal:subscription_succeeded","data":{},"channel":"dispatcher_channel"} at file:///android_asset/www/index.html:28 
10-12 12:13:17.623: D/CordovaLog(1257): file:///android_asset/www/index.html: Line 28 : Pusher : No callbacks on dispatcher_channel for pusher:subscription_succeeded 
10-12 12:13:17.623: I/Web Console(1257): Pusher : No callbacks on dispatcher_channel for pusher:subscription_succeeded at file:///android_asset/www/index.html:28 

json.php это на лазурном

function updateRequestStatus($params) 
    { 
     global $api; 

     $params = json_decode($params, true); 

     $requestStatus = PageHelper::sanitizeInput($params['requestStatus'], FILTER_SANITIZE_STRING); 
     $requestID = PageHelper::sanitizeInput($params['requestID'], FILTER_SANITIZE_NUMBER_INT); 

     if(strtolower($requestStatus) == "completed") 
     { 
      $message = "User Response Has been Sent "; 
      $pusher = new Pusher(APP_KEY, APP_SECRET, APP_ID); 
      $data = array('message' => $message); 
      $pusher->trigger('dispatcher_channel', 'dispatcher_Response', $data); 
     } 

     return $api->updateRequestStatus($requestStatus, $requestID); 
    } 

и index.html, который я использую на андроида.

<!DOCTYPE HTML> 
<html> 
<head> 
<title></title> 

<meta name="viewport" content="width=device-width,initial-scale=1"/> 

<!-- JavaScript --> 


<script src="http://js.pusher.com/2.1/pusher.min.js" type="text/javascript"></script> 
<script src="js/cordova.js" type="text/javascript"></script> 

<script type="text/javascript"> 
    // Enable pusher logging - don't include this in production 
    Pusher.log = function(message) { 
     if (window.console && window.console.log) { 
     window.console.log(message); 
     } 
    }; 

    var pusher = new Pusher('APP_KEY'); 
    var channel = pusher.subscribe('dispatcher_channel'); 
    channel.bind('notification', function(data) { 
    setTimeout('getNotification()', 1000); 
    channel.bind('dispatcher_Response', function(data) {}); 
    }); 
    function getNotification() 
    { 
     navigator.notification.alert("status changed", function() {}); 
    } 
    </script> 

</head> 
</body> 
</html> 

ответ

0

Журналы показывают, что вы подключены и подписаны на dispatcher_channel канал.

Что показывает консоль отладки Pusher при запуске json.php? См.: http://pusher.com/docs/debugging#pusher_debug_console

Отображается ли сообщение от json.php, достигающего Pusher?

Если нет, то вы должны посмотреть на отладку кода PHP. См.: https://github.com/pusher/pusher-php-server#debugging

Как и выше, функциональность клиентской стороны работает должным образом.

+0

проблема решена есть проблема в php-коде. – Wajihurrehman

+0

может сказать мне, почему уведомление не всплывает, beacuse я проверил в журнале кодов Android-эмулятора его показывая мне, что msg, который приходит, но не появляется на эмуляторе – Wajihurrehman

+0

В вашем коде выше ('channel.bind ('dispatcher_Response', function (data) {}); '), вы ничего не делаете с данными события. – leggetter