Web サイトから Chrome 拡張機能の LocalStorage にデータを送信しようとしています。
私が探している以下の回答を試しましたが、Chrome 29 安定版ではまったく機能していないようです。これが/微調整である理由について誰かアドバイスできますか?
Web サイトから Chrome 拡張機能の LocalStorage にデータを送信しようとしています。
私が探している以下の回答を試しましたが、Chrome 29 安定版ではまったく機能していないようです。これが/微調整である理由について誰かアドバイスできますか?
任意の Web ページから拡張機能にデータを送信するには、そのデータを拡張機能に送信する必要があり、拡張機能のバックグラウンド ファイルで、runtime.onMessageExternalを使用して受信する必要があります。
はい、@okan-kocyigit の回答は、拡張機能が外部 Web ページに接続してデータを受信できるようにする方法について、かなりの情報を提供します。最新のドキュメント リンクと最新の構文で更新したいだけです。明確なアイデアを得るには、この最新のchrome 拡張ドキュメントを確認してください。
ドキュメントに従って、Webページのjavascriptファイルの下のようにして、拡張機能にデータを送信できます
// The ID of the extension we want to talk to.
var yourExtensionId = "abcdefghijklmnoabcdefhijklmnoabc";
// Make a simple request to send data to your extension:
chrome.runtime.sendMessage(yourExtensionId, {accessToken: "logged user's accessToken"},
//below callback is optional
function(response) {
if (!response.success)
handleError(url);
});
chrome.runtime.onMessageExternal.addListener(
function(request, sender, sendResponse) {
// console.log(sender) will be from where we sending data
// console.log(request) data object which we send from our webpage
if (request.accessToken) {
// now we have the accessToken from our web page
// so we can use it in our extension by storing into localStorage of extension
chrome.storage.sync.set({accessToken: request.chromeAccessToken}, function() {
// console.log('accessToken value is set to ' + user.accessToken);
});
}
詳細については、この chrome doc リンクruntime.onMessageExternalに従ってください
これを実行するには、manifest.json ファイルにexternally_connectableを追加することを忘れないでください。
"externally_connectable": {
"matches": ["*://*.yourapp.com/*", "*://yourapp.com//*"]
}