Notifications 如果手机处于阻止状态,则报警丢失
我正在为firefox操作系统开发一个应用程序,我遇到了警报问题。如果手机被阻塞,闹钟不会响 当手机处于阻止状态时会出现问题,因为通知桌面不会启动。但当你解锁手机时,应用程序在后台,但什么也没发生 编辑 代码中的解决方案。然后,我认为问题消失了。 我可以使用此功能添加报警:Notifications 如果手机处于阻止状态,则报警丢失,notifications,alarm,firefox-os,Notifications,Alarm,Firefox Os,我正在为firefox操作系统开发一个应用程序,我遇到了警报问题。如果手机被阻塞,闹钟不会响 当手机处于阻止状态时会出现问题,因为通知桌面不会启动。但当你解锁手机时,应用程序在后台,但什么也没发生 编辑 代码中的解决方案。然后,我认为问题消失了。 我可以使用此功能添加报警: //应用程序工作权限的解决方案是写入此window.onload函数 window.onload=函数(){ 函数addAlarm(){ //数据警报将被触发 var myDate=新日期(); myDate.setMinu
//应用程序工作权限的解决方案是写入此window.onload函数
window.onload=函数(){
函数addAlarm(){
//数据警报将被触发
var myDate=新日期();
myDate.setMinutes(myDate.getMinutes()+1);
//报警信息
风险值数据={
傅:“酒吧”
}
var request=navigator.mozallarms.add(myDate,“ignoreTimezone”,data);
request.onsuccess=函数(){
console.log(“La alarma ha sido programmada”);
};
request.onerror=函数(){
log(“Ha ocurrido un error:+this.error.name”);
};
}
//获取报警事件以触发报警,并添加桌面通知。
mozSetMessageHandler(“报警”,函数(mozAlarm){
console.log('fired Alarm');
//添加桌面通知的函数
通知我();
$(“#alarmFired”).append(“alarm fired:”+JSON.stringify(mozAlarm)+“”);
});
}
桌面通知功能:
函数notifyMe(){
var options={body:“通知正文”,图标:'http://www.famfamfam.com/lab/icons/mini/icons/icon_accept.gif'}
//让我们检查一下浏览器是否支持通知
如果(!(“窗口中的通知”){
警报(“此浏览器不支持桌面通知”);
}
//让我们检查一下用户是否可以获得一些通知
else if(Notification.permission==“已授予”){
//如果可以的话,让我们创建一个通知
var通知=新通知(“你好!”,选项);
}
//否则,我们需要请求用户的许可
//注意,Chrome没有实现权限静态属性
//因此,我们必须检查“未拒绝”而不是“默认”
else if(Notification.permission!=“拒绝”){
Notification.requestPermission(函数(权限){
//无论用户回答什么,我们都确保存储信息
如果(!(通知中的“许可”){
Notification.permission=权限;
}
//如果用户没有问题,让我们创建一个通知
如果(权限==“已授予”){
var通知=新通知(“你好!”,选项);
}
});
}
notification.onclick=function(){
log('clicked notification');
openApp();
}
}
Paco
您可能可以使用以下技术
//记录应用程序的可见性
var logVisibility=document.querySelector(“日志可见性”),
logVisibilityDisplay=document.querySelector(“日志可见性显示”);
if(logVisibility&&logVisibilityDisplay){
logVisibility.onclick=函数(){
logVisibilityDisplay.style.display=“block”;
logVisibilityDisplay.innerHTML=“我有焦点!
”
document.addEventListener(“visibilitychange”,函数(){
if(document.hidden){
log(“Firefox OS样板应用程序被隐藏”);
logVisibilityDisplay.innerHTML+=“现在我在后台
”;
}
否则{
log(“Firefox OS样板应用程序有焦点”);
logVisibilityDisplay.innerHTML+=“我有焦点!
”;
}
});
};
}
与请求屏幕锁定相结合,如
//保持屏幕打开
var lock=null;
var keepscreen=document.querySelector(“保持屏幕打开”);
如果(保留屏幕){
keepscreen.onclick=函数(){
如果(!锁定){
lock=window.navigator.requestWakeLock('screen');
keepscreen.innerHTML=“解除锁定”;
}
否则{
lock.unlock();
lock=null;
keepscreen.innerHTML=“保持屏幕打开”;
}
};
}
我的想法是:
好的,我已经搜索了更多,您可能想使用wakeLock而不是sreen lock。有关更多信息,请查看请使用答案发布答案,不要在问题中编辑答案。在同一页上:不要用答案作为评论,说你已经回答了你的问题:)。听起来很困惑,但基本上只要用问题来回答问题,用答案来回答问题,你就会没事了