javascript – Chrome打包应用程序 – 从background.js传递到另一个脚本页面的消息
作者:互联网
我正在使用AngularJS制作Chrome Packaged应用程序,我只是尝试将我的后台脚本(“runtime.js”)中的消息发送到我项目中的另一个javascript文件.
的manifest.json
{
"name": "App Name",
"description": "Chrome Packaged",
"version": "0.0.9",
"manifest_version": 2,
"icons": {
"16": "img/icon16.png",
"48": "img/icon48.png",
"128":"img/icon128.png"
},
"app": {
"background": {
"scripts": ["runtime.js"]
}
},
"permissions": [
"alarms",
"storage",
"unlimitedStorage",
"notifications",
"app.runtime"
]
}
runtime.js
chrome.app.runtime.onLaunched.addListener(function() {
chrome.app.window.create('index.html', {
minWidth: 400,
minHeight: 700,
bounds: {
width: 1000,
height: 700
}
});
});
chrome.runtime.sendMessage({message: "hello"}, function() {
console.log('sent')
});
main.js
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
console.log('message received!');
});
我检查后台页面时遇到的错误是“端口:无法建立连接.接收端不存在”.
可能是什么问题的任何想法?谢谢!
解决方法:
在发送消息之前,您可能只需要等待index.html(我假设是拉入main.js)进行加载.但是,您实际上可以通过从chrome.app.window.create返回的窗口对象进行直接函数调用,而不是发送消息.
chrome.app.runtime.onLaunched.addListener(function() {
chrome.app.window.create('index.html', {
minWidth: 400,
minHeight: 700,
bounds: {
width: 1000,
height: 700
}
}, function (myWindow) {
myWindow.contentWindow.addEventListener('load', function(e) {
myWindow.contentWindow.functionFromMainJs('hello');
});
});
});
标签:javascript,angularjs,google-chrome,google-chrome-app 来源: https://codeday.me/bug/20190612/1227200.html