JavaScriptBridge.xml 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <class name="JavaScriptBridge" inherits="Object" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
  3. <brief_description>
  4. Singleton that connects the engine with the browser's JavaScript context in Web export.
  5. </brief_description>
  6. <description>
  7. The JavaScriptBridge singleton is implemented only in the Web export. It's used to access the browser's JavaScript context. This allows interaction with embedding pages or calling third-party JavaScript APIs.
  8. [b]Note:[/b] This singleton can be disabled at build-time to improve security. By default, the JavaScriptBridge singleton is enabled. Official export templates also have the JavaScriptBridge singleton enabled. See [url=$DOCS_URL/contributing/development/compiling/compiling_for_web.html]Compiling for the Web[/url] in the documentation for more information.
  9. </description>
  10. <tutorials>
  11. <link title="Exporting for the Web: Calling JavaScript from script">$DOCS_URL/tutorials/export/exporting_for_web.html#calling-javascript-from-script</link>
  12. </tutorials>
  13. <methods>
  14. <method name="create_callback">
  15. <return type="JavaScriptObject" />
  16. <param index="0" name="callable" type="Callable" />
  17. <description>
  18. Creates a reference to a [Callable] that can be used as a callback by JavaScript. The reference must be kept until the callback happens, or it won't be called at all. See [JavaScriptObject] for usage.
  19. </description>
  20. </method>
  21. <method name="create_object" qualifiers="vararg">
  22. <return type="Variant" />
  23. <param index="0" name="object" type="String" />
  24. <description>
  25. Creates a new JavaScript object using the [code]new[/code] constructor. The [param object] must a valid property of the JavaScript [code]window[/code]. See [JavaScriptObject] for usage.
  26. </description>
  27. </method>
  28. <method name="download_buffer">
  29. <return type="void" />
  30. <param index="0" name="buffer" type="PackedByteArray" />
  31. <param index="1" name="name" type="String" />
  32. <param index="2" name="mime" type="String" default="&quot;application/octet-stream&quot;" />
  33. <description>
  34. Prompts the user to download a file containing the specified [param buffer]. The file will have the given [param name] and [param mime] type.
  35. [b]Note:[/b] The browser may override the [url=https://en.wikipedia.org/wiki/Media_type]MIME type[/url] provided based on the file [param name]'s extension.
  36. [b]Note:[/b] Browsers might block the download if [method download_buffer] is not being called from a user interaction (e.g. button click).
  37. [b]Note:[/b] Browsers might ask the user for permission or block the download if multiple download requests are made in a quick succession.
  38. </description>
  39. </method>
  40. <method name="eval">
  41. <return type="Variant" />
  42. <param index="0" name="code" type="String" />
  43. <param index="1" name="use_global_execution_context" type="bool" default="false" />
  44. <description>
  45. Execute the string [param code] as JavaScript code within the browser window. This is a call to the actual global JavaScript function [code skip-lint]eval()[/code].
  46. If [param use_global_execution_context] is [code]true[/code], the code will be evaluated in the global execution context. Otherwise, it is evaluated in the execution context of a function within the engine's runtime environment.
  47. </description>
  48. </method>
  49. <method name="force_fs_sync">
  50. <return type="void" />
  51. <description>
  52. Force synchronization of the persistent file system (when enabled).
  53. [b]Note:[/b] This is only useful for modules or extensions that can't use [FileAccess] to write files.
  54. </description>
  55. </method>
  56. <method name="get_interface">
  57. <return type="JavaScriptObject" />
  58. <param index="0" name="interface" type="String" />
  59. <description>
  60. Returns an interface to a JavaScript object that can be used by scripts. The [param interface] must be a valid property of the JavaScript [code]window[/code]. The callback must accept a single [Array] argument, which will contain the JavaScript [code]arguments[/code]. See [JavaScriptObject] for usage.
  61. </description>
  62. </method>
  63. <method name="is_js_buffer">
  64. <return type="bool" />
  65. <param index="0" name="javascript_object" type="JavaScriptObject" />
  66. <description>
  67. Returns [code]true[/code] if the given [param javascript_object] is of type [url=https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer][code]ArrayBuffer[/code][/url], [url=https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView][code]DataView[/code][/url], or one of the many [url=https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray]typed array objects[/url].
  68. </description>
  69. </method>
  70. <method name="js_buffer_to_packed_byte_array">
  71. <return type="PackedByteArray" />
  72. <param index="0" name="javascript_buffer" type="JavaScriptObject" />
  73. <description>
  74. Returns a copy of [param javascript_buffer]'s contents as a [PackedByteArray]. See also [method is_js_buffer].
  75. </description>
  76. </method>
  77. <method name="pwa_needs_update" qualifiers="const">
  78. <return type="bool" />
  79. <description>
  80. Returns [code]true[/code] if a new version of the progressive web app is waiting to be activated.
  81. [b]Note:[/b] Only relevant when exported as a Progressive Web App.
  82. </description>
  83. </method>
  84. <method name="pwa_update">
  85. <return type="int" enum="Error" />
  86. <description>
  87. Performs the live update of the progressive web app. Forcing the new version to be installed and the page to be reloaded.
  88. [b]Note:[/b] Your application will be [b]reloaded in all browser tabs[/b].
  89. [b]Note:[/b] Only relevant when exported as a Progressive Web App and [method pwa_needs_update] returns [code]true[/code].
  90. </description>
  91. </method>
  92. </methods>
  93. <signals>
  94. <signal name="pwa_update_available">
  95. <description>
  96. Emitted when an update for this progressive web app has been detected but is waiting to be activated because a previous version is active. See [method pwa_update] to force the update to take place immediately.
  97. </description>
  98. </signal>
  99. </signals>
  100. </class>