2014-12-03 6 views
1

Google Vala appication에서 webkit2gtk-4.0을 사용하여 Google지도를 표시하고 있습니다. 그리고 버튼 클릭시 마커 좌표를 가져와야합니다. 어떻게 관리 할 수 ​​있습니까? JS 결과를 Vala의 webkit2gtk-4.0에서 얻으려면 어떻게해야합니까?

나는 run_javascript()를 사용하여 자바 스크립트를 실행하는,하지만 난 그것의 결과를 얻을 수 뜨거운 이해할 수있는 방법을 알아 냈어.

답변

0

일반적으로 당신은 내가 너무 좋아 생각이 일을 발라의 async functions를 사용해야합니다 :

var result = yield webview.run_javascript(...); 

이 C 함수 webkit_web_view_run_javascript_finish()에 해당합니다. 당신이 반환 값에 얻을 수있는 JavaScriptCore는 API를 사용해야하고 API 발라에서 사용할 수 없습니다로

불행하게도 당신이 발라에있는 링크에 표시된 다음 단계를 취할 수 없습니다.

당신이이 경우에 의지 할 수 더러운 트릭의 몇 가지가 있습니다. 이러한 트릭 중 하나는 자바 스크립트 스크립트의 마지막에 창 제목을 설정하고 Vala의 webview의 title 속성에 대한 알림을 보는 것입니다.

그러나, 당신은 당신이 당신의 발라 응용 프로그램으로 컴파일 C 코드의 작은 비트를 쓰는 것이 더있다.

+0

당신은 (내가 그것에 대해 배울 수있는 페이지 또는 링크)이 C 코드의 일부를 작성하는 방법을 보여줄 수 있습니까? 아니면이 "변화하는 웹 뷰 제목"을 사용하는 방법? 나는 그것을 어떻게 관리하는지 완전히 이해하지 못한다. – serge1peshcoff

+1

C에 링크 된 문서 페이지의 예제가 있습니다. 또 다른 예는 [여기] (http://stackoverflow.com/questions/16885242/vala-gu-and-logic-in-c)입니다. 웹뷰 제목을 변경하려면'notify :: title' 신호에 연결하고'document.title = "을 실행하십시오. 자바 스크립트 스크립트의 끝에"; "를 입력하십시오. – ptomato