2014-12-07 1 views
1

저는 Firefox OS 용 간단한 API API에 대해 배우고 있습니다. 이를 통해 알림을받을 때 폐쇄 된 앱을 시작할 수 있음을 이해합니다. this 문서 다음에 끝점을 등록하고 알림을받을 수있는 작동중인 앱을 만들 수 있었지만 앱이 열려있는 경우에만 작동합니다. 나는 앱을 닫고 새 엔드 포인트를 등록하지 않고 다시 열 수 있으며 이전 엔드 포인트로 보낸 알림은 계속 작동합니다. 하지만 앱이 닫히면 아무 일도 일어나지 않습니다.간단한 푸시 알림을 사용하여 앱을 깨우는 방법?

Firefox OS 1.4를 실행하는 휴대 전화에서 테스트하고 있습니다. 당신은 푸시을 처리하기 위해 푸시 메시지 처리기를 추가 할 필요가

index.html을

<!DOCTYPE html> 
<html> 
    <head> 
     <meta name="viewport" content="width=device-width, user-scalable=no"> 
     <meta charset="UTF-8"> 
     <script> 
      navigator.mozSetMessageHandler('push', function(message) { 
       document.getElementById('log').innerHTML = new Date(); 
      }); 
      navigator.mozSetMessageHandler('push-register', function(e) { 
       register(); 
      }); 
      function register() { 
       var endpoint; 
       var request = navigator.push.register(); 
       request.onsuccess = function(e) { 
        endpoint = e.target.result; 
        document.getElementById('log').innerHTML = endpoint; 
        var xmlhttp=new XMLHttpRequest(); 
        xmlhttp.open("GET",'http://192.168.1.6:8080/Servlet/endpoint?asd=' + encodeURIComponent(endpoint),true); //This sends the endpoint to my computer so I can ping it with curl. 
        xmlhttp.send(); 
       } 
      } 
     </script> 
    </head> 
    <body> 
     <h1>Push</h1> 
     <button type="button" onclick="register();">REGISTER</button> 
     <br> 
     <span id="log"></span> 
    </body> 
</html> 

manifest.webapp

{ 
    "name": "Push", 
    "description": "push notifications.", 
    "launch_path": "/index.html", 
    "version": "1.0", 
    "developer": { 
     "name": "Lufte", 
     "url": "https://github.com/lufte" 
    }, 
    "permissions": { 
     "push": {"description": "To receive notifications about the newest phone releases"} 
    }, 
    "messages": [ 
     {"push": "/index.html"}, 
     {"push-register": "/index.html"} 
    ] 
} 
+0

사용하고있는 전화를 참조하십시오? 푸시가 발생할 때 전화가 유휴 상태입니까? 나는 당신이이 버그를 겪고 있는지 궁금해. https://bugzilla.mozilla.org/show_bug.cgi?id=1080752 –

+0

나는 알카텔 OTF를 사용하고있다. 버그 (기본적으로 푸시 알림은 내가 가지고있는 문제에도 불구하고 쓸모 없게 만든다. 그렇다)를 보았다. 그러나 내 경우에는 전화가 유휴 상태가 아니다. 응용 프로그램을 종료하고 즉시 컴퓨터에서 말린 상태로 알림을 보내면 아무 일도 일어나지 않습니다. – lufte

답변

0

:

내가 지금 가지고있는 코드입니다 메시지. 이

if (window.navigator.mozSetMessageHandler) { 
    window.navigator.mozSetMessageHandler('push', function(e) { 
     console.log('My endpoint is ' + e.pushEndpoint); 
     console.log('My new version is ' + e.version); 
     //Remember that you can handle here if you have more than 
    }); 
} else { 
    // No message handler 
} 

처럼 자세한 내용은 this section

해피 코딩

+0

그게 바로 내 코드에서하고있는 일입니다. – lufte

+1

죄송합니다. 현재이 코드가 내 코드에서 수행 중이므로 (문제의 코드를 볼 수 있음) 의미가 있지만 여전히 작동하지 않습니다. 이것은 문제를 해결하지 못합니다. – lufte