通过angular2和typescript访问chrome扩展

时间:2017-01-05 05:10:20

标签: javascript angular typescript google-chrome-extension

尝试使用angular2和typescript进行chrome扩展,我陷入了如何访问chrome API(特别是chrome.bookmarks)。

我可以按照angular2 chrome extension chrome.runtime.sendMessage from typescript

访问Chrome对象

但即使我可以访问chrome,我也不能使用chrome.bookmarks

的manifest.json

{
    "manifest_version": 2,
    "name": "x",
    "short_name": "x",
    "description": "x",
    "version": "0.1.0",
    "author": "x",
    "permissions": [
        "bookmarks",
        "https://ajax.googleapis.com/"
    ]
}

然后,似乎我应该通过@types访问chrome,如此处所示 Using chrome extension apis in typescript

但我找不到怎么样。我应该导入什么? import { Chrome, filesystem, filewriter } from '@types';?我迷失在这里,我找不到相关的文档(是什么让我相信使用angular2作为chrome扩展名不是一个好主意)

1 个答案:

答案 0 :(得分:3)

chrome服务在运行时(在浏览器中时)可供您的应用使用,但您没有(或实际上无法导入)。对我有用的是声明一个var以避免编译错误:

declare var chrome;

然后在处理chrome的每个代码段中,首先检查它是否存在(以避免开发时间崩溃):

funcThatUsesChrome(args) {
   if(chrome){
      chrome.doSomeAction();
   }
}