chrome.idle не определен в расширении Chrome - PullRequest
0 голосов
/ 07 мая 2019

Я пытаюсь реализовать простое обнаружение простоя в Chrome.Я создал расширение с этим разрешением:

"permissions": [
    "webNavigation",
    "storage",
    "tabs",
    "*://*/*",
    "idle"
],
"background": {
    "scripts": ["js/background.js"]
},
"content_scripts": [
    {
        "run_at": "document_start",
        "matches": [
            "*://*/*"
        ],
        "css": [
            "css/content.css"
        ],
        "js": [
            "js/jquery.min.js",
            "js/content.js"
        ]
    }
]

и в content.js

$(function () {

  console.log('init idle detection');
   chrome.idle.queryState(5, function(newState){
     //"active", "idle", or "locked"
     if(newState === "idle"){ alert(newState);    }
  });


   ...init other things...

});

, однако chrome.idle всегда не определен.

1 Ответ

1 голос
/ 07 мая 2019

Согласно документации , скрипты содержимого не могут получить доступ к idle API.Используйте его в фоновом скрипте (или во всплывающем скрипте) и связывайтесь со скриптом контента через обмен сообщениями.

Из документации :

Скрипты контента могут обращаться к используемым API-интерфейсам Chromeпо родительскому расширению путем обмена сообщениями с расширением.Они также могут обращаться к URL-адресу файла расширения с помощью chrome.runtime.getURL () и использовать результат так же, как и другие URL-адреса.

//Code for displaying <extensionDir>/images/myimage.png:
var imgURL = chrome.runtime.getURL("images/myimage.png");  
document.getElementById("someImage").src = imgURL;

Кроме того, скрипт содержимого может напрямую обращаться к следующим API Chrome:

  • i18n
  • хранилище
  • время выполнения:
    • connect
    • getManifest
    • getURL
    • id
    • onConnect
    • onMessage
    • sendMessage

Сценарии содержимого не могут напрямую обращаться к другим API-интерфейсам.

(добавлен жирный шрифт на последней строке)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...