Usage

All web view features can be accessed through WebView class. Before using it, we need to import the namespace.

using VoxelBusters.CoreLibrary;
using VoxelBusters.EssentialKit;

Register to events

Once after importing the namespace, for getting the events fired from Web View, it's required to register to the events first.

private void OnEnable()
{
    // register for events
    WebView.OnShow          += OnWebViewShow;
    WebView.OnHide          += OnWebViewHide;
    WebView.OnLoadStart     += OnWebViewLoadStart;
    WebView.OnLoadFinish    += OnWebViewLoadFinish;
}

private void OnDisable()
{
    // register for events
    WebView.OnShow          -= OnWebViewShow;
    WebView.OnHide          -= OnWebViewHide;
    WebView.OnLoadStart     -= OnWebViewLoadStart;
    WebView.OnLoadFinish    -= OnWebViewLoadFinish;
}

Events get fired for various reasons such as when web view hides/shows, when a page loading starts/finishes.

Create Web View Instance

Create an instance of WebView with CreateInstance. This instance holds the properties of how you want to present and operate with your webview.

Set Frame Size

Once after registering the events and creating the WebView instance with CreateInstance, you need to set the frame size of the webview. You can set the frame size in multiple ways.

Set normalized size

Set in terms of screen size

Set full screen

Show

For showing webview, you need to call Show method. Make sure you set the frame size of the webview else, it won't be visible.

You can show the webview anytime but optionally you show only once the page/url is loaded successfully. AutoShowOnLoadFinish property of WebView allows to show the webview once the page is loaded.

For getting an event when a webview is shown, you can listen to WebView.OnShow event.

Hide

Call Hide in-case if you want to hide the webview. Calling a hidden webview is a no-operation.

For getting an event when a webview is hidden, you can listen to WebView.OnHide event.\

Appearance Styles

It's possible to set different controls to show up with the webview. These controls can help to use WebView based on your use-cases.

Default mode doesn't have any controls and this appearance is ideal for ads like use-case

Load Content

For loading a url, you need to pass well qualified url to LoadURL method.

Load local file url

Load web url

Load Html string

Load data

You can also load data content in the web view. Ex : Loading byte data of a file

Load texture

Loading texture loads the texture into the web view.

Run Java Script code

You can run javascript code using RunJavaScript method. But before using this method, you need set JavaScriptEnabled property of web view to true.

Controlling data

Reload

Reload the current web page data with Reload method. It reloads the total web page and resets to default.

Stop Loading

Stop loading if you want to abort the current loading of web url.

Clear Cache

Clear the cached content with ClearCache. This will clear the complete browsing history.

Receive messages from web view to unity

For getting messages from web view to unity, you need to register a scheme ahead. Schemes are the first part of a valid url.

For ex: https://www.google.com has https as scheme. ftp://user:password@host:post/path has ftp as scheme

In-case if you need to pass data from web view, you can have your own custom scheme and register it.

Let's say you want to send some data on pressing a button. You can href to a custom url with scheme unity. For ex: unity://accesstoken?key=value

So first you need to add the scheme

Once after adding the scheme you can get all of the url's which are getting loaded with unity as scheme. The url's to unity are passed through OnURLSchemeMatchFound event. So, make sure you register to WebView.OnURLSchemeMatchFound ahead.

Additional settings

There are additional properties which can be controlled with in a web view.

Property

Description

ScalesPageToFit

A boolean value indicating whether web view scales webpages to fit the view and the user can change the scale.

CanBounce

A Boolean value that controls whether the web view bounces past the edge of content and back again.

BackgroundColor

The background color of the webview

Progress

The value indicates the progress of load request

IsLoading

A boolean value indicating whether this webview is loading content

Last updated

Was this helpful?