在Chrome扩展程序启动时加载上次查看的页面

时间:2019-02-22 11:47:45

标签: node.js angular google-chrome-extension google-chrome-devtools session-storage

我正在开发我的第一个chrome扩展程序,但遇到了“会话还原”问题。当用户登录我的扩展程序并关闭弹出窗口时,在开发初期,当他再次打开插件时,他不得不再次登录。

我已经使用chrome.storage.sync来保存会话信息,以使用户仍然可以登录,并且如果他关闭插件,并且他的会话仍处于活动状态,则将其重定向到欢迎页面。但是,如何在用户位于插件的哪个页面上检查扩展程序的启动并将他带回到该页面?

例如,如果用户已登录并且位于“选择一本书”部分,那么如何使插件在“选择一本书”部分而不是“欢迎”部分中打开?

客户端的角度2 服务器端的NodeJ

1 个答案:

答案 0 :(得分:0)

考虑会话对象类似于:

{
   logged: true,
   last_section: 'books'
}

当用户访问“图书”部分时,将其保存。

// this code goes inside some listener for visiting a section 
chrome.storage.sync.get('session', function (items) {
  const session = items.session || {}
  session.last_section = 'books'
  chrome.storage.sync.set({ session })
})

在弹出脚本的开头,您只需调用chrome.storage.sync.get即可获取最后一个会话对象状态。

chrome.storage.sync.get('session', function (items) {
   const session = items.session

   if (session && session.logged) {
      if (session.last_section === 'books') {
        // render books section
      }

      if (session.last_section === 'welcome') {
        // render welcome section
      }
   }
})