Так что я пытаюсь отправить данные с веб-страницы в приложение Chrome (а не расширение Chrome). По моему мнению, для этого требуется, прежде всего, использование url_handlers
для вызова приложения Chrome с веб-страницы, content scripts
для ввода JS на веб-страницу и/или Messaging
для связи между приложением Chrome и веб-страницей.Использование сценариев контента/обмена сообщениями с приложениями Chrome (не расширение) для отправки данных
Кроме того, установлено приложение от его .crx
, иначе загрузка распакованный каталог приводит к этой ошибке:
"
content_scripts
is only allowed for extensions and legacy packaged apps, but this is a packaged app."
Теперь я попытался инъекционного JS в требуемом месте. Однако при проверке с помощью инструментов Chrome Dev нет такой записи в разделе Sources->Content scripts
для этого сайта. Он просто не вводил себя при использовании приложения Chrome. Он отлично работает с расширениями, но я хочу использовать приложение Chrome для других функций.
В качестве альтернативы, я искал Messaging
примеров, где его использование упоминается как:
"... your app or extension can receive and respond to messages from regular web pages."
Но, так или иначе я не мог заставить его работать.
Любые заголовки на любом из подходов? Другие предложения?
manifest.json:
{
"name": "App",
"version": "1.0",
"manifest_version": 2,
"minimum_chrome_version": "31",
"app": {
"background": {
"scripts": ["background.js"]
}
},
"permissions": [
{"fileSystem": ["write", "retainEntries", "directory"]},
"storage",
"http://example.com/*"
],
"externally_connectable": {
"matches": ["http://example.com/*"]
},
"content_scripts": [{
"matches": ["http://example.com/*"],
"js": ["content.js"]
}]
}
спасибо за головы. Таким образом, контент-скрипты полностью исключены. Это была важная информация для меня. Кроме того, ранее я просматривал версию фрагмента, которую вы упомянули [здесь] (https://developer.chrome.com/extensions/messaging#external-webpage). И действительно, это сработало! Понял, что я пытаюсь 'console.log()' в background.js, который не печатал. На этот раз я попробовал распечатать в обратном вызове script.com и сделал! #Accepted :) На аналогичных строках, как мне отлаживать вещи в background.js? –
Вам необходимо открыть Dev Tools для 'background.js'. Вы можете сделать это на странице 'chrome: // extensions', найдите запись для своего приложения. Обратите внимание, что фоновая страница будет выгружать (и терять весь вывод консоли) в режиме ожидания, если Dev Tools для нее не будет открыт. Также полезна страница 'chrome: // inspect/# apps '. – Xan
Ах получилось!При нажатии «фоновой страницы» в разделе «Просмотр взглядов» на странице «chrome: // extensions» открывается консоль для «background.js». Даже щелкнув правой кнопкой мыши по самому приложению Chrome, вы можете выбрать опцию «Inspect background page». Благодарим за уведомление о 'chrome: // inspect/# apps' странице. –