Включение библиотеки Jabra в расширение Chrome - PullRequest
0 голосов
/ 28 января 2019

Я включил библиотеку Jabra javascript в свой проект расширения chrome.

https://github.com/gnaudio/jabra-browser-integration/blob/master/README.md

Эта библиотека взаимодействует с расширением chrome, которое необходимо установить вместе с установленным клиентом.на компьютере с Windows.

Если я запускаю любой из инструментов github;например https://gnaudio.github.io/jabra-browser-integration/release/test/ У меня нет проблем с просмотром событий.

Если я создаю небольшое приложение и размещаю его на Apache, я могу без проблем получить доступ к API и увидеть события.

КогдаЯ запускаю приложение в своем расширении chrome, оно не может видеть расширение chrome и советует мне установить его.

https://chrome.google.com/webstore/detail/jabra-browser-integration/okpeabepajdgiepelmhkfhkjlhhmofma

jabra_error

В моем приложении расширения Chrome я попытался включить библиотеку API javascript с моего веб-хоста: <script src="https://example.com/jabra_research/jabra.browser.integration-2.0.js"></script>

Также, пожалуйста, смотрите мой файл манифеста:

{
    "name": "Jabra",
    "manifest_version": 2,    
    "version": "0.3.9.2",
    "author": "Joe Bloggs",
    "description": "Get Jabra Headset Info",
    "background": {
        "page": "background.html",
        "persistent": true
    },
    "browser_action": {
        "default_icon": {
            "19": "ext_icons/icon_19.png",
            "38": "ext_icons/icon_38.png"
        }
    },
    "icons": {
        "16": "ext_icons/icon_16.png",
        "48": "ext_icons/icon_48.png",
        "128": "ext_icons/icon_128.png"
    },
    "options_page": "config.html",
    "permissions": [
        "activeTab",
        "alarms",
        "background",
        "tabs",
        "system.cpu",
        "contextMenus",
        "unlimitedStorage",
        "storage",
        "notifications",
        "cookies",
        "*://*/*",
        "<all_urls>",
        "http://*/",
        "https://*/",
        "management"
    ],
    "content_security_policy": "script-src 'self' https://example.com/jabra_research/jabra.browser.integration-2.0.js; object-src 'self' https://example.com/jabra_research/jabra.browser.integration-2.0.js",

    "web_accessible_resources": [
        "*"
    ]
}

Мой файл background.html включает файл API.Это почти как когда background.html запускается, он не обрабатывается так же, как обычная вкладка браузера chrome.

Есть что-нибудь, что можно посоветовать попробовать?

Я заметил в API в строке 1080 'Работает только если размещен под https '.Я подозреваю, что это как-то связано с этим.

KR, Aiden

1 Ответ

0 голосов
/ 29 января 2019

Попробуйте поместить сценарий в структуру локальной папки (например, папку сценариев) для своего расширения, чтобы оно поставлялось с инструментом, а затем обновите манифест, включив его в качестве фонового сценария, чтобы функции в сценарии были доступны дляфоновая страница и функции ...

 "web_accessible_resources": [
        "*"
    ],
"background": {
    "scripts": [ "scripts/jquery-3.3.1.js", "scripts/jabra.browser.integration-2.0.js"],
    "persistent": true
  }
}

или вставьте скрипт из вашего скрипта контента, вставив его в заголовок вашей фоновой HTML-страницы ...

//load scripts, 2 shown for usage clarification...
        var scripts = ["jabra_research/jabra.browser.integration-2.0.js"];

        function load_latest_script() {

            for (index = 0; index < scripts.length; ++index) {

                var script = document.createElement('script');

                //where my_url is your domain...
                script.src = my_url + scripts[index] 

                script.type = 'text/javascript';
                var done = false;

                //if all scripts are loaded then load stuff
                if (index == scripts.length-1) {
                    script.onload = script.onreadystatechange = function () {
                        if (!done && (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")) {
                            done = true;
                            //call a function in panel.js
                            load_stuff();
                        }
                    };
                }
                document.getElementsByTagName("head")[0].appendChild(script);
            }
        }

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