Version: stable
FUNCTIONS | |
---|---|
webview.create() | |
webview.destroy() | |
webview.open_raw() | |
webview.eval() | |
webview.set_visible() | |
webview.is_visible() | |
webview.set_position() |
CONSTANTS | |
---|---|
CALLBACK_RESULT_URL_OK | |
CALLBACK_RESULT_URL_ERROR | |
CALLBACK_RESULT_URL_LOADING | |
CALLBACK_RESULT_EVAL_OK | |
CALLBACK_RESULT_EVAL_ERROR |
webview.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 |
function |
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)
webview.destroy(webview_id)
Destroys an instance of a webview.
PARAMETERS
webview_id |
number |
The webview id (returned by the `webview.create()` call) |
webview.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 |
number |
The webview id |
html |
string |
The HTML data to display |
options |
table |
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})
webview.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 |
number |
The webview id |
code |
string |
The JavaScript code to evaluate |
EXAMPLES
local request_id = webview.eval(webview_id, "GetMyFormData()")
webview.set_visible(webview_id,visible)
Shows or hides a webview
PARAMETERS
webview_id |
number |
The webview id |
visible |
number |
If `0`, hides the webview. If non zero, shows the view |
webview.is_visible(webview_id)
Returns the visibility state of the webview.
PARAMETERS
webview_id |
number |
The webview id |
webview.set_position(webview_id,x,y,width,height)
Sets the position and size of the webview
PARAMETERS
webview_id |
number |
The webview id |
x |
number |
The x position of the webview |
y |
number |
The y position of the webview |
width |
number |
The width of the webview (-1 to match screen width) |
height |
number |
The height of the webview (-1 to match screen height) |