This version of the documentation is outdated!
Click here for the latest released version.
InAppBrowser
The InAppBrowser is a web-browser that is shown in your app when you use the
[window.open](window.open.html)
call.
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 fired when the InAppBrowser starts to load a URL loadstop - event fired when the InAppBrowser finished loading a URL loaderror - event fired when the InAppBrowser encounters an error loading a URL exit - event fired when the InAppBrowser window is closed
- callback: the function that is called when the event is fired.
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');
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 Cordova to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// Cordova is ready
//
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 fired when the InAppBrowser starts to load a URL loadstop - event fired when the InAppBrowser finished loading a URL loaderror - event fired when the InAppBrowser encounters an error loading a URL exit - event fired when the InAppBrowser window is closed
- callback: the function that was to be called when the event is fired.
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 Cordova 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);
}
// Cordova is ready
//
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 Cordova to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// Cordova is ready
//
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 ot run (
Object
)-
Supported keys: (exactly one of "file" or "code" should be present)
"file" - URL of the script to inject "code" - Text of the script to inject
-
- callback: the function that is to be called in the Cordova application after the JavaScript code is injected.
- If the injected script is of type "code", then the callback will be called with a single argument, which is the return value of the script, wrapped in an Array. (For multi-line scripts, this is the return value of the last statement, or the last expression evaluated.)
Supported Platforms
- Android
- iOS
Quick Example
var ref = window.open('http://apache.org', '_blank', 'location=yes');
ref.addEventListener('loadstop', function() {
ref.executeScript({file: "myscript.js"});
});
Full Example
<!DOCTYPE html>
<html>
<head>
<title>InAppBrowser.executeScript Example</title>
<script type="text/javascript" charset="utf-8" src="cordova-2.5.0.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for Cordova 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);
}
// Cordova is ready
//
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 (
Object
)-
Supported keys: (exactly one of "file" or "code" should be present)
"file" - URL of the stylesheet to inject "code" - Text of the stylesheet to inject
-
- callback: the function that is to be called in the Cordova application 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-2.5.0.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for Cordova 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);
}
// Cordova is ready
//
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 (
String
) - one of loadstart, loadstop, loaderror or exit - url: the URL that was loaded (
String
) - code: the error code (
Number
) - only in the case of loaderror - message: the error message (
String
) - only in the case of loaderror