2015-07-04 2 views
2

Я работаю над проектом, которому необходимо использовать расширение, которое клиент должен загрузить и установить, однако моей веб-странице необходимо связаться с расширением, поэтому я использую документированный способ :Использование chrome.runtime.sendMessage без расширения ID

https://developer.chrome.com/extensions/runtime#method-sendMessage

chrome.runtime.sendMessage(string extensionId, any message, object options, function responseCallback) 
{ 
    ... 
} 

Это означает, что я должен включать «extensionId» пристройки, что только генерирует этот код один раз его установили.

Разве это не кажется немного «телегой перед лошадью»?

Я должен объяснить это нашим клиентам, как их получить и получить идентификатор расширения, а также некоторые, как применить его на этой странице, чтобы он работал? Его кажется ужасно неуклюжим, тем более, что я должен установить разрешения явно.

"externally_connectable": { 
    "matches": ["*://mywebsite.com/*"] 
    }, 

Если я опускаю extensionId, это не сработает. «Uncaught Ошибка: недопустимые аргументы для подключения»

ответ

0

Согласно link вы вывесили, он говорит extensionId является необязательным, и что «[т] ID удлиняющей/приложение, чтобы отправить сообщение If. пропущено, сообщение будет отправлено на ваше собственное расширение/приложение ». Так кажется, что он должен все еще работать даже без расширения ID.

Сказав, что я заметил ту же ошибку на расширении, которое я пытаюсь отлаживать, но, похоже, все работает, несмотря на это. И когда я добавляю расширение, ошибки исчезают. Возможно, вам нужно найти способ доступа к расширению изнутри расширения.

Обновление: Я успешно заменен на '@@ extension_id'. See this.