如何为Chrome扩展程序添加登录/电子邮件页面?

时间:2016-04-13 12:56:14

标签: javascript email google-chrome-extension

我正在制作我的第一个Chrome扩展程序。目前,只是为了掌握一切,这非常简单。我正在跟踪用户点击的所有链接,然后在一天结束时,我想通过电子邮件向用户发送所有链接的列表。我将链接存储在名为firebase的数据库中。

我的问题是:当用户安装我的Chrome扩展程序时,我想要显示一个要求发送电子邮件的页面,这是将在一天结束时通过电子邮件发送链接的电子邮件。我很困惑这个页面将在扩展中实现的位置,因为我只希望它出现在扩展的安装上。现在我有一个"注入"脚本是一个内容脚本和一个"背景"脚本。

我不确定在哪里编辑我的清单以及要添加的脚本。我想我应该在" Page_Action"我的清单。任何有关如何做到这一点的帮助或示例将不胜感激!谢谢

此外,我不一定要使用登录Chrome的用户的电子邮件,用户应该可以输入任何不相关的电子邮件。

1 个答案:

答案 0 :(得分:1)

这样做的想法如下:

  1. 创建所需的页面和脚本,并将其放入扩展文件夹。

    • 确保obeys CSP,例如没有内联处理程序,所有代码都在一个单独的文件中。
    • 请注意,您可以像在后台页面中一样使用任何Chrome API。
  2. 在您的背景页面中,您可以收听chrome.runtime.onInstalled事件。

    • 请注意,它将触发超过初始安装。一种合理的方法是在注册完成后设置某种标志 - 并检查该标志。请注意,最好使用chrome.storage.sync(需要"storage"权限):然后通过Extension Sync安装的扩展程序副本不会再次对用户造成错误。

    • 如果用户跳过注册,但您无论如何都需要注册,那么尝试在chrome.runtime.onStartup检查注册可能会很有用。

  3. 如果符合要求,请使用chrome.tabs.create打开页面。

  4. 在页面中,不要忘记设置注册数据,以免再次询问。

  5. 全部放在一起:

    // Possibly the same with onStartup event
    chrome.runtime.onInstalled.addListener(function(details) {
      chrome.storage.sync.get("registration", function(data) {
        if (!data.registration) {
          chrome.tabs.create({
            url: chrome.runtime.getURL("register.html")
          });
        }
      });
    });
    

    在注册页面代码的某处:

    chrome.storage.sync.set({registration: someData});