【发布时间】:2018-11-06 10:08:50
【问题描述】:
我正在开发 chrome 扩展,我有一个“background.js”,它过滤 url 并从我的 api 获取数据。当条件满足时,我会从“background.js”发送消息。我想从Angular component 那里得到它。
background.js
...
chrome.pageAction.show(tab.id, () => {
chrome.runtime.sendMessage({data: dataFromAPI})
});
...
我跑了npm install --save @types/chrome。
app.component.ts
import {Component} from '@angular/core';
import {chrome} from '@types/chrome';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
constructor() {
chrome.runtime.onMessage.addListener( data => console.log(data));
}
}
但是 WebStorm 说,“.../node_modules/@types/chrome/index.d.ts' is not a module.”
如何使用 Angular 组件中的 Chrome Api?
【问题讨论】:
-
chrome.pageAction.show 仅公开图标,它不会打开 pageAction 本身,因此这些脚本没有运行,您无法在那里发送消息。只有当用户单击该图标时,才会显示 pageAction 弹窗并可以接收消息。
-
谢谢,您是否推荐任何解决方案来激活 pageAction 并从 background.js 发送数据,主要问题是“ng build”不起作用。错误:“src/app 中的错误/app.component.ts(11,5): 错误 TS2304: 找不到名称 'chrome'。"
-
您找到解决方案了吗?同样的问题
标签: javascript angular typescript google-chrome-extension