webview

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

Functions

create()

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()

destroy(webview_id)

Destroys an instance of a webview.

PARAMETERS

webview_id The webview id (returned by the `webview.create()` call)

open_raw()

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()

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()

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()

is_visible(webview_id)

Returns the visibility state of the webview.

PARAMETERS

webview_id The webview id

set_position()

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)

Constants

CALLBACK_RESULT_URL_OK


CALLBACK_RESULT_URL_ERROR


CALLBACK_RESULT_URL_LOADING


CALLBACK_RESULT_EVAL_OK


CALLBACK_RESULT_EVAL_ERROR