尝试使用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扩展名不是一个好主意)
答案 0 :(得分:3)
chrome
服务在运行时(在浏览器中时)可供您的应用使用,但您没有(或实际上无法导入)。对我有用的是声明一个var以避免编译错误:
declare var chrome;
然后在处理chrome的每个代码段中,首先检查它是否存在(以避免开发时间崩溃):
funcThatUsesChrome(args) {
if(chrome){
chrome.doSomeAction();
}
}