【问题标题】:load last viewed page on chrome extension startup在 chrome 扩展启动时加载最后查看的页面
【发布时间】:2019-02-22 23:12:32
【问题描述】:
我正在开发我的第一个 chrome 扩展程序,但遇到了“会话恢复”问题。在开发的请求中,当用户登录我的扩展程序并关闭弹出窗口时,当他再次打开插件时,他不得不再次登录。
我使用chrome.storage.sync 来保存会话信息以使用户仍处于登录状态,如果他关闭插件且会话仍处于活动状态,他将被重定向到欢迎页面。但是,我如何在插件的哪个页面中检查扩展程序启动时用户所在的页面并将他带回该页面?
例如,如果用户登录并在“选择一本书”部分,我如何让插件在“选择一本书”部分而不是“欢迎”部分打开?
Angular 2 客户端
服务器端的 NodeJs
【问题讨论】:
标签:
node.js
angular
google-chrome-extension
google-chrome-devtools
session-storage
【解决方案1】:
认为会话对象类似于:
{
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
}
}
})