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