====== 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 **[[built_in:app|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 ^
|[[tips_tricks:webview_navigate|WebView.Back()]] | |
|[[tips_tricks:webview_navigate|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 += "";
html += "Hello World!
";
html += "";
html += "";
web.LoadHtml( html, "file:///Sys/" );
}