在chrome扩展程序中设置徽章只能在开发人员模式下使用,而不能在prod(chrome商店)中使用

时间:2019-06-02 12:49:34

标签: google-chrome-extension

我在每次内容加载(页面更改)时更改徽章值时遇到问题。奇怪的是,每种方式都可以在开发模式下工作,并且徽章的价值也在不断变化,但是当我向商店开发应用时,徽章在每次加载内容时都不会改变。为什么?

这是来自content.js的一些代码

  function hideComments(comments, users) {
    let deletedComments = 0;

    for (let i = 0; i < comments.length; i++)
      for (let j = 0; j < users.length; j++)
      //user is ALWAYS at [2] index in the array
        if(comments[i].children[0].innerHTML.toLowerCase().split(',')[2].trim() === users[j]) {
          comments[i].style.display = 'none';
          deletedComments++;
        }
    //send number of deleted comments to the background
    if(deletedComments !== 0)
      return chrome.runtime.sendMessage({data: `${deletedComments}`});
    chrome.runtime.sendMessage({data: ''});
  }

  if(blockedUsers === null)
    localStorage.setItem('blockedUsers', '');

  blockedUsers = localStorage.getItem('blockedUsers');

  if(blockedUsers.length) {
    //function expects an array as 2nd parameter
    hideComments(commentsNodes,  blockedUsers.split(','));
  }

就像我之前说过的。如果我有..可以说添加了2个用户,则如果有5条注释,则徽章值将更改为5;如果没有注释,则将徽章设置为空字符串(以隐藏它)。它在开发人员模式下完美运行,但在将应用程序添加到商店时却无法正常工作。

  

background.js

chrome.runtime.onInstalled.addListener(function() {
  chrome.runtime.onMessage.addListener(function (message, sender) {
    chrome.browserAction.setBadgeBackgroundColor({ color: [238, 50, 78, 255] });
    chrome.browserAction.setBadgeText({text: message.data});
  });
 });

0 个答案:

没有答案