This version of the documentation is outdated!
Click here for the latest released version.
InAppBrowser
The
InAppBrowser
is a web browser that displays in the app when calling[window.open](window.open.html)
.
var ref = window.open('http://apache.org', '_blank', 'location=yes');
Description
The object returned from a call to [window.open](window.open.html)
.
Methods
- addEventListener
- removeEventListener
- close
- executeScript
- insertCSS
Permissions
Android
app/res/xml/config.xml
<plugin name="InAppBrowser" value="org.apache.cordova.InAppBrowser" />
iOS
config.xml
<plugin name="InAppBrowser" value="CDVInAppBrowser" />
Windows Phone 7 + 8
config.xml
<plugin name="InAppBrowser" />
addEventListener
Adds a listener for an event from the
InAppBrowser
.
ref.addEventListener(eventname, callback);
- ref: reference to the
InAppBrowser
window (InAppBrowser) -
eventname: the event to listen for (String)
- loadstart: event fires when the
InAppBrowser
starts to load a URL. - loadstop: event fires when the
InAppBrowser
finishes loading a URL. - loaderror: event fires when the
InAppBrowser
encounters an error when loading a URL. - exit: event fires when the
InAppBrowser
window is closed.
- loadstart: event fires when the
- callback: the function that executes when the event fires. The function is passed an
InAppBrowserEvent
object as a parameter.
Supported Platforms
- Android
- iOS
- Windows Phone 7 + 8
Quick Example
var ref = window.open('http://apache.org', '_blank', 'location=yes');
ref.addEventListener('loadstart', function() { alert(event.url); });
Full Example
<!DOCTYPE html>
<html>
<head>
<title>InAppBrowser.addEventListener Example</title>
<script type="text/javascript" charset="utf-8" src="cordova-x.x.x.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for device API libraries to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// device APIs are available
//
function onDeviceReady() {
var ref = window.open('http://apache.org', '_blank', 'location=yes');
ref.addEventListener('loadstart', function(event) { alert('start: ' + event.url); });
ref.addEventListener('loadstop', function(event) { alert('stop: ' + event.url); });
ref.addEventListener('loaderror', function(event) { alert('error: ' + event.message); });
ref.addEventListener('exit', function(event) { alert(event.type); });
}
</script>
</head>
<body>
</body>
</html>
removeEventListener
Removes a listener for an event from the
InAppBrowser
.
ref.removeEventListener(eventname, callback);
- ref: reference to the
InAppBrowser
window. (InAppBrowser) -
eventname: the event to stop listening for. (String)
- loadstart: event fires when the
InAppBrowser
starts to load a URL. - loadstop: event fires when the
InAppBrowser
finishes loading a URL. - loaderror: event fires when the
InAppBrowser
encounters an error loading a URL. - exit: event fires when the
InAppBrowser
window is closed.
- loadstart: event fires when the
- callback: the function to execute when the event fires.
The function is passed an
InAppBrowserEvent
object.
Supported Platforms
- Android
- iOS
- Windows Phone 7 + 8
Quick Example
var ref = window.open('http://apache.org', '_blank', 'location=yes');
var myCallback = function() { alert(event.url); }
ref.addEventListener('loadstart', myCallback);
ref.removeEventListener('loadstart', myCallback);
Full Example
<!DOCTYPE html>
<html>
<head>
<title>InAppBrowser.removeEventListener Example</title>
<script type="text/javascript" charset="utf-8" src="cordova-x.x.x.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for device API libraries to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// Global InAppBrowser reference
var iabRef = null;
function iabLoadStart(event) {
alert(event.type + ' - ' + event.url);
}
function iabLoadStop(event) {
alert(event.type + ' - ' + event.url);
}
function iabLoadError(event) {
alert(event.type + ' - ' + event.message);
}
function iabClose(event) {
alert(event.type);
iabRef.removeEventListener('loadstart', iabLoadStart);
iabRef.removeEventListener('loadstop', iabLoadStop);
iabRef.removeEventListener('loaderror', iabLoadError);
iabRef.removeEventListener('exit', iabClose);
}
// device APIs are available
//
function onDeviceReady() {
iabRef = window.open('http://apache.org', '_blank', 'location=yes');
iabRef.addEventListener('loadstart', iabLoadStart);
iabRef.addEventListener('loadstop', iabLoadStop);
iabRef.removeEventListener('loaderror', iabLoadError);
iabRef.addEventListener('exit', iabClose);
}
</script>
</head>
<body>
</body>
</html>
close
Closes the
InAppBrowser
window.
ref.close();
- ref: reference to the
InAppBrowser
window (InAppBrowser)
Supported Platforms
- Android
- iOS
- Windows Phone 7 + 8
- BlackBerry 10
Quick Example
var ref = window.open('http://apache.org', '_blank', 'location=yes');
ref.close();
Full Example
<!DOCTYPE html>
<html>
<head>
<title>InAppBrowser.close Example</title>
<script type="text/javascript" charset="utf-8" src="cordova-x.x.x.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for device API libraries to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// device APIs are available
//
function onDeviceReady() {
var ref = window.open('http://apache.org', '_blank', 'location=yes');
// close InAppBrowser after 5 seconds
setTimeout(function() {
ref.close();
}, 5000);
}
</script>
</head>
<body>
</body>
</html>
executeScript
Injects JavaScript code into the
InAppBrowser
window
ref.executeScript(details, callback);
- ref: reference to the
InAppBrowser
window. (InAppBrowser) - injectDetails: details of the script to run, specifying either a
file
orcode
key. (Object)- file: URL of the script to inject.
- code: Text of the script to inject.
- callback: the function that executes after the JavaScript code is injected.
- If the injected script is of type
code
, the callback executes with a single parameter, which is the return value of the script, wrapped in anArray
. For multi-line scripts, this is the return value of the last statement, or the last expression evaluated.
- If the injected script is of type
Supported Platforms
- Android
- iOS
Quick Example
var ref = window.open('http://apache.org', '_blank', 'location=yes');
ref.addEventListener('loadstop', function() {
ref.executeSript({file: "myscript.js"});
});
Full Example
<!DOCTYPE html>
<html>
<head>
<title>InAppBrowser.executeScript Example</title>
<script type="text/javascript" charset="utf-8" src="cordova-x.x.x.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for device API libraries to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// Global InAppBrowser reference
var iabRef = null;
// Inject our custom JavaScript into the InAppBrowser window
//
function replaceHeaderImage() {
iabRef.executeScript({
code: "var img=document.querySelector('#header img'); img.src='http://cordova.apache.org/images/cordova_bot.png';"
}, function() {
alert("Image Element Successfully Hijacked");
}
}
function iabClose(event) {
iabRef.removeEventListener('loadstop', replaceHeaderImage);
iabRef.removeEventListener('exit', iabClose);
}
// device APIs are available
//
function onDeviceReady() {
iabRef = window.open('http://apache.org', '_blank', 'location=yes');
iabRef.addEventListener('loadstop', replaceHeaderImage);
iabRef.addEventListener('exit', iabClose);
}
</script>
</head>
<body>
</body>
</html>
insertCSS
Injects CSS into the
InAppBrowser
window.
ref.insertCSS(details, callback);
- ref: reference to the
InAppBrowser
window (InAppBrowser) - injectDetails: details of the script to run, specifying either a
file
orcode
key. (Object)- file: URL of the stylesheet to inject.
- code: Text of the stylesheet to inject.
- callback: the function that executes after the CSS is injected.
Supported Platforms
- Android
- iOS
Quick Example
var ref = window.open('http://apache.org', '_blank', 'location=yes');
ref.addEventListener('loadstop', function() {
ref.insertCSS({file: "mystyles.css"});
});
Full Example
<!DOCTYPE html>
<html>
<head>
<title>InAppBrowser.insertCSS Example</title>
<script type="text/javascript" charset="utf-8" src="cordova-x.x.x.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for device API libraries to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// Global InAppBrowser reference
var iabRef = null;
// Inject our custom CSS into the InAppBrowser window
//
function changeBackgroundColor() {
iabRef.insertCSS({
code: "body { background: #ffff00"
}, function() {
alert("Styles Altered");
}
}
function iabClose(event) {
iabRef.removeEventListener('loadstop', changeBackgroundColor);
iabRef.removeEventListener('exit', iabClose);
}
// device APIs are available
//
function onDeviceReady() {
iabRef = window.open('http://apache.org', '_blank', 'location=yes');
iabRef.addEventListener('loadstop', changeBackgroundColor);
iabRef.addEventListener('exit', iabClose);
}
</script>
</head>
<body>
</body>
</html>
InAppBrowserEvent
The object that is passed to the callback function from an
addEventListener
call on an InAppBrowser
object.
Properties
- type: the eventname, either
loadstart
,loadstop
,loaderror
, orexit
. (String) - url: the URL that was loaded. (String)
- code: the error code, only in the case of
loaderror
. (Number) - message: the error message, only in the case of
loaderror
. (String)