2017-01-05 3 views
1

angular2 및 typescript로 크롬 확장을 시도하면 Chrome API (특히 chrome.bookmarks)에 액세스하는 방법에 어려움이 있습니다.angular2 및 typescript를 통한 크롬 확장에 대한 액세스

나는 angular2 chrome extension chrome.runtime.sendMessage from typescript

하지만 크롬에 액세스 할 수 있지만, 내가 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/" 
    ] 
} 

그런 다음 여기에 제안 된대로 @ 유형을 통해 크롬에 액세스해야하는 것으로 보입니다. Using chrome extension apis in typescript

하지만 어떻게 찾을 수 없습니까. 나는 무엇을 가져와야 하나? import { Chrome, filesystem, filewriter } from '@types';? 나는 여기에서 길을 잃었고, 그것에 관한 문서를 찾을 수 없다. (크롬 확장을 위해 angular2를 사용하는 것이 좋지 않은 이유는 무엇인가)

+0

어떻게 진행하는지 보여줍니다. 어디에서 (backround 나는 희망) 당신은 북마크 전화를 tring입니다. –

답변

3

chrome 서비스는 런타임에 앱에 제공된다. 브라우저에서), 사용자가 없거나 실제로 가져올 수 없습니다.

declare var chrome; 

다음 존재하는 경우 먼저 확인에 크롬을 다루는 각각의 코드 세그먼트 (dev에 시간 충돌을 피하기 위해) :

funcThatUsesChrome(args) { 
    if(chrome){ 
     chrome.doSomeAction(); 
    } 
} 
무엇 나를 위해 일한 것은 컴파일 에러를 피하기 위해 VAR를 선언했다
+1

브라우저에서 확장 기능을 사용할 때를 의미합니까? 앱이 브라우저 (localhost : 3000)에서 실행되기 때문입니다. 그리고 user @ types/chrome에 대한 방법은 무엇입니까? – Gerard

+0

네, 이것이 내 뜻입니다. Chrome은 앱을 확장 프로그램으로 실행 한 경우에만 사용할 수 있습니다. @ type/chrome 솔루션에 익숙하지 않습니다. – Meir

관련 문제