2015-03-30 98 views
0

我建立一个笔记应用程式Chrome和我想要的应用程序,当用户停止输入保存其进展,但我不能让chrome.idle触发状态变化chrome.idle.onStateChanged不触发功能

chrome.idle.setDetectionInterval(10); 

chrome.idle.onStateChanged.addListener(
    function (newState) { 
     var messageElement = document.querySelector("#message"); 
     messageElement.innerHTML = "idle"; 
     if (newState === "idle") 
      save(); 
    } 
); 

Chrome需要获得访问空闲功能的权限,因此我在清单中包含了空闲权限。但是,当我使用扩展工具加载应用程序并查看权限时,它说我没有特殊的权限。这可能与为什么闲置状态改变没有触发我的功能有关吗?

+0

“停止输入”?这个API只会检测像“根本没有触摸过电脑”这样的状态。 – Xan 2015-03-30 21:20:04

+0

这是来自谷歌的文档“系统将被视为空闲如果intervalInSeconds(10)秒,因为检测到最后的用户输入过去了。”在这个例子中,这是不是意味着当用户没有输入任何东西10秒时,应用程序将被视为闲置?或者我误解了正在发生的事情? – tantangula 2015-03-30 21:32:44

+0

这是我一直在阅读,以了解空闲API [链接](https://developer.chrome.com/extensions/idle) – tantangula 2015-03-30 21:35:10

回答

2

万一别人运行到这一点,问题是,最小值setDetectionInterval将接受的是15,我发现一些代码,试图做的正是我在Safari的网上图书正在做......

chrome.idle.setDetectionInterval(15); 

chrome.idle.onStateChanged.addListener(
    function (state) { 
     if (state === "idle" && dirty) 
      save(); 
    } 
); 

这段代码几乎是完全一样的,但是这个版本的作品和我没有。控制台打印,说的区间的最低值是15秒,我试图检查每10所以我转我的代码来检查每15秒的误差,一切工作

+0

您是否在WebPage中使用它或仅将它用作APP?我可以使用它,如果我运行页面为http://localhost/index.html? – YumYumYum 2016-02-03 09:51:58

+0

如何通过HTTP'启动页面:// url'或'铬扩展:// url'? – YumYumYum 2016-02-03 09:53:07

+0

我在Chrome网上应用店应用程序中使用了该功能,因此我打包了代码并使用Chrome程序包管理器加载了该代码。 Chrome OS随后处理了该页面的启动。铬扩展应该以类似的方式工作。其实做一个网页可能会在Chrome中工作,但我没有尝试过。当我这样做时,构建Chrome网上应用店应用的信息并不多,但Chrome扩展文档中存在很多适用于网上应用店应用的重叠内容。 – tantangula 2016-02-03 15:34:25