Adds a webview into your app.
A webview is a component where you can display a website into your app layout.
Properties
These are the setter and getter properties for the addWebView Component.
Example - EnjineIO homepage
class Main extends App
{
onStart()
{
this.main = ui.addLayout("main", "Linear", "VCenter,FillXY")
this.web = ui.addWebView(this.main, "https://enjine.io/", "", 0.9, 0.9)
this.web.setOnLoad( this.onLoad )
}
onLoad()
{
ui.showPopup( "Website is loaded!" )
}
}
from hybrid import ui
def OnStart():
main = ui.addLayout("main", "Linear", "VCenter,FillXY")
web = ui.addWebView(main, "https://enjine.io/", "", 0.9, 0.9)
web.setOnLoad(onLoad)
def onLoad():
ui.showPopup("Website is loaded!")
Example - Call a function inside the webview
class Main extends App
{
onStart()
{
this.main = ui.addLayout("main", "Linear", "VCenter,FillXY")
this.web = ui.addWebView(this.main, "", "", 0.9, 0.7)
this.web.setOnLoad( this.onLoad )
this.web.html = '<html>' +
'<head>' +
'<script>' +
'function callFunc( name ) {' +
'alert("Hi " + name + " webview!")' +
'}' +
'<\/script>' +
'<\/head>' +
'<body>' +
'<h2>This is an html.<\/h2>' +
'<\/body>' +
'<\/html>';
}
onLoad()
{
var x = this.web.window.callFunc( "John Doe" )
}
}
from hybrid import ui
from native import app
def OnStart():
global web
main = ui.addLayout("main", "Linear", "VCenter,FillXY")
web = ui.addWebView(main, "", "", 0.9, 0.7)
web.setOnLoad(onLoad)
web.html = '''
<html>
<head>
function callFunc(name) {
app.Alert("Hi " + name + " webview!")
}
</head>
<body>
<h2>This is an html.</h2>
</body>
</html>
'''
def onLoad():
x = web.window.callFunc("John Doe")
Example - Getting returned values from a function in a webview
class Main extends App
{
onStart()
{
this.main = ui.addLayout("main", "Linear", "VCenter,FillXY")
this.web = ui.addWebView(this.main, "", "", 0.9, 0.7)
this.web.setOnLoad( this.onLoad )
this.web.html = '<html>' +
'<head>' +
'<script>' +
'function getProduct(num1, num2)' +
'{' +
'return num1 * num2' +
'}' +
'<\/script>' +
'<\/head>' +
'<body>' +
'<h2>Get some product here!<\/h2>' +
'<\/body>' +
'<\/html>';
}
onLoad()
{
var prod = this.web.window.getProduct(2, 3)
ui.showPopup( "The product is " + prod )
}
}
from hybrid import ui
def OnStart():
global web
main = ui.addLayout("main", "Linear", "VCenter,FillXY")
web = ui.addWebView(main, "", "", 0.9, 0.7)
web.setOnLoad(onLoad)
web.html = '''
<html>
<head>
function getProduct(num1, num2) {
return num1 * num2
}
</head>
<body>
<h2>Get some product here!</h2>
</body>
</html>
'''
def onLoad():
prod = web.window.getProduct(2, 3)
ui.showPopup("The product is " + str(prod))
Example - Manipulate dom inside the webview
class Main extends App
{
onStart()
{
this.loaded = false;
this.main = ui.addLayout("main", "Linear", "VCenter,FillXY")
this.web = ui.addWebView(this.main, "", "", 0.7, 0.5)
this.web.setOnLoad( this.onLoad )
this.web.html = '<html>' +
'<head>' +
'</head>' +
'<body>' +
'<h2 id="my-text">Hi from webview!</h2>' +
'</body>' +
'</html>';
this.btn = ui.addButton(this.main, "Change background color")
this.btn.setOnTouch( this.onTouch )
}
onLoad()
{
this.loaded = true;
}
onTouch()
{
if( this.loaded )
{
const dom = this.web.document
dom.body.style.backgroundColor = "green"
let h2 = dom.getElementById("my-text")
h2.innerText = "New text from parent!"
h2.style.color = "white"
}
else
ui.showPopup( "Webview is not yet loaded!" )
}
}
from hybrid import ui
def OnStart():
global loaded, web
loaded = False
main = ui.addLayout("main", "Linear", "VCenter,FillXY")
web = ui.addWebView(main, "", "", 0.7, 0.5)
web.setOnLoad(onLoad)
web.html = '''
<html>
<head></head>
<body>
<h2 id="my-text">Hi from webview!</h2>
</body>
</html>
'''
btn = ui.addButton(main, "Change background color")
btn.setOnTouch(onTouch)
def onLoad():
global loaded
loaded = True
def onTouch(event):
if loaded:
dom = web.document
dom.body.style.backgroundColor = "green"
h2 = dom.getElementById("my-text")
h2.innerText = "New text from parent!"
h2.style.color = "white"
else:
ui.showPopup("Webview is not yet loaded!")
Methods
The following methods are available on the WebView object:
Boolean: Sets or returns the disabled state of the control.
Boolean: Returns whether the control is visible or not.
Number: Fraction of the parent width.
Number: Fraction of the parent height.
Number: The time in milliseconds.
Number: The z-index. A negative value behaves like `sendBackward` method.
Number: The z-index. A positve value behaves like `bringForward` method.
Number: Border-left thickness in pixels.
Number: Top-Left border radius in pixels.
Number: Top-Right border radius in pixels.
Number: Bottom-Left border radius in pixels.
Number: Bottom-Right border radius in pixels.
Number: Fraction of the component width.
Number: Fraction of the component height. [0-1]
Number: Fraction of the component width. [0-1]
Number: Fraction of the parent width. [0-1]
Number: Fraction of the screen height. [0-1]
Number: The x-scale of the component.Values less than `0` is smaller than the normal. While values greater than `1` is greater than the normal.
Number: The y-scale of the component. Values less than `1` is smaller than the normal. While vaues greater than `1` is greater than the normal.
Number: Fraction of the parent height. [0-1]
Number: Returns the absolute height of the control in pixels.
Number: Returns the absolute distance of the control from the left in pixels.
Number: Returns the absolute distance of the control from the top in pixels.
Number: Returns the absolute width of the control in pixels.
Number: Sets or returns the border thickness in pixels.
Number: Sets or returns the corner radius in pixels.
Number: Sets or returns the height of the control as a fraction of the parent control.
Number: Returns the distance of the control from the left.
Number: Sets or returns the opacity of the control.
Number: Sets or returns the angle of rotation in degrees.
Number: Sets or returns the size of the text within the control.
Number: Sets or returns the text zoom of the page loaded in the web view.
Number: Returns the distance of the control from the top.
Number: Sets or returns the width of the control as a fraction of the parent control.
String: comma “,” separated
String: “The url of the website.”
String: “The type of animation. Here are the available values
`bounce` `flash` `pulse` `rubberBand` `shakeX` `shakeY` `headShake` `swing` `tada` `wobble` `jello` `heartBeat`
`Back Entrances `backInDown` `backInLeft` `backInRight` `backInUp`
`Back Exits `backOutDown` `backOutLeft` `backOutRight` `backOutUp`
`Bouncing Entrances `bounceIn` `bounceInDown` `bounceInLeft` `bounceInRight` `bounceInUp`
`Bouncing exits `bounceOut` `bounceOutDown` `bounceOutLeft` `bounceOutRight` `bounceOutUp`
`Fading entrances `fadeIn` `fadeInDown` `fadeInDownBig` `fadeInLeft` `fadeInLeftBig` `fadeInRight` `fadeInRightBig` `fadeInUp` `fadeInUpBig` `fadeInTopLeft` `fadeInTopRight` `fadeInBottomLeft` `fadeInBottomRight`
`Fading exits `fadeOut` `fadeOutDown` `fadeOutDownBig` `fadeOutLeft` `fadeOutLeftBig` `fadeOutRight` `fadeOutRightBig` `fadeOutUp` `fadeOutUpBig` `fadeOutTopLeft` `fadeOutTopRight` `fadeOutBottomRight` `fadeOutBottomLeft`
`Flippers `flip` `flipInX` `flipInY` `flipOutX` `flipOutY`
`Lightspeed `lightSpeedInRight` `lightSpeedInLeft` `lightSpeedOutRight` `lightSpeedOutLeft`
`Rotating Entrances `rotateIn` `rotateInDownLeft` `rotateInDownRight` `rotateInUpLeft` `rotateInUpRight`
`Rotating Exits `rotateOut` `rotateOutDownLeft` `rotateOutDownRight` `rotateOutUpLeft` `rotateOutUpRight`
`Specials `hinge` `jackInTheBox` `rollIn` `rollOut`
`Zooming Entrances `zoomIn` `zoomInDown` `zoomInLeft` `zoomInRight` `zoomInUp`
`Zooming Exits `zoomOut` `zoomOutDown` `zoomOutLeft` `zoomOutRight` `zoomOutUp`
`Sliding Entrances `slideInDown` `slideInLeft` `slideInRight` `slideInUp`
`Sliding Exits `slideOutDown` `slideOutLeft` `slideOutRight` `slideOutUp`.”
String: “The mode of the measurements. Values can be `px` or `%`”
String: “Border color in hexadecimal form `#rrggbb`”
String: “Border-styles. Values can be `dotted` `dashed` `solid` `double` `groove` `ridge` `inset` and `outset`. Default is `solid`”
String: “Unit. Values are `px` `rem` or `%`.”
String: “`px` or `%`”
String: “The size thickness mode. Can be `px`”
String: “Unit of measurement. Can be `px` or `%` or any css unit of measurement.”
String: A hexadecimal color of the form #rrggbb
String: The path to your image file.
String: Sets or returns the border color. Color is in hexadecimal form #rrggbb
String: Sets or returns the border style. Values can be dotted, dashed, solid, double, groove, ridge, inset and outset. Default is solid.
String: Sets or returns the redirect url when an error occur.
String: Sets or returns the relative path to the font-family use.
String: Setst or returns the html loaded in the iframe.
String: Sets or returns the options of the control.
String: Sets or returns the color of the text.
String: Returns the type of the control.
String: Sets or returns the url of the webview.
String: Sets or returns the visibility of the control.
Object: The parent layout where to add the WebView component.
Object: The pointer event object.
Object: The click event object.
Object: A reference to the webviews window document object.
Object: Returns the parent layout control.
Object: Returns the position of the control. The returned object has left top right and bottom props.
Object: A reference to the webviews window object.
List: Sets or returns the list of blocked urls.
List: Sets or returns the margin of the control. Works on controls with Linear parent only. You can also pass a number to set equal margins for all sides.
List: Sets or returns the padding of the control. You can also pass a number to set equal padding for all sides.
function()
web.animate
Animate the component
web.bringForward
Bring this component forward by a given z-index
web.destroy
Destroy the component
web.getPosition
Returns the position of the component. The return object is of the form `{ left, top, right, bottom
web.gone
Destroy the component
web.hide
Hide the component
web.sendBackward
Bring this component backward by a given z-index
web.setBorder
Sets the border line for the component container
web.setCornerRadius
Sets the corner radius of the component
web.setMargins
Sets the margin of the component
web.setOnContextMenu
Adds a callback function on right click
web.setOnLoad
Adds a event handler for onload event
The example above will call the function Hello defined in the WebView passing
the three arguments which is a text, number and a boolean
web.setOnTouch
Adds a callback handler when the component is touch
web.setPadding
Sets the padding component container
web.setPosition
Sets the position of the component relative to its parent dimensions
web.setScale
Sets the x and y scaling of the component
web.setSize
Sets the size of the component
web.show
Show the component