BindWebViewCallback()
Syntaxe
BindWebViewCallback(#Gadget, FonctionJavaScript$, @Callback())Description
Lie un rappel PureBasic à une nouvelle fonction JavaScript.
Arguments
#Gadget Le gadget d’affichage Web auquel lier l’événement. FonctionJavaScript$ Nom sensible à la casse de la fonction JavaScript à créer et à laquelle lier le rappel. @Callback() La procédure de rappel à appeler lorsque la fonction JavaScript est appelée. Il faut le déclarer ainsi : Procedure JavaScriptCallback(ParametresJSON$) ; ; 'ParametresJSON$' contient tous les paramètres qui ont été spécifiés lors de l'appel de la fonction JavaScript au format JSON. ; ; Code ProcedureReturn UTF8(ResultatJSON$) EndProcedureLa procédure de rappel peut renvoyer un résultat qui peut être utilisé par la fonction JavaScript.
Valeur de retour
Aucune.
Remarques
La fonction JavaScript sera automatiquement créée dans le WebView et sera disponible dans le code JavaScript.
Lorsque la fonction JavaScript sera appelée dans le gadget WebView, le 'Callback' PureBasic sera appelé. Le code JavaScript sera arrêté jusqu'à ce que le rappel PureBasic termine son exécution.
Exemple: Avec 2 paramètres fonction Javascript
; Un simple bouton qui changera son étiquette par le résultat du rappel PureBasic ; Html$ = ~"<button id=\"displayInfo\">Afficher les Infos</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(ParametreJSON$) Dim Parameters(0) ParseJSON(0, ParametreJSON$) ExtractJSONArray(JSONValue(0), Parameters()) Debug "Nb de Paramètres: " + ArraySize(Parameters()) Debug "Paramètre 1: " + Parameters(0) Debug "Paramètre 2: " + Parameters(1) ProcedureReturn UTF8(~"{ \"sum\": "+Str(Parameters(0) + Parameters(1))+ "}") EndProcedure OpenWindow(0, 100, 100, 400, 400, "Salut", #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
Voir aussi
WebViewGadget(), UnbindWebViewCallback()
OS Supportés
Tous