2015-03-30 103 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