1
我在我的Vala appication中使用webkit2gtk-4.0來顯示Google地圖。我需要在點擊按鈕時獲得標記座標。我如何管理它?如何在Vala中的webkit2gtk-4.0中獲得JS結果?
我想出瞭如何使用run_javascript()
來運行javascript,但我無法理解hot得到它的結果。
我在我的Vala appication中使用webkit2gtk-4.0來顯示Google地圖。我需要在點擊按鈕時獲得標記座標。我如何管理它?如何在Vala中的webkit2gtk-4.0中獲得JS結果?
我想出瞭如何使用run_javascript()
來運行javascript,但我無法理解hot得到它的結果。
通常您需要使用瓦拉的async functions要做到這一點,我相信像這樣:
var result = yield webview.run_javascript(...);
這相當於C函數webkit_web_view_run_javascript_finish()
。
不幸的是,您不能在Vala中的該鏈接上顯示下一步,因爲您需要使用JavaScriptCore API獲取返回值,並且該API在Vala中不可用。
在這種情況下,您可以訴諸幾個骯髒的竅門。其中一個竅門是在JavaScript腳本的末尾設置窗口標題,並觀察Vala中webview的title
屬性的通知。
但是,您最好在C編寫一小段代碼,然後編譯到Vala應用程序中。
你能展示如何在C中編寫這部分代碼(或鏈接到我可以瞭解它的頁面)嗎?或者如何使用這個「改變webview標題」?我完全不明白如何管理它。 – serge1peshcoff 2014-12-21 19:47:49
在鏈接到的文檔頁面的C中有一個例子。另一個例子是[這裏](http://stackoverflow.com/questions/16885242/vala-gui-and-logic-in-c)。要更改webview標題,請在Javascript腳本的末尾連接到'notify :: title'信號並運行'document.title =「Some result」;'。 – ptomato 2014-12-22 01:46:11