gpt4 book ai didi

javascript - Firefox OS 闹钟唤醒关闭的应用程序

转载 作者:行者123 更新时间:2023-12-02 17:13:23 25 4
gpt4 key购买 nike

查看文档,闹钟 api 似乎可用于在特定时间重新启动应用程序

我以这种方式更改了样板示例中的代码

    // Alarm API
var alarmDate = new Date("Jul 8, 2014 19:35:00"),
addAlarm = document.querySelector("#add-alarm"),
alarmDisplay = document.querySelector("#alarm-display");
if (addAlarm) {
addAlarm.onclick = function () {
var alarm = navigator.mozAlarms.add(alarmDate, "honorTimezone", {
"optionalData" : "I am data"
});

alarm.onsuccess = function () {

var request = window.navigator.mozApps.getSelf();
request.onsuccess = function() {
navigator.mozSetMessageHandler("alarm", function (mozAlarm) {
request.result.launch();
alert("alarm fired: " + JSON.stringify(mozAlarm.data));
});
};

request.onerror = function() {
alert("Error: " + request.error.name);
};
};

代码似乎仅在应用程序运行时(即使在后台)启动应用程序,但如果应用程序关闭则不会启动应用程序。

这是预期的行为吗?有什么方法可以重新启动关闭的应用程序吗?

还可以在前台启动应用程序并使其解锁屏幕吗?

谢谢

更新需要澄清的是,当系统内存负载需要终止应用程序时,就会出现此问题。 Android 提供了一种安排应用程序重新启动的方法(据我所知,iOS 没有...)。如果应用程序可以在需要时重新启动,那将非常有用。这也节省了大量电池......

最佳答案

您的代码是错误的:setMessageHandler 是在 mozAlarms.addonsuccess 处理程序中创建的。当警报响起时,该代码将不会被执行。您始终需要在应用启动时添加监听器。

这里有一些简单的代码,用于添加和响应警报(来自 app-days-dhaka )。

var request = navigator.mozAlarms.add(new Date((+new Date()) + 30000), 'ignoreTimezone', {
type: 'yolo'
});

console.log('setting to', new Date((+new Date()) + 30000) + '')

request.onsuccess = function() {
console.log('success');
}

request.onerror = function() {
console.error('err');
}

navigator.mozSetMessageHandler('alarm', function() {
console.log('alarm');
launchSelf();
});

function launchSelf() {
var request = window.navigator.mozApps.getSelf();
request.onsuccess = function() {
if (request.result) {
request.result.launch();
}
};
}

打开应用程序(这将设置闹钟),然后立即关闭应用程序(通过长按主页)。 30 秒后,应用程序将自动再次打开。

关于javascript - Firefox OS 闹钟唤醒关闭的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24632762/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com