J'utilise le stockage de chrome dans mon application qui fonctionnait bien. Le processus est très simple. L'utilisateur saisit l'adresse e-mail et le mot de passe, l'application les vérifie en utilisant la requête XHR et maintient la session en utilisant chrome.storage.local.set
. Une fois la session définie, je recharge l'application en utilisant chrome.runtime.reload()
. Sur chaque rechargement, j'utilise la fonction checkLogin pour vérifier si la session est active ou non. Ça fonctionnait bien. Mais maintenant je reçois cette erreur:chrome.storage.local.get vide après chrome.runtime.reload() - application empaquetée
Il semble que le stockage se vide après avoir rechargé l'application et l'application ne peut pas trouver le mot-clé dans le stockage et le retour d'erreur non définie.
Voici le code qui est appelé une fois que l'utilisateur est authentifié:
postLogin = function (resultData) {
if (resultData.authStatus == 1) {
chrome.storage.local.set({'userData': resultData}, function(){
console.log("session saved");
});
chrome.runtime.reload()
}
else {
$("#result").html(resultData.authMsg);
$("#result").attr('style', 'display: inline-block !important');
}
return false
}
Une fois que l'application est rechargé je vérifie la session enregistrée:
checkLogin = function() {
console.log(chrome.storage);
chrome.storage.local.get("userData",function(result) {
userData = result.userData;
if (userData && userData.authStatus == 1) {
console.log("--- user signed In ---")
return true;
}
console.log(" ---- unable to find user session ----")
$("#auth-dialog").attr('style', 'display: inline !important');
return false;
})
}
À ce stade, je reçois l'erreur J'ai joint à la capture d'écran ci-dessus. J'ai également utilisé console.log(chrome.storage);
pour vérifier l'état du stockage et il est retourné indéfini. La chose étrange est une fois que je relance l'application manuellement la partie .get
du code fonctionne très bien. Au début, il montre l'erreur que j'ai dû recharger la page afin d'obtenir la valeur de stockage stockée.
Manifest:
{
...
"permissions": [ "unlimitedStorage", "clipboardRead", "clipboardWrite", "nativeMessaging" , "storage" ],
}
MISE À JOUR:
La question n'est pas le chrome.storage
comme mentionné dans le titre de poste. Le problème principal avec chrome.runtime.reload()
. Après le lancement de l'application initiale, chaque fois que j'appelle chrome.runtime.reload()
dès que l'application recharge tout ce qui commence à chrome.
ne fonctionne pas.
Est-ce une application ou une extension? Ce devrait être seulement un. S'il vous plaît [modifier] votre question pour inclure uniquement la balise appropriée. – Makyen
S'il vous plaît [modifier] la question à être sur le sujet: inclure un [mcve] qui * duplique le problème *. Pour les extensions Chrome ou Firefox WebExtensions, vous devez presque toujours inclure votre * manifest.json * et une partie de l'arrière-plan, du contenu et/ou des scripts contextuels/HTML, et souvent des HTML/scripts de pages Web. Les questions demandant l'aide au débogage ("pourquoi mon code ne fonctionne-t-il pas comme je veux?") Doivent inclure: (1) le comportement souhaité, (2) un problème ou une erreur spécifique et (3) le code le plus court nécessaire pour le reproduire * dans la question elle-même *. S'il vous plaît voir aussi: [Quels sujets puis-je poser ici?] (/ Help/on-topic), et [ask]. – Makyen
Veuillez ajouter du code, des erreurs et des données en tant que ** text ** ([en utilisant le formatage de code] (// stackoverflow.com/editing-help#code)), pas d'images. Images: A) ne nous permettent pas de copier et coller le code/les erreurs/les données pour les tests; B) ne permettent pas la recherche en fonction du contenu du code/de l'erreur/des données; et [beaucoup d'autres raisons] (https://meta.stackoverflow.com/a/285557). En général, code/erreurs/données au format texte >>>> code/erreurs/données sous forme d'image >> rien. Les images ne doivent être utilisées *, en plus du texte au format de code *, que si l'image contient quelque chose d'important qui n'est pas véhiculé uniquement par le code texte/l'erreur/les données. – Makyen