Table of Contents

WebView control

(Information and examples taken from the DroidScript documentation)

Description

You can create a control to display local or remote web pages in your App using the CreateWebView method of the app object:

web = app.CreateWebView( width, height, options, zoom );

options include “IgnoreErrors”, “NoScrollBars”, “ScrollFade”, “Overview”, “AllowZoom”, “UseBrowser”.

If you are loading remote web pages, then you might want to use the SetOnProgress method to set the name of a callback function that you want called to report the progress of loading the page.

You can use the LoadUrl method to load an internal or external web page or the LoadHtml method to load text directly from within your App.

 web.LoadUrl( url,options );
 web.LoadHtml( html,baseFolder,options );

Note: Using a WebView can be a good way of displaying colored and formatted text areas in your App. If you set the BackColor to a transparent color you can show formatted text over a background image.

If you need to, you can use the Execute method to execute JavaScript code within the WebView.

 web.Execute( text );

Methods

Some controls use the same methods.
For examples of the same methods look here.

Method Description
WebView.Back()
WebView.CanGoBack()
WebView.CanGoForward()
WebView.Capture(filename) captures jpeg of visible page
WebView.ClearHistory()
WebView.Execute( code )
WebView.Forward()
WebView.GetAbsHeight()
WebView.GetAbsWidth()
WebView.GetHeight()
WebView.GetPosition()
WebView.GetType()
WebView.GetUrl() returns the current url
WebView.GetVisibility()
WebView.GetWidth()
WebView.LoadHtml( html,base,options )
WebView.LoadUrl( url,options )
WebView.Print() KitKat or later only
WebView.SetBackColor( color )
WebView.SetBackGradient( color1,color2,color3,p4,p5,p6,p7 )
WebView.SetBackGradientRadial( x,y,r,color1,color2,color3,p7 )
WebView.SetBackground( imagefile,options )
WebView.SetMargins( left,top,right,bottom )
WebView.SetOnProgress( callback )
WebView.SetPadding( width,height,top,bottom )
WebView.SetPosition( left,top,width,height )
WebView.SetScale( x,y )
WebView.SetSize( width,height )
WebView.SetVisibility( HideShow )

Example - Remote

function OnStart()
{
  lay = app.CreateLayout( "linear", "VCenter,FillXY" );
 
   web = app.CreateWebView( 0.8, 0.8 );
   web.SetOnProgress( web_OnProgess );
   lay.AddChild( web );
 
   app.AddLayout( lay );
 
   app.ShowProgress("Loading...");
   web.LoadUrl( "http:///www.google.com" );
}
 
function web_OnProgess( progress )
{
   app.Debug( "progress = " + progress );
   if( progress==100 ) app.HideProgress();
}

Example - Local

function OnStart()
{
  lay = app.CreateLayout( "linear", "VCenter,FillXY" );
 
   web = app.CreateWebView( 0.8, 0.8 );
   web.SetBackColor( "#00000000" );
   lay.AddChild( web );
 
   app.AddLayout( lay );
 
   web.LoadUrl( "file:///Sys/Html/Page.htm" );
}

Example - Direct

function OnStart()
{
  lay = app.CreateLayout( "linear", "VCenter,FillXY" );
 
   web = app.CreateWebView( 0.8, 0.8 );
   web.SetBackColor( "#00000000" );
   lay.AddChild( web );
 
   app.AddLayout( lay );
 
   var html = "<html><head>";
   html += "<meta name='viewport' content='width=device-width'>";
   html += "</head><body style='color:#fff'>Hello World!<br>";
   html += "<img src='Img/Droid2.png'>";
   html += "</body></html>";
   web.LoadHtml( html, "file:///Sys/" );
}