私は、ユーザーが自分のコンテンツを見るためにアカウントにログインする必要があるChrome拡張機能に取り組んでいます。私がしたいのは、ユーザーがログインした後で、何らかのクッキーやlocalStorageに関連するログイン/セッションデータを保存することによって、毎回ログインする必要がないようにすることです。Chrome拡張機能 - ポップアップのログイン情報の保存
これまでのところ、Google ChromesローカルストレージAPIを使用すると、これを行う最善の方法と思われます(誰かがこれを確認できればすばらしいでしょう)。
私の問題は、ローカルストレージを設定して取得することです。
Popup.js:
function setCookie(){
chrome.extension.sendMessage({name: 'setLoginCookie'}, function(otherResponse) {
console.log(otherResponse)
})
}
function getCookie(){
chrome.extension.sendMessage({name: 'getloginCookie'}, function(response) {
alert(response)
})
}
event.js:
chrome.extension.onMessage.addListener(function(request, sender, sendResponse) {
if (request.name == 'setLoginCookie') {
var obj = {test:"test"}
chrome.storage.sync.set(obj, function() {
alert('Data saved');
});
}
if (request.name == 'getLoginCookie') {
chrome.storage.sync.get('test', function(data) {
sendResponse({ screenshotUrl: data.test });
})
}
return true;
});
私はちょうど試みるとChrome拡張のためのローカルストレージのいずれかの種類を格納するために取得するために、ここでの設定にダミーローカルストレージのシナリオをしました
setCookie機能が実行されると、「データが保存されました!」というアラートが表示されます。それは私にそれが働いていることを示すだろうが、私は自分の拡張機能のChromeデベロッパーツールのローカルストレージをチェックするときに何もないので、getCookie
という関数を呼び出すと何も拾わない。
ここに私のmanifest.jsonをの権限は以下のとおりです。
"permissions": [
"storage",
"cookies",
"tabs",
"<all_urls>",
"pageCapture",
"downloads"
],
は、私がここに間違ったアプローチを使用したことがありますか? chrome.storage.sync
を使用しているのはおそらくどこが間違っていますか?
おかげ
1. [Chrome拡張機能のデバッグ中にchrome.storage.syncを検査する](// stackoverflow.com/a/32471596)2。どのようにgetCookieを呼び出しますか? – wOxxOm
ポップアップで直接データを格納して取得するだけではないのですか? 'chrome.storage.local'はバックグラウンドコンテキスト(ポップアップを含む)とコンテンツスクリプトの任意のページで利用できます。 – Makyen