제 문제를 더 잘 설명하기 위해 Dart로 작성된 크롬 확장의 작은 예를 만들었습니다. Gist에서 코드를 보거나 확장 프로그램을 다운로드 할 수 있습니다.다트 크롬 확장 : 크롬 API 이벤트 수신
문제
TypeError가 발생 자바 스크립트로 컴파일 할 때이 예는 Dartium에서 잘 실행되지만 : 선의 Uncaught TypeError: undefined is not a function
:
context['chrome']['runtime']['onMessage'].callMethod('addListener', [onMessageListener]);
얼마나 내가 이미 오전
- 이 예에서 알 수 있듯이
alert()
또는console.log()
을 통한dart:js
의 기능은 js 확장자에서도 작동합니다. dart2js와 eventlisteners를 추가 할 때 특별한 문제가 될 수 있습니까? - 또한
context['chrome']['runtime']['onMessage']
을 인쇄하면 올바른 이벤트 객체가 표시됩니다. (예 :context['console'].callMethod('log', [context['chrome']['runtime']['onMessage']]);
) - 크롬 펍 패키지가 있다는 것을 알고 있지만 onMessage에서받은 메시지에 응답 할 때 여전히 버그가 있습니다. 이 내용은 question을 참조하십시오. 다트 (dart)를 통해 직접 Chrome API를 사용하는 경우 : js는 해당 다트 버전의 문제를 해결했습니다.
나는 코드 만 같은 오류의 모든 결과를 많이했다. 이제 나는 아이디어가 없습니다. 커뮤니티가 저를 다시 도울 수 있기를 바랍니다.
편집 : Robert가 제안한대로이 버그를 dartbug.com에보고했습니다. 어쨌든, 누군가가 알고있는 경우 여전히 임시 해결책이나 무언가를 열어두고 있습니다. 나를 위해
앤디, http://stackoverflow.com/questions/25193392/issue-with-chrome-runtime-onconnect-when-building-를 살펴 크롬 - 확장 - 다트. 그것은 나를 위해 일했습니다. – keerti
예! 정말 고마워. 나는 그 실을 이미 알고 있었지만 그것이 거의 같은 문제라고 인식하지 못했습니다. 한 달 동안이 버그에 갇혀있어 ... 고마워 :) – Andi