проверка, что расширение chrome установлено или не используется Jquery - PullRequest
1 голос
/ 14 октября 2019

У меня есть страница в wocommerce, которая принимает платежи с помощью Iwallet, и я хочу проверить, установлено ли у текущего пользователя это расширение на Chrome или нет.

Я пробовал этот скрипт, но он не работает.

<script>
var id = "kncchdigobghenbbaddojjnnaogfppfj";
chrome.runtime.sendMessage(id, {action: "id", value : id}, function(response) {
    if(response && (response.id == id)) //extension installed
    {
        console.log(response);
    }
    else //extension not installed
    {
        console.log("Please consider installig extension");
    }
});
</script>

Тогда я попробовал Второй, который работает, но в обоих случаях он говорит, что не установлен

function Ext_Detect_NotInstalled(ExtName, ExtID) {
  console.log(ExtName + ' Not Installed');
  if (divAnnounce.innerHTML != '')
    divAnnounce.innerHTML = divAnnounce.innerHTML + "<BR>"

  divAnnounce.innerHTML = divAnnounce.innerHTML + 'Page needs ' + ExtName + ' Extension -- to intall the LocalLinks extension click <a href="https://chrome.google.com/webstore/detail/locallinks/' + ExtID + '">here</a>';
}

function Ext_Detect_Installed(ExtName, ExtID) {
  console.log(ExtName + ' Installed');
}

var Ext_Detect = function (ExtName, ExtID) {
  var s = document.createElement('script');
  s.onload = function () { Ext_Detect_Installed(ExtName, ExtID); };
  s.onerror = function () { Ext_Detect_NotInstalled(ExtName, ExtID); };
  s.src = 'chrome-extension://' + ExtID + '/manifest.json';
  document.body.appendChild(s);
}

var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;

if (is_chrome == true) {
  window.onload = function () { Ext_Detect('LocalLinks', 'jllpkdkcdjndhggodimiphkghogcpida'); };
}

Помогите мне, как я могу проверить хром для расширения с помощью Jquery.? Как я могу использовать chrome.runtime.sendMessage и другие функции, используя Jquery?

1 Ответ

0 голосов
/ 14 октября 2019

Вы не можете этого сделать. Это потому, что если такая вещь действительно присутствовала, это будет проблемой конфиденциальности для пользователей Chrome. На самом деле Chrome Web Store является единственным веб-сайтом, который имеет доступ к таким API Chrome.

НО - Глядя на исходный код расширения, вы можете проверить, чторасширение изменяет ваш браузер или даже сообщения, которые он слушает.

В исходном коде Iwallet, который я обнаружил в content-script.js и inpage.js, он устанавливает специальное свойство объекта окна window.IWalletJS иВы можете просто проверить, существует ли оно, чтобы определить, установлено ли расширение.

Так же просто, как:

if('IWalletJS' in window){
    console.log("IWallet is installed", window.IWalletJS);
} else {
    console.log("IWallet is not installed");
}

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

Надеюсь, я помог.

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