BindWebViewCallback()
Syntax
BindWebViewCallback(#Gadget, JavaScriptFunktion$, @Callback())Beschreibung
Bindet einen PureBasic-Callback an eine neue JavaScript-Funktion. Die JavaScript-Funktion wird automatisch in der Webansicht erstellt und ist im JavaScript-Code verfügbar.
Wenn die JavaScript-Funktion im Webview-Gadget aufgerufen wird, wird der PureBasic 'Callback' aufgerufen. Der JavaScript-Code wird angehalten, bis der PureBasic-Callback seine Ausführung abgeschlossen hat.
Parameter
#Gadget Das Webview-Gadget, an das das Ereignis gebunden werden soll. JavaScriptFunktion$ Der Name (unter Beachtung der Groß- und Kleinschreibung) der zu erstellenden JavaScript-Funktion, an welche der Callback gebunden werden soll. @Callback() Die beim Aufruf der JavaScript-Funktion aufzurufende Callback-Prozedur. Diese muss wie folgt deklariert werden: Procedure JavaScriptCallback(JsonParameters$) ; ; 'JsonParameters$' enthält alle Parameter, die beim Aufruf der JavaScript-Funktion im JSON-Format angegeben wurden. ; ; Code ProcedureReturn UTF8(JsonResult$) EndProcedureDie Callback-Prozedur kann ein Ergebnis zurückgeben, das von der JavaScript-Funktion verwendet werden kann.
Rückgabewert
Diese Funktion gibt keinen Wert zurück.
Anmerkungen
Wenn Ihre JavaScript-Callback-Funktion ein UTF8() generiertes Ergebnis anstelle von 0 zurückgibt, wird PureBasic den zur Rückgabe verwendeten Speicher automatisch freigeben, wenn er nicht mehr benötigt wird.
Beispiel: mit einer 2-Parameter-Javascript-Funktion
; Eine einfache Schaltfläche, deren Beschriftung sich je nach Ergebnis des PureBasic-Rückrufs ändert ; Html$ = ~"<button id=\"displayInfo\">Display Info</button>\n"+ ~"<script>\n"+ ~" const displayInfoElement=document.getElementById(\"displayInfo\");\n"+ ~" document.addEventListener(\"DOMContentLoaded\", () => {\n"+ ~" displayInfoElement.addEventListener(\"click\", () => {\n"+ ~" window.displayInfo(1000, 2000).then(result => {\n"+ ~" displayInfoElement.textContent = result.sum;\n"+ ~" });\n"+ ~" });\n"+ ~" });\n"+ ~"</script>"; Procedure IncrementJS(JsonParameters$) Dim Parameters(0) ParseJSON(0, JsonParameters$) ExtractJSONArray(JSONValue(0), Parameters()) Debug "Nb Parameters: " + ArraySize(Parameters()) Debug "Parameter 1: " + Parameters(0) Debug "Parameter 2: " + Parameters(1) ProcedureReturn UTF8(~"{ \"sum\": "+Str(Parameters(0) + Parameters(1))+ "}") EndProcedure OpenWindow(0, 100, 100, 400, 400, "Hello", #PB_Window_SystemMenu) WebViewGadget(0, 0, 0, 400, 400) SetGadgetItemText(0, #PB_WebView_HtmlCode, Html$) BindWebViewCallback(0, "displayInfo", @IncrementJS()) Repeat Event = WaitWindowEvent() Until Event = #PB_Event_CloseWindow
Siehe auch
WebViewGadget(), UnbindWebViewCallback()
Unterstützte OS
Alle