Version: stable
FUNCTION | |
---|---|
create() | |
destroy() | |
open_raw() | |
eval() | |
set_visible() | |
is_visible() | |
set_position() |
CONSTANT | |
---|---|
CALLBACK_RESULT_URL_OK | |
CALLBACK_RESULT_URL_ERROR | |
CALLBACK_RESULT_URL_LOADING | |
CALLBACK_RESULT_EVAL_OK | |
CALLBACK_RESULT_EVAL_ERROR |
create(callback)
Creates a webview instance. It can show HTML pages as well as evaluate Javascript. The view remains hidden until the first call. There can exist a maximum of 4 webviews at the same time. On iOS, the callback will never get a `webview.CALLBACK_RESULT_EVAL_ERROR`, due to the iOS SDK implementation."
PARAMETERS
callback |
|
A callback which receives info about finished requests taking the following parameters: |
EXAMPLES
local function webview_callback(self, webview_id, request_id, type, data) if type == webview.CALLBACK_RESULT_URL_OK then -- the page is now loaded, let's show it webview.set_visible(webview_id, 1) elseif type == webview.CALLBACK_RESULT_URL_ERROR then print("Failed to load url: " .. data["url"]) print("Error: " .. data["error"]) elseif type == webview.CALLBACK_RESULT_URL_LOADING then -- a page is loading -- return false to prevent it from loading -- return true or nil to continue loading the page if data.url ~= "https://www.defold.com/" then return false end elseif type == webview.CALLBACK_RESULT_EVAL_OK then print("Eval ok. Result: " .. data['result']) elseif type == webview.CALLBACK_RESULT_EVAL_ERROR then print("Eval not ok. Request # " .. request_id) end end local webview_id = webview.create(webview_callback)
destroy(webview_id)
Destroys an instance of a webview.
PARAMETERS
webview_id |
|
The webview id (returned by the `webview.create()` call) |
open_raw(webview_id,html,options)
Opens a web page in the webview, using HTML data. Once the request is done, the callback (registered in `webview.create()`) is invoked.
PARAMETERS
webview_id |
|
The webview id |
html |
|
The HTML data to display |
options |
|
A table of options for the request. See `webview.open()` |
EXAMPLES
local html = sys.load_resource("/main/data/test.html") local request_id = webview.open_raw(webview_id, html, {hidden = true})
eval(webview_id,code)
Evaluates JavaScript within the context of the currently loaded page (if any). Once the request is done, the callback (registered in `webview.create()`) is invoked. The callback will get the result in the `data["result"]` field.
PARAMETERS
webview_id |
|
The webview id |
code |
|
The JavaScript code to evaluate |
EXAMPLES
local request_id = webview.eval(webview_id, "GetMyFormData()")
set_visible(webview_id,visible)
Shows or hides a webview
PARAMETERS
webview_id |
|
The webview id |
visible |
|
If `0`, hides the webview. If non zero, shows the view |
is_visible(webview_id)
Returns the visibility state of the webview.
PARAMETERS
webview_id |
|
The webview id |
set_position(webview_id,x,y,width,height)
Sets the position and size of the webview
PARAMETERS
webview_id |
|
The webview id |
x |
|
The x position of the webview |
y |
|
The y position of the webview |
width |
|
The width of the webview (-1 to match screen width) |
height |
|
The height of the webview (-1 to match screen height) |