我正在學習Firefox OS應用程序的簡單推送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"}
]
}
什麼手機是您使用請參閱?發生推送時手機是否閒置?我不知道你是否遇到了這個bug:https://bugzilla.mozilla.org/show_bug.cgi?id=1080752 – 2014-12-10 01:00:57
我正在使用阿爾卡特OTF。我看了一下這個bug(儘管存在這個問題,它基本上可以呈現推送通知,但是在我的情況下,手機並沒有閒置。我關閉了應用程序,之後立即從我的電腦發出curl通知,但沒有任何反應。 – lufte 2014-12-10 15:33:12