2014-12-14 4 views
2

저는 Dart로 게임을 만들고 있어요. 노드 -wekit 및 node-webkit.dart (노드 - 웹킷 모듈의 경우 Dart 래퍼)으로 패키징하고 있습니다.노드 - 웹킷에서 외부 앵커 링크를 엽니 다.

내 목표는 노드 웹킷 앱 게임을 독립 실행 형 기본 앱으로 표시하는 것입니다. 이를 달성하기 위해 내비게이션 막대와 다른 것들을 제거했습니다. 내 모든 자산은 현지이므로 게임을 인터넷에 연결할 필요가 없습니다.

내 HTML 내에 몇 개의 앵커 링크가 있습니다 (예 : 내 사이트로 연결). 그것들을 현재 클릭하면 나의 노드 -Webkit 윈도우는 그 자체 내의 링크를 연다. 결코 내 계획이 아니며 탐색 바를 가져간 이후로 게임으로 돌아갈 방법이 없습니다.

내 질문 : 앵커 링크를 외부 (사용자의 선택 브라우저에서)로 여는 핸들러를 만들 수 있습니까? 앵커 링크가 동적으로 추가 될 수 있다는 것을 명심하십시오.

나는 약 Shell.openExternal(url)에 대해 알고 있지만 모든 앵커 링크를 호출하는 방법을 생각할 수 없습니다.

감사합니다.

+0

링크 또는 단추의 onclick 이벤트를 사용하여 Shell.openExternal() 함수를 호출 할 수 있다고 생각합니다. – luizmineo

+0

실제로 @luizmineo이지만, 내가 직면 한 문제는 새로 추가 된 앵커 요소 (on 런타임)를 onClick으로 설정하는 것입니다. 실제로 새로운 노드 웹킷 기능 (node-webkit.dart가 지원하지 않는 것으로 보임)을 사용하여 솔루션을 찾았습니다. 잠시 후 질문에 대한 답변으로 게시 할 것입니다. 답장을 보내 주셔서 감사합니다! –

+0

각도, 폴리머 또는 다른 lib/프레임 워크를 사용하고 있습니까? UI를 작성하는 방법에 대한 자세한 내용을 공유하는 경우 예제를 제공 할 수 있습니다. – luizmineo

답변

2

링크를 처리하는 노드 - 웹킷 이벤트가 있지만 node-webkit.dart는이를 지원하는 것으로 보이지 않습니다.

내 문제를 해결하기 위해 내 주요 HTML 파일에 인라인 JS 스크립트를 추가 :

<script type="text/javascript"> 
    try { 
    var gui = require('nw.gui'); 
    var win = gui.Window.get(); 
    win.on('new-win-policy', function (frame, url, policy) { 
     gui.Shell.openExternal(url); 
     policy.ignore(); 
    }); 
    } catch(e) { } 
</script> 

(빈 시도/잡기가 내 게임이 노드 환경의 외부에서 실행하면 오류가 발생하기 때문에).

관련 문제