<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name="format-detection" content="telephone=no">
    <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width" />
    <meta name="description" content="Open an in-app browser window. ">

    <title>
        
            
                Inappbrowser - Apache Cordova
            
        
    </title>

    <link rel="SHORTCUT ICON" href="/favicon.ico"/>

    

    
    

    <link rel="canonical" href="https://cordova.apache.org/docs/en/dev/reference/cordova-plugin-inappbrowser/">

    <!-- CSS -->
    <link rel="stylesheet" type="text/css" href="/static/css/main.css">
    <link rel="stylesheet" type="text/css" href="/static/css/lib/syntax.css">

    <!-- Fonts -->
    <!-- For attribution information, see www/attributions.html -->
    <link href='https://fonts.googleapis.com/css?family=Raleway:700,400,300,700italic,400italic,300italic' rel='stylesheet' type='text/css'>

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
        <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
        <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
    <script type="text/javascript">
        var disqus_developer = 1; // this would set it to developer mode
    </script>

    <!-- JS -->
    <script defer type="text/javascript" src="/static/js/lib/jquery-2.1.1.min.js"></script>
    <script defer type="text/javascript" src="/static/js/lib/bootstrap.min.js"></script>

    <!-- Matomo -->
<script>
    var _paq = window._paq = window._paq || [];
    /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
    _paq.push(['trackPageView']);
    _paq.push(['enableLinkTracking']);
    (function() {
      var u="https://analytics.apache.org/";
      _paq.push(['setTrackerUrl', u+'matomo.php']);
      _paq.push(['setSiteId', '16']);
      var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
      g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
    })();
  </script>
  <!-- End Matomo Code -->
  

</head>

<body>
    <header>
    <a class="scroll-point pt-top" name="top"></a>
    <nav class="navbar navbar-inverse navbar-fixed-top">
        <div class="container-fluid">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
                    <span class="sr-only">Toggle navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                <a class="navbar-brand" href="/"><img id="logo_top" src="/static/img/cordova-logo-newbrand.svg"/></a>
            </div>
            <div id="navbar" class="navbar-collapse collapse">
                <div class="nav_bar_center">
                    <ul class="nav navbar-nav">
                        <li class="active">
                            <a href="/docs/en/latest/">Documentation</a>
                        </li>
                        <li >
                            <a href="/plugins">Plugins</a>
                        </li>
                        <li >
                            <a href="/blog" id="blog_button">Blog<span class="badge" id="new_blog_count"></span></a>
                        </li>
                        <li >
                            <a href="/contribute">Contribute</a>
                        </li>
                        <li >
                            <a href="/contribute/team.html">Team</a>
                        </li>
                        <li>
                            <a href="/#getstarted">Get Started</a>
                        </li>
                        <li>
                            <form class="navbar-form navbar-right" id="header-search-form" role="search">
                                <div class="input-group">
                                    
                                </div>
                            </form>
                        </li>
                    </ul>
                </div>
            </div><!--/.navbar-collapse -->
        </div>
    </nav>
    <div id="_fixed_navbar_spacer" style="padding-top:50px"></div>
</header>















<div class="docs">

    <!-- Table of Contents -->
    <div class="hidden-xs hidden-sm site-toc-container">
        <ul class="site-toc">
    

    <li>
        
            <span class="toc-section-heading">
                Getting Started
            </span>
        

        
        

        
        <ul class="site-toc">
    

    <li>
        
            <a class="" href="/docs/en/dev/guide/overview/index.html">
                Overview
            </a>
            
        

        
        

        
    </li>
    

    <li>
        
            <a class="" href="/docs/en/dev/guide/cli/installation.html">
                Installation
            </a>
            
        

        
        

        
    </li>
    

    <li>
        
            <a class="" href="/docs/en/dev/guide/cli/index.html">
                Creating an App
            </a>
            
        

        
        

        
    </li>
    
</ul>

        
    </li>
    

    <li>
        
            <span class="toc-section-heading">
                Cordova Projects
            </span>
        

        
        

        
        <ul class="site-toc">
    

    <li>
        
            <a class="" href="/docs/en/dev/reference/cordova-cli/index.html">
                CLI Commands
            </a>
            
        

        
        

        
    </li>
    

    <li>
        
            <a class="" href="/docs/en/dev/guide/support/index.html">
                Platform Support
            </a>
            
        

        
        

        
    </li>
    

    <li>
        
            <a class="" href="/docs/en/dev/platform_pinning/index.html">
                Platform Pinning
            </a>
            
        

        
        

        
    </li>
    

    <li>
        
            <a class="" href="/docs/en/dev/platform_plugin_versioning_ref/index.html">
                Version Management
            </a>
            
        

        
        

        
    </li>
    

    <li>
        
            <a class="" href="/docs/en/dev/guide/appdev/hooks/index.html">
                Hooks
            </a>
            
        

        
        

        
    </li>
    
</ul>

        
    </li>
    

    <li>
        
            <span class="toc-section-heading">
                App Development
            </span>
        

        
        

        
        <ul class="site-toc">
    

    <li>
        
            <span class="toc-section-heading">
                Platforms
            </span>
        

        
        

        
        <ul class="site-toc">
    

    <li>
        
            <a class="" href="/docs/en/dev/guide/platforms/android/index.html">
                Android
            </a>
            
        

        
        

        
    </li>
    

    <li>
        
            <a class="" href="/docs/en/dev/guide/platforms/ios/index.html">
                iOS
            </a>
            
        

        
        

        
    </li>
    

    <li>
        
            <a class="" href="/docs/en/dev/guide/platforms/electron/index.html">
                Electron
            </a>
            
        

        
        

        
    </li>
    
</ul>

        
    </li>
    

    <li>
        
            <span class="toc-section-heading">
                Customization
            </span>
        

        
        

        
        <ul class="site-toc">
    

    <li>
        
            <a class="" href="/docs/en/dev/config_ref/images.html">
                Icons
            </a>
            
        

        
        

        
    </li>
    

    <li>
        
            <a class="" href="/docs/en/dev/core/features/splashscreen/index.html">
                Splash Screen
            </a>
            
        

        
        

        
    </li>
    
</ul>

        
    </li>
    

    <li>
        
            <span class="toc-section-heading">
                Security & Privacy
            </span>
        

        
        

        
        <ul class="site-toc">
    

    <li>
        
            <a class="" href="/docs/en/dev/guide/appdev/security/index.html">
                Security
            </a>
            
        

        
        

        
    </li>
    

    <li>
        
            <a class="" href="/docs/en/dev/guide/appdev/privacy/index.html">
                Privacy
            </a>
            
        

        
        

        
    </li>
    

    <li>
        
            <a class="" href="/docs/en/dev/guide/appdev/allowlist/index.html">
                Allow List
            </a>
            
        

        
        

        
    </li>
    
</ul>

        
    </li>
    

    <li>
        
            <a class="" href="/docs/en/dev/cordova/storage/storage.html">
                Data Storage
            </a>
            
        

        
        

        
    </li>
    
</ul>

        
    </li>
    

    <li>
        
            <span class="toc-section-heading">
                Plugin Development
            </span>
        

        
        

        
        <ul class="site-toc">
    

    <li>
        
            <a class="" href="/docs/en/dev/guide/hybrid/plugins/index.html">
                Create a Plugin
            </a>
            
        

        
        

        
    </li>
    

    <li>
        
            <span class="toc-section-heading">
                Support a Platform
            </span>
        

        
        

        
        <ul class="site-toc">
    

    <li>
        
            <a class="" href="/docs/en/dev/guide/platforms/android/plugin.html">
                Android
            </a>
            
        

        
        

        
    </li>
    

    <li>
        
            <a class="" href="/docs/en/dev/guide/platforms/ios/plugin.html">
                iOS
            </a>
            
        

        
        

        
    </li>
    
</ul>

        
    </li>
    

    <li>
        
            <a class="" href="/docs/en/dev/plugin_ref/plugman.html">
                Use Plugman
            </a>
            
        

        
        

        
    </li>
    
</ul>

        
    </li>
    

    <li>
        
            <span class="toc-section-heading">
                References
            </span>
        

        
        

        
        <ul class="site-toc">
    

    <li>
        
            <a class="" href="/docs/en/dev/config_ref/index.html">
                Config.xml API
            </a>
            
        

        
        

        
    </li>
    

    <li>
        
            <a class="" href="/docs/en/dev/plugin_ref/spec.html">
                Plugin.xml API
            </a>
            
        

        
        

        
    </li>
    

    <li>
        
            <a class="" href="/docs/en/dev/cordova/events/events.html">
                Cordova JavaScript API
            </a>
            
        

        
        

        
    </li>
    
</ul>

        
    </li>
    

    <li>
        
            <span class="toc-section-heading">
                Resources
            </span>
        

        
        

        
        <ul class="site-toc">
    

    <li>
        
            <a class="" href="/docs/en/dev/third-party/index.html">
                Third-party Tools
            </a>
            
        

        
        

        
    </li>
    

    <li>
        
            <a class="" href="/docs/en/dev/guide/cli/template.html">
                App Templates
            </a>
            
        

        
        

        
    </li>
    

    <li>
        
            <a class="" href="/docs/en/dev/guide/next/index.html">
                Next Steps
            </a>
            
        

        
        

        
    </li>
    
</ul>

        
    </li>
    

    <li>
        
            <span class="toc-section-heading">
                Plugins
            </span>
        

        
        

        
        <ul class="site-toc">
    

    <li>
        
            <a class="" href="/docs/en/dev/reference/cordova-plugin-battery-status/index.html">
                Battery Status
            </a>
            
        

        
        

        
    </li>
    

    <li>
        
            <a class="" href="/docs/en/dev/reference/cordova-plugin-camera/index.html">
                Camera
            </a>
            
        

        
        

        
    </li>
    

    <li>
        
            <a class="" href="/docs/en/dev/reference/cordova-plugin-device/index.html">
                Device
            </a>
            
        

        
        

        
    </li>
    

    <li>
        
            <a class="" href="/docs/en/dev/reference/cordova-plugin-dialogs/index.html">
                Dialogs
            </a>
            
        

        
        

        
    </li>
    

    <li>
        
            <a class="" href="/docs/en/dev/reference/cordova-plugin-file/index.html">
                File
            </a>
            
        

        
        

        
    </li>
    

    <li>
        
            <a class="" href="/docs/en/dev/reference/cordova-plugin-geolocation/index.html">
                Geolocation
            </a>
            
        

        
        

        
    </li>
    

    <li>
        
            <a class="" href="/docs/en/dev/reference/cordova-plugin-inappbrowser/index.html">
                Inappbrowser
            </a>
            
        

        
        

        
    </li>
    

    <li>
        
            <a class="" href="/docs/en/dev/reference/cordova-plugin-media/index.html">
                Media
            </a>
            
        

        
        

        
    </li>
    

    <li>
        
            <a class="" href="/docs/en/dev/reference/cordova-plugin-media-capture/index.html">
                Media Capture
            </a>
            
        

        
        

        
    </li>
    

    <li>
        
            <a class="" href="/docs/en/dev/reference/cordova-plugin-network-information/index.html">
                Network Information
            </a>
            
        

        
        

        
    </li>
    

    <li>
        
            <a class="" href="/docs/en/dev/reference/cordova-plugin-screen-orientation/index.html">
                Screen Orientation
            </a>
            
        

        
        

        
    </li>
    

    <li>
        
            <a class="" href="/docs/en/dev/reference/cordova-plugin-splashscreen/index.html">
                Browser Splashscreen
            </a>
            
        

        
        

        
    </li>
    

    <li>
        
            <a class="" href="/docs/en/dev/reference/cordova-plugin-statusbar/index.html">
                Statusbar
            </a>
            
        

        
        

        
    </li>
    

    <li>
        
            <a class="" href="/docs/en/dev/reference/cordova-plugin-vibration/index.html">
                Vibration
            </a>
            
        

        
        

        
    </li>
    
</ul>

        
    </li>
    

    <li>
        
            <span class="toc-section-heading">
                Advanced Topics
            </span>
        

        
        

        
        <ul class="site-toc">
    

    <li>
        
            <a class="" href="/docs/en/dev/guide/hybrid/webviews/index.html">
                Embed Cordova in native apps
            </a>
            
        

        
        

        
    </li>
    
</ul>

        
    </li>
    
</ul>

    </div>

    <!-- Page content -->
    <div class="page-content-container">
        <div class="page-content">
            <div class="content-header">

                <!-- ToC Dropdown (for XS and SM sizes only) -->
                <div class="toc-dropdown dropdown visible-xs-block visible-sm-block">
                    <button class="btn btn-default dropdown-toggle" type="button" id="tocDropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
                        Table of Contents
                        <span class="caret"></span>
                    </button>
                    <ul class="dropdown-menu">
                        




<li>
    <a class="" href="/docs/en/dev/guide/overview/index.html">
        Overview
    </a>
</li>




<li>
    <a class="" href="/docs/en/dev/guide/cli/installation.html">
        Installation
    </a>
</li>




<li>
    <a class="" href="/docs/en/dev/guide/cli/index.html">
        Creating an App
    </a>
</li>










<li>
    <a class="" href="/docs/en/dev/reference/cordova-cli/index.html">
        CLI Commands
    </a>
</li>




<li>
    <a class="" href="/docs/en/dev/guide/support/index.html">
        Platform Support
    </a>
</li>




<li>
    <a class="" href="/docs/en/dev/platform_pinning/index.html">
        Platform Pinning
    </a>
</li>




<li>
    <a class="" href="/docs/en/dev/platform_plugin_versioning_ref/index.html">
        Version Management
    </a>
</li>




<li>
    <a class="" href="/docs/en/dev/guide/appdev/hooks/index.html">
        Hooks
    </a>
</li>













<li>
    <a class="" href="/docs/en/dev/guide/platforms/android/index.html">
        Android
    </a>
</li>




<li>
    <a class="" href="/docs/en/dev/guide/platforms/ios/index.html">
        iOS
    </a>
</li>




<li>
    <a class="" href="/docs/en/dev/guide/platforms/electron/index.html">
        Electron
    </a>
</li>










<li>
    <a class="" href="/docs/en/dev/config_ref/images.html">
        Icons
    </a>
</li>




<li>
    <a class="" href="/docs/en/dev/core/features/splashscreen/index.html">
        Splash Screen
    </a>
</li>










<li>
    <a class="" href="/docs/en/dev/guide/appdev/security/index.html">
        Security
    </a>
</li>




<li>
    <a class="" href="/docs/en/dev/guide/appdev/privacy/index.html">
        Privacy
    </a>
</li>




<li>
    <a class="" href="/docs/en/dev/guide/appdev/allowlist/index.html">
        Allow List
    </a>
</li>







<li>
    <a class="" href="/docs/en/dev/cordova/storage/storage.html">
        Data Storage
    </a>
</li>










<li>
    <a class="" href="/docs/en/dev/guide/hybrid/plugins/index.html">
        Create a Plugin
    </a>
</li>







<li>
    <a class="" href="/docs/en/dev/guide/platforms/android/plugin.html">
        Android
    </a>
</li>




<li>
    <a class="" href="/docs/en/dev/guide/platforms/ios/plugin.html">
        iOS
    </a>
</li>







<li>
    <a class="" href="/docs/en/dev/plugin_ref/plugman.html">
        Use Plugman
    </a>
</li>










<li>
    <a class="" href="/docs/en/dev/config_ref/index.html">
        Config.xml API
    </a>
</li>




<li>
    <a class="" href="/docs/en/dev/plugin_ref/spec.html">
        Plugin.xml API
    </a>
</li>




<li>
    <a class="" href="/docs/en/dev/cordova/events/events.html">
        Cordova JavaScript API
    </a>
</li>










<li>
    <a class="" href="/docs/en/dev/third-party/index.html">
        Third-party Tools
    </a>
</li>




<li>
    <a class="" href="/docs/en/dev/guide/cli/template.html">
        App Templates
    </a>
</li>




<li>
    <a class="" href="/docs/en/dev/guide/next/index.html">
        Next Steps
    </a>
</li>










<li>
    <a class="" href="/docs/en/dev/reference/cordova-plugin-battery-status/index.html">
        Battery Status
    </a>
</li>




<li>
    <a class="" href="/docs/en/dev/reference/cordova-plugin-camera/index.html">
        Camera
    </a>
</li>




<li>
    <a class="" href="/docs/en/dev/reference/cordova-plugin-device/index.html">
        Device
    </a>
</li>




<li>
    <a class="" href="/docs/en/dev/reference/cordova-plugin-dialogs/index.html">
        Dialogs
    </a>
</li>




<li>
    <a class="" href="/docs/en/dev/reference/cordova-plugin-file/index.html">
        File
    </a>
</li>




<li>
    <a class="" href="/docs/en/dev/reference/cordova-plugin-geolocation/index.html">
        Geolocation
    </a>
</li>




<li>
    <a class="" href="/docs/en/dev/reference/cordova-plugin-inappbrowser/index.html">
        Inappbrowser
    </a>
</li>




<li>
    <a class="" href="/docs/en/dev/reference/cordova-plugin-media/index.html">
        Media
    </a>
</li>




<li>
    <a class="" href="/docs/en/dev/reference/cordova-plugin-media-capture/index.html">
        Media Capture
    </a>
</li>




<li>
    <a class="" href="/docs/en/dev/reference/cordova-plugin-network-information/index.html">
        Network Information
    </a>
</li>




<li>
    <a class="" href="/docs/en/dev/reference/cordova-plugin-screen-orientation/index.html">
        Screen Orientation
    </a>
</li>




<li>
    <a class="" href="/docs/en/dev/reference/cordova-plugin-splashscreen/index.html">
        Browser Splashscreen
    </a>
</li>




<li>
    <a class="" href="/docs/en/dev/reference/cordova-plugin-statusbar/index.html">
        Statusbar
    </a>
</li>




<li>
    <a class="" href="/docs/en/dev/reference/cordova-plugin-vibration/index.html">
        Vibration
    </a>
</li>










<li>
    <a class="" href="/docs/en/dev/guide/hybrid/webviews/index.html">
        Embed Cordova in native apps
    </a>
</li>







                    </ul>
                </div>

                
                
                    <a class="edit hidden-xs hidden-sm" href="https://github.com/apache/cordova-plugin-inappbrowser/blob/master/README.md"><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> </a>

                
                

                <!-- Version dropdown -->
                <div class="dropdown">
                    <button class="btn btn-default dropdown-toggle" type="button" id="versionDropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
                        dev
                        
                        <span class="caret"></span>
                    </button>
                    <ul class="dropdown-menu" aria-labelledby="versionDropdown">

                        <!-- List versions available in this language -->
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/dev/" class="missing-page">
                                
                                    <span class="selected">
                                        
                                dev
                                
                            
                                    </span>
                                
                            </a>
                        </li>
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/latest/" class="missing-page">
                                
                                    
                                12.x
                                
                                    (Latest)
                                
                            
                                
                            </a>
                        </li>
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/11.x/" class="missing-page">
                                
                                    
                                11.x
                                
                            
                                
                            </a>
                        </li>
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/10.x/" class="missing-page">
                                
                                    
                                10.x
                                
                            
                                
                            </a>
                        </li>
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/9.x/" class="missing-page">
                                
                                    
                                9.x
                                
                            
                                
                            </a>
                        </li>
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/8.x/" class="missing-page">
                                
                                    
                                8.x
                                
                            
                                
                            </a>
                        </li>
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/7.x/" class="missing-page">
                                
                                    
                                7.x
                                
                            
                                
                            </a>
                        </li>
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/6.x/" class="missing-page">
                                
                                    
                                6.x
                                
                            
                                
                            </a>
                        </li>
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/5.4.0/" class="missing-page">
                                
                                    
                                5.4.0
                                
                            
                                
                            </a>
                        </li>
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/5.1.1/" class="missing-page">
                                
                                    
                                5.1.1
                                
                            
                                
                            </a>
                        </li>
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/5.0.0/" class="missing-page">
                                
                                    
                                5.0.0
                                
                            
                                
                            </a>
                        </li>
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/4.0.0/" class="missing-page">
                                
                                    
                                4.0.0
                                
                            
                                
                            </a>
                        </li>
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/3.6.0/" class="missing-page">
                                
                                    
                                3.6.0
                                
                            
                                
                            </a>
                        </li>
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/3.5.0/" class="missing-page">
                                
                                    
                                3.5.0
                                
                            
                                
                            </a>
                        </li>
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/3.4.0/" class="missing-page">
                                
                                    
                                3.4.0
                                
                            
                                
                            </a>
                        </li>
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/3.3.0/" class="missing-page">
                                
                                    
                                3.3.0
                                
                            
                                
                            </a>
                        </li>
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/3.2.0/" class="missing-page">
                                
                                    
                                3.2.0
                                
                            
                                
                            </a>
                        </li>
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/3.1.0/" class="missing-page">
                                
                                    
                                3.1.0
                                
                            
                                
                            </a>
                        </li>
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/3.0.0/" class="missing-page">
                                
                                    
                                3.0.0
                                
                            
                                
                            </a>
                        </li>
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/2.9.0/" class="missing-page">
                                
                                    
                                2.9.0
                                
                            
                                
                            </a>
                        </li>
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/2.8.0/" class="missing-page">
                                
                                    
                                2.8.0
                                
                            
                                
                            </a>
                        </li>
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/2.7.0/" class="missing-page">
                                
                                    
                                2.7.0
                                
                            
                                
                            </a>
                        </li>
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/2.6.0/" class="missing-page">
                                
                                    
                                2.6.0
                                
                            
                                
                            </a>
                        </li>
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/2.5.0/" class="missing-page">
                                
                                    
                                2.5.0
                                
                            
                                
                            </a>
                        </li>
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/2.4.0/" class="missing-page">
                                
                                    
                                2.4.0
                                
                            
                                
                            </a>
                        </li>
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/2.3.0/" class="missing-page">
                                
                                    
                                2.3.0
                                
                            
                                
                            </a>
                        </li>
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/2.2.0/" class="missing-page">
                                
                                    
                                2.2.0
                                
                            
                                
                            </a>
                        </li>
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/2.1.0/" class="missing-page">
                                
                                    
                                2.1.0
                                
                            
                                
                            </a>
                        </li>
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/2.0.0/" class="missing-page">
                                
                                    
                                2.0.0
                                
                            
                                
                            </a>
                        </li>
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/1.9.0/" class="missing-page">
                                
                                    
                                1.9.0
                                
                            
                                
                            </a>
                        </li>
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/1.8.1/" class="missing-page">
                                
                                    
                                1.8.1
                                
                            
                                
                            </a>
                        </li>
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/1.8.0/" class="missing-page">
                                
                                    
                                1.8.0
                                
                            
                                
                            </a>
                        </li>
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/1.7.0/" class="missing-page">
                                
                                    
                                1.7.0
                                
                            
                                
                            </a>
                        </li>
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/1.6.1/" class="missing-page">
                                
                                    
                                1.6.1
                                
                            
                                
                            </a>
                        </li>
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/1.6.0/" class="missing-page">
                                
                                    
                                1.6.0
                                
                            
                                
                            </a>
                        </li>
                        
                        <li>
                            
                            

                            

                            
                            
                            

                            

                            <a href="/docs/en/1.5.0/" class="missing-page">
                                
                                    
                                1.5.0
                                
                            
                                
                            </a>
                        </li>
                        
                    </ul>
                </div>
            </div>

            
            
            

            
            

            <!-- Show warnings for special versions -->
            <!-- dev warning -->
            
                <div class="alert docs-alert alert-info" role="alert">
                    <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                    This version of the documentation is under development!
                    <a href="/docs/en/latest/">
                        Click here for the latest released version.
                    </a>
                </div>
            

            <!-- outdated warning -->
            

            <!-- plugin version warning -->
            
                <div class="alert alert-warning docs-alert" role="alert">
                    <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                     master.
                    <a href="https://github.com/apache/cordova-plugin-inappbrowser/releases">
                        
                    </a>
                </div>
            

            <div id="page-toc-source">
                <!-- WARNING: This file is generated. See fetch_docs.js. -->

<!--
# license: Licensed to the Apache Software Foundation (ASF) under one
#         or more contributor license agreements.  See the NOTICE file
#         distributed with this work for additional information
#         regarding copyright ownership.  The ASF licenses this file
#         to you under the Apache License, Version 2.0 (the
#         "License"); you may not use this file except in compliance
#         with the License.  You may obtain a copy of the License at
#
#           http://www.apache.org/licenses/LICENSE-2.0
#
#         Unless required by applicable law or agreed to in writing,
#         software distributed under the License is distributed on an
#         "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
#         KIND, either express or implied.  See the License for the
#         specific language governing permissions and limitations
#         under the License.
-->

<h1>cordova-plugin-inappbrowser</h1>

<p><a href="https://github.com/apache/cordova-plugin-inappbrowser/actions/workflows/android.yml"><img src="https://github.com/apache/cordova-plugin-inappbrowser/actions/workflows/android.yml/badge.svg" alt="Android Testsuite" /></a> <a href="https://github.com/apache/cordova-plugin-inappbrowser/actions/workflows/chrome.yml"><img src="https://github.com/apache/cordova-plugin-inappbrowser/actions/workflows/chrome.yml/badge.svg" alt="Chrome Testsuite" /></a> <a href="https://github.com/apache/cordova-plugin-inappbrowser/actions/workflows/ios.yml"><img src="https://github.com/apache/cordova-plugin-inappbrowser/actions/workflows/ios.yml/badge.svg" alt="iOS Testsuite" /></a> <a href="https://github.com/apache/cordova-plugin-inappbrowser/actions/workflows/lint.yml"><img src="https://github.com/apache/cordova-plugin-inappbrowser/actions/workflows/lint.yml/badge.svg" alt="Lint Test" /></a></p>

<p>You can show helpful articles, videos, and web resources inside of your app. Users can view web pages without leaving your app.</p>

<blockquote>
  <p>To get a few ideas, check out the <a href="#sample">sample</a> at the bottom of this page or go straight to the <a href="#reference">reference</a> content.</p>
</blockquote>

<p>This plugin provides a web browser view that displays when calling <code>cordova.InAppBrowser.open()</code>.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>var ref = cordova.InAppBrowser.open('https://apache.org', '_blank', 'location=yes');
</code></pre></div></div>

<h3><code>window.open</code></h3>

<p>The <code>cordova.InAppBrowser.open()</code> function is defined to be a drop-in replacement
for the <code>window.open()</code> function.  Existing <code>window.open()</code> calls can use the
InAppBrowser window, by replacing window.open:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>window.open = cordova.InAppBrowser.open;
</code></pre></div></div>

<p>If you change the browsers <code>window.open</code> function this way, it can have unintended side
effects (especially if this plugin is included only as a dependency of another
plugin).</p>

<p>The InAppBrowser window behaves like a standard web browser,
and can&#39;t access Cordova APIs. For this reason, the InAppBrowser is recommended
if you need to load third-party (untrusted) content, instead of loading that
into the main Cordova webview. The InAppBrowser is not subject to the
whitelist, nor is opening links in the system browser.</p>

<p>The InAppBrowser provides by default its own GUI controls for the user (back,
forward, done).</p>

<h2>Installation</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cordova plugin add cordova-plugin-inappbrowser
</code></pre></div></div>

<p>If you want all page loads in your app to go through the InAppBrowser, you can
simply hook <code>window.open</code> during initialization.  For example:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
    window.open = cordova.InAppBrowser.open;
}
</code></pre></div></div>

<h3>Preferences</h3>

<h4><b>config.xml</b></h4>
<ul>
  <li><b>InAppBrowserStatusBarStyle [iOS only]</b>: (string, options &#39;lightcontent&#39;, &#39;darkcontent&#39; or &#39;default&#39;. Defaults to &#39;default&#39;) set text color style for iOS. &#39;lightcontent&#39; is intended for use on dark backgrounds. &#39;darkcontent&#39; is only available since iOS 13 and intended for use on light backgrounds.
```xml</li>
</ul>
<preference name="InAppBrowserStatusBarStyle" value="lightcontent" />

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
## cordova.InAppBrowser.open

Opens a URL in a new `InAppBrowser` instance, the current browser
instance, or the system browser.

    var ref = cordova.InAppBrowser.open(url, target, options);

- __ref__: Reference to the `InAppBrowser` window when the target is set to `'_blank'`. _(InAppBrowser)_

- __url__: The URL to load _(String)_. Call `encodeURI()` on this if the URL contains Unicode characters.

- __target__: The target in which to load the URL, an optional parameter that defaults to `_self`. _(String)_

    - `_self`: Opens in the Cordova WebView if the URL is in the white list, otherwise it opens in the `InAppBrowser`.
    - `_blank`: Opens in the `InAppBrowser`.
    - `_system`: Opens in the system's web browser.

- __options__: Options for the `InAppBrowser`. Optional, defaulting to: `location=yes`. _(String)_

    The `options` string must not contain any blank space, and each feature's name/value pairs must be separated by a comma. Feature names are case insensitive.

    All platforms support:

    - __location__: Set to `yes` or `no` to turn the `InAppBrowser`'s location bar on or off.

    Android supports these additional options:

    - __hidden__: set to `yes` to create the browser and load the page, but not show it. The loadstop event fires when loading is complete. Omit or set to `no` (default) to have the browser open and load normally.
    - __beforeload__: set to enable the `beforeload` event to modify which pages are actually loaded in the browser. Accepted values are `get` to intercept only GET requests, `post` to intercept on POST requests or `yes` to intercept both GET &amp; POST requests. Note that POST requests are not currently supported and will be ignored (if you set `beforeload=post` it will raise an error).
    - __clearcache__: set to `yes` to have the browser's cookie cache cleared before the new window is opened
    - __clearsessioncache__: set to `yes` to have the session cookie cache cleared before the new window is opened
    - __closebuttoncaption__: set to a string to use as the close button's caption instead of a X. Note that you need to localize this value yourself.
    - __closebuttoncolor__: set to a valid hex color string, for example: `#00ff00`, and it will change the
    close button color from default, regardless of being a text or default X. Only has effect if user has location set to `yes`.
    - __footer__: set to `yes` to show a close button in the footer similar to the iOS __Done__ button. 
    The close button will appear the same as for the header hence use __closebuttoncaption__ and __closebuttoncolor__ to set its properties.
    - __footercolor__: set to a valid hex color string, for example `#00ff00` or `#CC00ff00` (`#aarrggbb`) , and it will change the footer color from default.
    Only has effect if user has __footer__ set to `yes`.
    - __hardwareback__: set to `yes` to use the hardware back button to navigate backwards through the `InAppBrowser`'s history. If there is no previous page, the `InAppBrowser` will close.  The default value is `yes`, so you must set it to `no` if you want the back button to simply close the InAppBrowser.
    - __hidenavigationbuttons__: set to `yes` to hide the navigation buttons on the location toolbar, only has effect if user has location set to `yes`. The default value is `no`.
    - __hideurlbar__: set to `yes` to hide the url bar on the location toolbar, only has effect if user has location set to `yes`. The default value is `no`.
    - __navigationbuttoncolor__: set to a valid hex color string, for example: `#00ff00`, and it will change the color of both navigation buttons from default. Only has effect if user has location set to `yes` and not hidenavigationbuttons set to `yes`.
    - __toolbarcolor__: set to a valid hex color string, for example: `#00ff00`, and it will change the color the toolbar from default. Only has effect if user has location set to `yes`.
    - __lefttoright__: Set to `yes` to swap positions of the navigation buttons and the close button. Specifically, navigation buttons go to the right and close button to the left. Default value is `no`.
    - __zoom__: set to `yes` to show Android browser's zoom controls, set to `no` to hide them.  Default value is `yes`.
    - __mediaPlaybackRequiresUserAction__: Set to `yes` to prevent HTML5 audio or video from autoplaying (defaults to `no`).
    - __shouldPauseOnSuspend__: Set to `yes` to make InAppBrowser WebView to pause/resume with the app to stop background audio (this may be required to avoid Google Play issues like described in [CB-11013](https://issues.apache.org/jira/browse/CB-11013)).
    - __useWideViewPort__: Sets whether the WebView should enable support for the "viewport" HTML meta tag or should use a wide viewport. When the value of the setting is `no`, the layout width is always set to the width of the WebView control in device-independent (CSS) pixels. When the value is `yes` and the page contains the viewport meta tag, the value of the width specified in the tag is used. If the page does not contain the tag or does not provide a width, then a wide viewport will be used. (defaults to `yes`).
    - __fullscreen__: Sets whether the InappBrowser WebView is displayed fullscreen or not. In fullscreen mode, the status bar is hidden. Default value is `yes`.

    iOS supports these additional options:

    - __hidden__: set to `yes` to create the browser and load the page, but not show it. The loadstop event fires when loading is complete. Omit or set to `no` (default) to have the browser open and load normally.
    - __beforeload__: set to enable the `beforeload` event to modify which pages are actually loaded in the browser. Accepted values are `get` to intercept only GET requests, `post` to intercept on POST requests or `yes` to intercept both GET &amp; POST requests. Note that POST requests are not currently supported and will be ignored (if you set `beforeload=post` it will raise an error).
    - __clearcache__: set to `yes` to have the browser's cookie cache cleared before the new window is opened
    - __clearsessioncache__: set to `yes` to have the session cookie cache cleared before the new window is opened. For WKWebView, requires iOS 11+ on target device.
    - __cleardata__: set to `yes` to have the browser's entire local storage cleared (cookies, HTML5 local storage, IndexedDB, etc.) before the new window is opened
    - __closebuttoncolor__: set as a valid hex color string, for example: `#00ff00`, to change from the default __Done__ button's color. Only applicable if toolbar is not disabled.
    - __closebuttoncaption__: set to a string to use as the __Done__ button's caption. Note that you need to localize this value yourself.
    - __disallowoverscroll__: Set to `yes` or `no` (default is `no`). Turns on/off the the bounce of the WKWebView's UIScrollView.
    - __hidenavigationbuttons__:  set to `yes` or `no` to turn the toolbar navigation buttons on or off (defaults to `no`). Only applicable if toolbar is not disabled.
    - __navigationbuttoncolor__:  set as a valid hex color string, for example: `#00ff00`, to change from the default color. Only applicable if navigation buttons are visible.
    - __toolbar__:  set to `yes` or `no` to turn the toolbar on or off for the InAppBrowser (defaults to `yes`)
    - __toolbarcolor__: set as a valid hex color string, for example: `#00ff00`, to change from the default color of the toolbar. Only applicable if toolbar is not disabled.
    - __toolbartranslucent__:  set to `yes` or `no` to make the toolbar translucent(semi-transparent)  (defaults to `yes`). Only applicable if toolbar is not disabled.
    - __lefttoright__: Set to `yes` to swap positions of the navigation buttons and the close button. Specifically, close button goes to the right and navigation buttons to the left.
    - __enableViewportScale__:  Set to `yes` or `no` to prevent viewport scaling through a meta tag (defaults to `no`).
    - __mediaPlaybackRequiresUserAction__: Set to `yes` to prevent HTML5 audio or video from autoplaying (defaults to `no`).
    - __allowInlineMediaPlayback__: Set to `yes` or `no` to allow in-line HTML5 media playback, displaying within the browser window rather than a device-specific playback interface. The HTML's `video` element must also include the `webkit-playsinline` attribute (defaults to `no`).
    - __presentationstyle__:  Set to `pagesheet`, `formsheet` or `fullscreen` to set the [presentation style](https://developer.apple.com/documentation/uikit/uimodalpresentationstyle) (defaults to `fullscreen`).
    - __transitionstyle__: Set to `fliphorizontal`, `crossdissolve` or `coververtical` to set the [transition style](https://developer.apple.com/documentation/uikit/uimodaltransitionstyle) (defaults to `coververtical`).
    - __toolbarposition__: Set to `top` or `bottom` (default is `bottom`). Causes the toolbar to be at the top or bottom of the window.
    - __hidespinner__: Set to `yes` or `no` to change the visibility of the loading indicator (defaults to `no`).


### Supported Platforms

- Android
- Browser
- iOS

### Example

    var ref = cordova.InAppBrowser.open('https://apache.org', '_blank', 'location=yes');
    var ref2 = cordova.InAppBrowser.open(encodeURI('http://ja.m.wikipedia.org/wiki/ハングル'), '_blank', 'location=yes');

### OSX Quirks

At the moment the only supported target in OSX is `_system`.

`_blank` and `_self` targets are not yet implemented and are ignored silently. Pull requests and patches to get these to work are greatly appreciated.

### iOS Quirks

Since the introduction of iPadOS 13, iPads try to adapt their content mode / user agent for the optimal browsing experience. This may result in iPads having their user agent set to Macintosh, making it hard to detect them as mobile devices using user agent string sniffing. You can change this with the `PreferredContentMode` preference in `config.xml`.

```xml
&lt;preference name="PreferredContentMode" value="mobile" /&gt;
</code></pre></div></div>

<p>The example above forces the user agent to contain <code>iPad</code>. The other option is to use the value <code>desktop</code> to turn the user agent to <code>Macintosh</code>.</p>

<h3>Browser Quirks</h3>

<ul>
  <li>
    <p>Plugin is implemented via iframe,</p>
  </li>
  <li>
    <p>Navigation history (<code>back</code> and <code>forward</code> buttons in LocationBar) is not implemented.</p>
  </li>
</ul>

<h2>InAppBrowser</h2>

<p>The object returned from a call to <code>cordova.InAppBrowser.open</code> when the target is set to <code>'_blank'</code>.</p>

<h3>Methods</h3>

<ul>
  <li>addEventListener</li>
  <li>removeEventListener</li>
  <li>close</li>
  <li>show</li>
  <li>hide</li>
  <li>executeScript</li>
  <li>insertCSS</li>
</ul>

<h2>InAppBrowser.addEventListener</h2>

<blockquote>
  <p>Adds a listener for an event from the <code>InAppBrowser</code>. (Only available when the target is set to <code>'_blank'</code>)</p>
</blockquote>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ref.addEventListener(eventname, callback);
</code></pre></div></div>

<ul>
  <li>
    <p><strong>ref</strong>: reference to the <code>InAppBrowser</code> window <em>(InAppBrowser)</em></p>
  </li>
  <li>
    <p><strong>eventname</strong>: the event to listen for <em>(String)</em></p>

    <ul>
      <li><strong>loadstart</strong>: event fires when the <code>InAppBrowser</code> starts to load a URL.</li>
      <li><strong>loadstop</strong>: event fires when the <code>InAppBrowser</code> finishes loading a URL.</li>
      <li><strong>loaderror</strong>: event fires when the <code>InAppBrowser</code> encounters an error when loading a URL.</li>
      <li><strong>exit</strong>: event fires when the <code>InAppBrowser</code> window is closed.</li>
      <li><strong>beforeload</strong>: event fires when the <code>InAppBrowser</code> decides whether to load an URL or not (only with option <code>beforeload</code> set).</li>
      <li><strong>message</strong>: event fires when the <code>InAppBrowser</code> receives a message posted from the page loaded inside the <code>InAppBrowser</code> Webview.</li>
      <li><strong>download</strong>: <em>(Android Only)</em> event fires when the <code>InAppBrowser</code> loads a URL that leads in downloading of a file.</li>
    </ul>
  </li>
  <li>
    <p><strong>callback</strong>: the function that executes when the event fires. The function is passed an <code>InAppBrowserEvent</code> object as a parameter.</p>
  </li>
</ul>

<h2>Example</h2>

<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
<span class="kd">var</span> <span class="nx">inAppBrowserRef</span><span class="p">;</span>

<span class="kd">function</span> <span class="nx">showHelp</span><span class="p">(</span><span class="nx">url</span><span class="p">)</span> <span class="p">{</span>

    <span class="kd">var</span> <span class="nx">target</span> <span class="o">=</span> <span class="dl">"</span><span class="s2">_blank</span><span class="dl">"</span><span class="p">;</span>

    <span class="kd">var</span> <span class="nx">options</span> <span class="o">=</span> <span class="dl">"</span><span class="s2">location=yes,hidden=yes,beforeload=yes</span><span class="dl">"</span><span class="p">;</span>

    <span class="nx">inAppBrowserRef</span> <span class="o">=</span> <span class="nx">cordova</span><span class="p">.</span><span class="nx">InAppBrowser</span><span class="p">.</span><span class="nx">open</span><span class="p">(</span><span class="nx">url</span><span class="p">,</span> <span class="nx">target</span><span class="p">,</span> <span class="nx">options</span><span class="p">);</span>

    <span class="nx">inAppBrowserRef</span><span class="p">.</span><span class="nx">addEventListener</span><span class="p">(</span><span class="dl">'</span><span class="s1">loadstart</span><span class="dl">'</span><span class="p">,</span> <span class="nx">loadStartCallBack</span><span class="p">);</span>

    <span class="nx">inAppBrowserRef</span><span class="p">.</span><span class="nx">addEventListener</span><span class="p">(</span><span class="dl">'</span><span class="s1">loadstop</span><span class="dl">'</span><span class="p">,</span> <span class="nx">loadStopCallBack</span><span class="p">);</span>

    <span class="nx">inAppBrowserRef</span><span class="p">.</span><span class="nx">addEventListener</span><span class="p">(</span><span class="dl">'</span><span class="s1">loaderror</span><span class="dl">'</span><span class="p">,</span> <span class="nx">loadErrorCallBack</span><span class="p">);</span>

    <span class="nx">inAppBrowserRef</span><span class="p">.</span><span class="nx">addEventListener</span><span class="p">(</span><span class="dl">'</span><span class="s1">beforeload</span><span class="dl">'</span><span class="p">,</span> <span class="nx">beforeloadCallBack</span><span class="p">);</span>

    <span class="nx">inAppBrowserRef</span><span class="p">.</span><span class="nx">addEventListener</span><span class="p">(</span><span class="dl">'</span><span class="s1">message</span><span class="dl">'</span><span class="p">,</span> <span class="nx">messageCallBack</span><span class="p">);</span>
<span class="p">}</span>

<span class="kd">function</span> <span class="nx">loadStartCallBack</span><span class="p">()</span> <span class="p">{</span>

    <span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">#status-message</span><span class="dl">'</span><span class="p">).</span><span class="nx">text</span><span class="p">(</span><span class="dl">"</span><span class="s2">loading please wait ...</span><span class="dl">"</span><span class="p">);</span>

<span class="p">}</span>

<span class="kd">function</span> <span class="nx">loadStopCallBack</span><span class="p">()</span> <span class="p">{</span>

    <span class="k">if</span> <span class="p">(</span><span class="nx">inAppBrowserRef</span> <span class="o">!=</span> <span class="kc">undefined</span><span class="p">)</span> <span class="p">{</span>

        <span class="nx">inAppBrowserRef</span><span class="p">.</span><span class="nx">insertCSS</span><span class="p">({</span> <span class="na">code</span><span class="p">:</span> <span class="dl">"</span><span class="s2">body{font-size: 25px;}</span><span class="dl">"</span> <span class="p">});</span>

        <span class="nx">inAppBrowserRef</span><span class="p">.</span><span class="nx">executeScript</span><span class="p">({</span> <span class="na">code</span><span class="p">:</span> <span class="dl">"</span><span class="se">\</span><span class="s2">
            var message = 'this is the message';</span><span class="se">\</span><span class="s2">
            var messageObj = {my_message: message};</span><span class="se">\</span><span class="s2">
            var stringifiedMessageObj = JSON.stringify(messageObj);</span><span class="se">\</span><span class="s2">
            webkit.messageHandlers.cordova_iab.postMessage(stringifiedMessageObj);</span><span class="dl">"</span>
        <span class="p">});</span>

        <span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">#status-message</span><span class="dl">'</span><span class="p">).</span><span class="nx">text</span><span class="p">(</span><span class="dl">""</span><span class="p">);</span>

        <span class="nx">inAppBrowserRef</span><span class="p">.</span><span class="nx">show</span><span class="p">();</span>
    <span class="p">}</span>

<span class="p">}</span>

<span class="kd">function</span> <span class="nx">loadErrorCallBack</span><span class="p">(</span><span class="nx">params</span><span class="p">)</span> <span class="p">{</span>

    <span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">#status-message</span><span class="dl">'</span><span class="p">).</span><span class="nx">text</span><span class="p">(</span><span class="dl">""</span><span class="p">);</span>

    <span class="kd">var</span> <span class="nx">scriptErrorMesssage</span> <span class="o">=</span>
       <span class="dl">"</span><span class="s2">alert('Sorry we cannot open that page. Message from the server is : </span><span class="dl">"</span>
       <span class="o">+</span> <span class="nx">params</span><span class="p">.</span><span class="nx">message</span> <span class="o">+</span> <span class="dl">"</span><span class="s2">');</span><span class="dl">"</span>

    <span class="nx">inAppBrowserRef</span><span class="p">.</span><span class="nx">executeScript</span><span class="p">({</span> <span class="na">code</span><span class="p">:</span> <span class="nx">scriptErrorMesssage</span> <span class="p">},</span> <span class="nx">executeScriptCallBack</span><span class="p">);</span>

    <span class="nx">inAppBrowserRef</span><span class="p">.</span><span class="nx">close</span><span class="p">();</span>

    <span class="nx">inAppBrowserRef</span> <span class="o">=</span> <span class="kc">undefined</span><span class="p">;</span>

<span class="p">}</span>

<span class="kd">function</span> <span class="nx">executeScriptCallBack</span><span class="p">(</span><span class="nx">params</span><span class="p">)</span> <span class="p">{</span>

    <span class="k">if</span> <span class="p">(</span><span class="nx">params</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span>

        <span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">#status-message</span><span class="dl">'</span><span class="p">).</span><span class="nx">text</span><span class="p">(</span>
           <span class="dl">"</span><span class="s2">Sorry we couldn't open that page. Message from the server is : '</span><span class="dl">"</span>
           <span class="o">+</span> <span class="nx">params</span><span class="p">.</span><span class="nx">message</span> <span class="o">+</span> <span class="dl">"</span><span class="s2">'</span><span class="dl">"</span><span class="p">);</span>
    <span class="p">}</span>

<span class="p">}</span>

<span class="kd">function</span> <span class="nx">beforeloadCallBack</span><span class="p">(</span><span class="nx">params</span><span class="p">,</span> <span class="nx">callback</span><span class="p">)</span> <span class="p">{</span>

    <span class="k">if</span> <span class="p">(</span><span class="nx">params</span><span class="p">.</span><span class="nx">url</span><span class="p">.</span><span class="nx">startsWith</span><span class="p">(</span><span class="dl">"</span><span class="s2">http://www.example.com/</span><span class="dl">"</span><span class="p">))</span> <span class="p">{</span>

        <span class="c1">// Load this URL in the inAppBrowser.</span>
        <span class="nx">callback</span><span class="p">(</span><span class="nx">params</span><span class="p">.</span><span class="nx">url</span><span class="p">);</span>
    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>

        <span class="c1">// The callback is not invoked, so the page will not be loaded.</span>
        <span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">#status-message</span><span class="dl">'</span><span class="p">).</span><span class="nx">text</span><span class="p">(</span><span class="dl">"</span><span class="s2">This browser only opens pages on http://www.example.com/</span><span class="dl">"</span><span class="p">);</span>
    <span class="p">}</span>

<span class="p">}</span>

<span class="kd">function</span> <span class="nx">messageCallBack</span><span class="p">(</span><span class="nx">params</span><span class="p">){</span>
    <span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">#status-message</span><span class="dl">'</span><span class="p">).</span><span class="nx">text</span><span class="p">(</span><span class="dl">"</span><span class="s2">message received: </span><span class="dl">"</span><span class="o">+</span><span class="nx">params</span><span class="p">.</span><span class="nx">data</span><span class="p">.</span><span class="nx">my_message</span><span class="p">);</span>
<span class="p">}</span>

</code></pre></div></div>
<h4>Download event Example</h4>

<p>Whenever the InAppBrowser receives or locates to a url which leads in downloading a file, the callback assigned to the &quot;download&quot; event is called. The parameter passed to this callback is an object with the the following properties</p>

<ul>
  <li><strong>type</strong> <em>it contains the String value &quot;download&quot; always</em></li>
  <li><strong>url</strong> <em>The url that leaded to the downloading of file. Basically, the download link of file</em></li>
  <li><strong>userAgent</strong> <em>User Agent of the webview</em></li>
  <li><strong>contentDisposition</strong> <em>If the url contains &quot;content-disposition&quot; header, then this property holds the value of that field else this field is empty</em></li>
  <li><strong>contentLength</strong> <em>If the link of the file allows to obtain file size then this property holds the file size else it contains int value 0</em></li>
  <li><strong>mimetype</strong> <em>The MIME type of the file</em></li>
</ul>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
function downloadListener(params){
    var url = params.url;
    var mimetype = params.mimetype;

    var xhr = new XMLHttpRequest();
    xhr.open("GET", params.url);
    xhr.onload = function() {
        var content = xhr.responseText;
    };
    xhr.send();

}

</code></pre></div></div>

<h3>InAppBrowserEvent Properties</h3>

<ul>
  <li><strong>type</strong>: the eventname, either <code>loadstart</code>, <code>loadstop</code>, <code>loaderror</code>, <code>message</code> or <code>exit</code>. <em>(String)</em></li>
  <li><strong>url</strong>: the URL that was loaded. <em>(String)</em></li>
  <li><strong>code</strong>: the error code, only in the case of <code>loaderror</code>. <em>(Number)</em></li>
  <li><strong>message</strong>: the error message, only in the case of <code>loaderror</code>. <em>(String)</em></li>
  <li><strong>data</strong>: the message contents , only in the case of <code>message</code>. A stringified JSON object. <em>(String)</em></li>
</ul>

<h3>Supported Platforms</h3>

<ul>
  <li>Android</li>
  <li>Browser</li>
  <li>iOS</li>
</ul>

<h3>Browser Quirks</h3>

<p><code>loadstart</code>, <code>loaderror</code>, <code>message</code> events are not fired.</p>

<h3>Quick Example</h3>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>var ref = cordova.InAppBrowser.open('https://apache.org', '_blank', 'location=yes');
ref.addEventListener('loadstart', function(event) { alert(event.url); });
</code></pre></div></div>

<h2>InAppBrowser.removeEventListener</h2>

<blockquote>
  <p>Removes a listener for an event from the <code>InAppBrowser</code>. (Only available when the target is set to <code>'_blank'</code>)</p>
</blockquote>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ref.removeEventListener(eventname, callback);
</code></pre></div></div>

<ul>
  <li>
    <p><strong>ref</strong>: reference to the <code>InAppBrowser</code> window. <em>(InAppBrowser)</em></p>
  </li>
  <li>
    <p><strong>eventname</strong>: the event to stop listening for. <em>(String)</em></p>

    <ul>
      <li><strong>loadstart</strong>: event fires when the <code>InAppBrowser</code> starts to load a URL.</li>
      <li><strong>loadstop</strong>: event fires when the <code>InAppBrowser</code> finishes loading a URL.</li>
      <li><strong>loaderror</strong>: event fires when the <code>InAppBrowser</code> encounters an error loading a URL.</li>
      <li><strong>exit</strong>: event fires when the <code>InAppBrowser</code> window is closed.</li>
      <li><strong>message</strong>: event fires when the <code>InAppBrowser</code> receives a message posted from the page loaded inside the <code>InAppBrowser</code> Webview.</li>
      <li><strong>download</strong>: <em>(Android only)</em> event fires when the <code>InAppBrowser</code> loads a URL that leads in downloading of a file.</li>
    </ul>
  </li>
  <li>
    <p><strong>callback</strong>: the function to execute when the event fires.
The function is passed an <code>InAppBrowserEvent</code> object.</p>
  </li>
</ul>

<h3>Supported Platforms</h3>

<ul>
  <li>Android</li>
  <li>Browser</li>
  <li>iOS</li>
</ul>

<h3>Quick Example</h3>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>var ref = cordova.InAppBrowser.open('https://apache.org', '_blank', 'location=yes');
var myCallback = function(event) { alert(event.url); }
ref.addEventListener('loadstart', myCallback);
ref.removeEventListener('loadstart', myCallback);
</code></pre></div></div>

<h2>InAppBrowser.close</h2>

<blockquote>
  <p>Closes the <code>InAppBrowser</code> window.</p>
</blockquote>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ref.close();
</code></pre></div></div>

<ul>
  <li><strong>ref</strong>: reference to the <code>InAppBrowser</code> window <em>(InAppBrowser)</em></li>
</ul>

<h3>Supported Platforms</h3>

<ul>
  <li>Android</li>
  <li>Browser</li>
  <li>iOS</li>
</ul>

<h3>Quick Example</h3>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>var ref = cordova.InAppBrowser.open('https://apache.org', '_blank', 'location=yes');
ref.close();
</code></pre></div></div>

<h2>InAppBrowser.show</h2>

<blockquote>
  <p>Displays an InAppBrowser window that was opened hidden. Calling this has no effect if the InAppBrowser was already visible.</p>
</blockquote>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ref.show();
</code></pre></div></div>

<ul>
  <li><strong>ref</strong>: reference to the InAppBrowser window (<code>InAppBrowser</code>)</li>
</ul>

<h3>Supported Platforms</h3>

<ul>
  <li>Android</li>
  <li>Browser</li>
  <li>iOS</li>
</ul>

<h3>Quick Example</h3>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>var ref = cordova.InAppBrowser.open('https://apache.org', '_blank', 'hidden=yes');
// some time later...
ref.show();
</code></pre></div></div>

<h2>InAppBrowser.hide</h2>

<blockquote>
  <p>Hides the InAppBrowser window. Calling this has no effect if the InAppBrowser was already hidden.</p>
</blockquote>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ref.hide();
</code></pre></div></div>

<ul>
  <li><strong>ref</strong>: reference to the InAppBrowser window (<code>InAppBrowser</code>)</li>
</ul>

<h3>Supported Platforms</h3>

<ul>
  <li>Android</li>
  <li>iOS</li>
</ul>

<h3>Quick Example</h3>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>var ref = cordova.InAppBrowser.open('https://apache.org', '_blank');
// some time later...
ref.hide();
</code></pre></div></div>

<h2>InAppBrowser.executeScript</h2>

<blockquote>
  <p>Injects JavaScript code into the <code>InAppBrowser</code> window. (Only available when the target is set to <code>'_blank'</code>)</p>
</blockquote>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ref.executeScript(details, callback);
</code></pre></div></div>

<ul>
  <li>
    <p><strong>ref</strong>: reference to the <code>InAppBrowser</code> window. <em>(InAppBrowser)</em></p>
  </li>
  <li><strong>injectDetails</strong>: details of the script to run, specifying either a <code>file</code> or <code>code</code> key. <em>(Object)</em>
    <ul>
      <li><strong>file</strong>: URL of the script to inject.</li>
      <li><strong>code</strong>: Text of the script to inject.</li>
    </ul>
  </li>
  <li><strong>callback</strong>: the function that executes after the JavaScript code is injected.
    <ul>
      <li>If the injected script is of type <code>code</code>, the callback executes
with a single parameter, which is the return value of the
script, wrapped in an <code>Array</code>. For multi-line scripts, this is
the return value of the last statement, or the last expression
evaluated.</li>
    </ul>
  </li>
</ul>

<h3>Supported Platforms</h3>

<ul>
  <li>Android</li>
  <li>Browser</li>
  <li>iOS</li>
</ul>

<h3>Quick Example</h3>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>var ref = cordova.InAppBrowser.open('https://apache.org', '_blank', 'location=yes');
ref.addEventListener('loadstop', function() {
    ref.executeScript({file: "myscript.js"});
});
</code></pre></div></div>

<h3>Browser Quirks</h3>

<ul>
  <li>only <strong>code</strong> key is supported.</li>
</ul>

<h2>InAppBrowser.insertCSS</h2>

<blockquote>
  <p>Injects CSS into the <code>InAppBrowser</code> window. (Only available when the target is set to <code>'_blank'</code>)</p>
</blockquote>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ref.insertCSS(details, callback);
</code></pre></div></div>

<ul>
  <li>
    <p><strong>ref</strong>: reference to the <code>InAppBrowser</code> window <em>(InAppBrowser)</em></p>
  </li>
  <li><strong>injectDetails</strong>: details of the script to run, specifying either a <code>file</code> or <code>code</code> key. <em>(Object)</em>
    <ul>
      <li><strong>file</strong>: URL of the stylesheet to inject.</li>
      <li><strong>code</strong>: Text of the stylesheet to inject.</li>
    </ul>
  </li>
  <li><strong>callback</strong>: the function that executes after the CSS is injected.</li>
</ul>

<h3>Supported Platforms</h3>

<ul>
  <li>Android</li>
  <li>iOS</li>
</ul>

<h3>Quick Example</h3>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>var ref = cordova.InAppBrowser.open('https://apache.org', '_blank', 'location=yes');
ref.addEventListener('loadstop', function() {
    ref.insertCSS({file: "mystyles.css"});
}); __
</code></pre></div></div>

<h2><a id="sample"></a>Sample: Show help pages with an InAppBrowser</h2>

<p>You can use this plugin to show helpful documentation pages within your app. Users can view online help documents and then close them without leaving the app.</p>

<p>Here&#39;s a few snippets that show how you do this.</p>

<ul>
  <li><a href="#give">Give users a way to ask for help</a>.</li>
  <li><a href="#load">Load a help page</a>.</li>
  <li><a href="#let">Let users know that you&#39;re getting their page ready</a>.</li>
  <li><a href="#show">Show the help page</a>.</li>
  <li><a href="#handle">Handle page errors</a>.</li>
</ul>

<h3><a id="give"></a>Give users a way to ask for help</h3>

<p>There&#39;s lots of ways to do this in your app. A drop down list is a simple way to do that.</p>

<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
<span class="nt">&lt;select</span> <span class="na">id=</span><span class="s">"help-select"</span><span class="nt">&gt;</span>
    <span class="nt">&lt;option</span> <span class="na">value=</span><span class="s">"default"</span><span class="nt">&gt;</span>Need help?<span class="nt">&lt;/option&gt;</span>
    <span class="nt">&lt;option</span> <span class="na">value=</span><span class="s">"article"</span><span class="nt">&gt;</span>Show me a helpful article<span class="nt">&lt;/option&gt;</span>
    <span class="nt">&lt;option</span> <span class="na">value=</span><span class="s">"video"</span><span class="nt">&gt;</span>Show me a helpful video<span class="nt">&lt;/option&gt;</span>
    <span class="nt">&lt;option</span> <span class="na">value=</span><span class="s">"search"</span><span class="nt">&gt;</span>Search for other topics<span class="nt">&lt;/option&gt;</span>
<span class="nt">&lt;/select&gt;</span>

</code></pre></div></div>

<p>Gather the users choice in the <code>onDeviceReady</code> function of the page and then send an appropriate URL to a helper function in some shared library file. Our helper function is named <code>showHelp()</code> and we&#39;ll write that function next.</p>

<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
<span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">#help-select</span><span class="dl">'</span><span class="p">).</span><span class="nx">on</span><span class="p">(</span><span class="dl">'</span><span class="s1">change</span><span class="dl">'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span>

    <span class="kd">var</span> <span class="nx">url</span><span class="p">;</span>

    <span class="k">switch</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">value</span><span class="p">)</span> <span class="p">{</span>

        <span class="k">case</span> <span class="dl">"</span><span class="s2">article</span><span class="dl">"</span><span class="p">:</span>
            <span class="nx">url</span> <span class="o">=</span> <span class="dl">"</span><span class="s2">https://cordova.apache.org/docs/en/latest/</span><span class="dl">"</span>
                        <span class="o">+</span> <span class="dl">"</span><span class="s2">reference/cordova-plugin-inappbrowser/index.html</span><span class="dl">"</span><span class="p">;</span>
            <span class="k">break</span><span class="p">;</span>

        <span class="k">case</span> <span class="dl">"</span><span class="s2">video</span><span class="dl">"</span><span class="p">:</span>
            <span class="nx">url</span> <span class="o">=</span> <span class="dl">"</span><span class="s2">https://youtu.be/F-GlVrTaeH0</span><span class="dl">"</span><span class="p">;</span>
            <span class="k">break</span><span class="p">;</span>

        <span class="k">case</span> <span class="dl">"</span><span class="s2">search</span><span class="dl">"</span><span class="p">:</span>
            <span class="nx">url</span> <span class="o">=</span> <span class="dl">"</span><span class="s2">https://www.google.com/#q=inAppBrowser+plugin</span><span class="dl">"</span><span class="p">;</span>
            <span class="k">break</span><span class="p">;</span>
    <span class="p">}</span>

    <span class="nx">showHelp</span><span class="p">(</span><span class="nx">url</span><span class="p">);</span>

<span class="p">});</span>

</code></pre></div></div>

<h3><a id="load"></a>Load a help page</h3>

<p>We&#39;ll use the <code>open</code> function to load the help page. We&#39;re setting the <code>hidden</code> property to <code>yes</code> so that we can show the browser only after the page content has loaded. That way, users don&#39;t see a blank browser while they wait for content to appear. When the <code>loadstop</code> event is raised, we&#39;ll know when the content has loaded. We&#39;ll handle that event shortly.</p>

<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
<span class="kd">function</span> <span class="nx">showHelp</span><span class="p">(</span><span class="nx">url</span><span class="p">)</span> <span class="p">{</span>

    <span class="kd">var</span> <span class="nx">target</span> <span class="o">=</span> <span class="dl">"</span><span class="s2">_blank</span><span class="dl">"</span><span class="p">;</span>

    <span class="kd">var</span> <span class="nx">options</span> <span class="o">=</span> <span class="dl">"</span><span class="s2">location=yes,hidden=yes</span><span class="dl">"</span><span class="p">;</span>

    <span class="nx">inAppBrowserRef</span> <span class="o">=</span> <span class="nx">cordova</span><span class="p">.</span><span class="nx">InAppBrowser</span><span class="p">.</span><span class="nx">open</span><span class="p">(</span><span class="nx">url</span><span class="p">,</span> <span class="nx">target</span><span class="p">,</span> <span class="nx">options</span><span class="p">);</span>

    <span class="nx">inAppBrowserRef</span><span class="p">.</span><span class="nx">addEventListener</span><span class="p">(</span><span class="dl">'</span><span class="s1">loadstart</span><span class="dl">'</span><span class="p">,</span> <span class="nx">loadStartCallBack</span><span class="p">);</span>

    <span class="nx">inAppBrowserRef</span><span class="p">.</span><span class="nx">addEventListener</span><span class="p">(</span><span class="dl">'</span><span class="s1">loadstop</span><span class="dl">'</span><span class="p">,</span> <span class="nx">loadStopCallBack</span><span class="p">);</span>

    <span class="nx">inAppBrowserRef</span><span class="p">.</span><span class="nx">addEventListener</span><span class="p">(</span><span class="dl">'</span><span class="s1">loaderror</span><span class="dl">'</span><span class="p">,</span> <span class="nx">loadErrorCallBack</span><span class="p">);</span>

<span class="p">}</span>

</code></pre></div></div>

<h3><a id="let"></a>Let users know that you&#39;re getting their page ready</h3>

<p>Because the browser doesn&#39;t immediately appear, we can use the <code>loadstart</code> event to show a status message, progress bar, or other indicator. This assures users that content is on the way.</p>

<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
<span class="kd">function</span> <span class="nx">loadStartCallBack</span><span class="p">()</span> <span class="p">{</span>

    <span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">#status-message</span><span class="dl">'</span><span class="p">).</span><span class="nx">text</span><span class="p">(</span><span class="dl">"</span><span class="s2">loading please wait ...</span><span class="dl">"</span><span class="p">);</span>

<span class="p">}</span>

</code></pre></div></div>

<h3><a id="show"></a>Show the help page</h3>

<p>When the <code>loadstopcallback</code> event is raised, we know that the content has loaded and we can make the browser visible. This sort of trick can create the impression of better performance. The truth is that whether you show the browser before content loads or not, the load times are exactly the same.</p>

<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
<span class="kd">function</span> <span class="nx">loadStopCallBack</span><span class="p">()</span> <span class="p">{</span>

    <span class="k">if</span> <span class="p">(</span><span class="nx">inAppBrowserRef</span> <span class="o">!=</span> <span class="kc">undefined</span><span class="p">)</span> <span class="p">{</span>

        <span class="nx">inAppBrowserRef</span><span class="p">.</span><span class="nx">insertCSS</span><span class="p">({</span> <span class="na">code</span><span class="p">:</span> <span class="dl">"</span><span class="s2">body{font-size: 25px;}</span><span class="dl">"</span> <span class="p">});</span>

        <span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">#status-message</span><span class="dl">'</span><span class="p">).</span><span class="nx">text</span><span class="p">(</span><span class="dl">""</span><span class="p">);</span>

        <span class="nx">inAppBrowserRef</span><span class="p">.</span><span class="nx">show</span><span class="p">();</span>
    <span class="p">}</span>

<span class="p">}</span>

</code></pre></div></div>
<p>You might have noticed the call to the <code>insertCSS</code> function. This serves no particular purpose in our scenario. But it gives you an idea of why you might use it. In this case, we&#39;re just making sure that the font size of your pages have a certain size. You can use this function to insert any CSS style elements. You can even point to a CSS file in your project.</p>

<h3><a id="handle"></a>Handle page errors</h3>

<p>Sometimes a page no longer exists, a script error occurs, or a user lacks permission to view the resource. How or if you handle that situation is completely up to you and your design. You can let the browser show that message or you can present it in another way.</p>

<p>We&#39;ll try to show that error in a message box. We can do that by injecting a script that calls the <code>alert</code> function. That said, this won&#39;t work in browsers on Windows devices so we&#39;ll have to look at the parameter of the <code>executeScript</code> callback function to see if our attempt worked. If it didn&#39;t work out for us, we&#39;ll just show the error message in a <code>&lt;div&gt;</code> on the page.</p>

<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
<span class="kd">function</span> <span class="nx">loadErrorCallBack</span><span class="p">(</span><span class="nx">params</span><span class="p">)</span> <span class="p">{</span>

    <span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">#status-message</span><span class="dl">'</span><span class="p">).</span><span class="nx">text</span><span class="p">(</span><span class="dl">""</span><span class="p">);</span>

    <span class="kd">var</span> <span class="nx">scriptErrorMesssage</span> <span class="o">=</span>
       <span class="dl">"</span><span class="s2">alert('Sorry we cannot open that page. Message from the server is : </span><span class="dl">"</span>
       <span class="o">+</span> <span class="nx">params</span><span class="p">.</span><span class="nx">message</span> <span class="o">+</span> <span class="dl">"</span><span class="s2">');</span><span class="dl">"</span>

    <span class="nx">inAppBrowserRef</span><span class="p">.</span><span class="nx">executeScript</span><span class="p">({</span> <span class="na">code</span><span class="p">:</span> <span class="nx">scriptErrorMesssage</span> <span class="p">},</span> <span class="nx">executeScriptCallBack</span><span class="p">);</span>

    <span class="nx">inAppBrowserRef</span><span class="p">.</span><span class="nx">close</span><span class="p">();</span>

    <span class="nx">inAppBrowserRef</span> <span class="o">=</span> <span class="kc">undefined</span><span class="p">;</span>

<span class="p">}</span>

<span class="kd">function</span> <span class="nx">executeScriptCallBack</span><span class="p">(</span><span class="nx">params</span><span class="p">)</span> <span class="p">{</span>

    <span class="k">if</span> <span class="p">(</span><span class="nx">params</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span>

        <span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">#status-message</span><span class="dl">'</span><span class="p">).</span><span class="nx">text</span><span class="p">(</span>
           <span class="dl">"</span><span class="s2">Sorry we couldn't open that page. Message from the server is : '</span><span class="dl">"</span>
           <span class="o">+</span> <span class="nx">params</span><span class="p">.</span><span class="nx">message</span> <span class="o">+</span> <span class="dl">"</span><span class="s2">'</span><span class="dl">"</span><span class="p">);</span>
    <span class="p">}</span>

<span class="p">}</span>

</code></pre></div></div>

<h2>More Usage Info</h2>

<h3>Local Urls ( source is in the app package )</h3>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>var iab = cordova.InAppBrowser;

iab.open('local-url.html');                  // loads in the Cordova WebView
iab.open('local-url.html', '_self');         // loads in the Cordova WebView
iab.open('local-url.html', '_system');       // Security error: system browser, but url will not load (iOS)
iab.open('local-url.html', '_blank');        // loads in the InAppBrowser
iab.open('local-url.html', 'random_string'); // loads in the InAppBrowser
iab.open('local-url.html', 'random_string', 'location=no'); // loads in the InAppBrowser, no location bar

</code></pre></div></div>

<h3>Whitelisted Content</h3>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>var iab = cordova.InAppBrowser;

iab.open('https://whitelisted-url.com');                  // loads in the Cordova WebView
iab.open('https://whitelisted-url.com', '_self');         // loads in the Cordova WebView
iab.open('https://whitelisted-url.com', '_system');       // loads in the system browser
iab.open('https://whitelisted-url.com', '_blank');        // loads in the InAppBrowser
iab.open('https://whitelisted-url.com', 'random_string'); // loads in the InAppBrowser

iab.open('https://whitelisted-url.com', 'random_string', 'location=no'); // loads in the InAppBrowser, no location bar

</code></pre></div></div>

<h3>Urls that are not white-listed</h3>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>var iab = cordova.InAppBrowser;

iab.open('https://url-that-fails-whitelist.com');                  // loads in the InAppBrowser
iab.open('https://url-that-fails-whitelist.com', '_self');         // loads in the InAppBrowser
iab.open('https://url-that-fails-whitelist.com', '_system');       // loads in the system browser
iab.open('https://url-that-fails-whitelist.com', '_blank');        // loads in the InAppBrowser
iab.open('https://url-that-fails-whitelist.com', 'random_string'); // loads in the InAppBrowser
iab.open('https://url-that-fails-whitelist.com', 'random_string', 'location=no'); // loads in the InAppBrowser, no location bar

</code></pre></div></div>


            </div>
        </div>
        <div class="row">
            <div class="blue-divider"></div>
<footer>
    <div class="container-fluid">
        <div class="row">
    <div class="col-sm-9">
        <h1>More Resources</h1>
        <div class="row">
            <div class="col-sm-4">
                <h2>General</h2>
                <ul class="nav">
                    <li>
                        <a target="_blank" href="https://projects.apache.org/project.html?cordova">Apache Project Page</a>
                    </li>
                    <li>
                        <a href="https://www.apache.org/dyn/closer.cgi/cordova">Source Distribution</a>
                    </li>
                    <li>
                        <a target="_blank" href="https://www.apache.org/licenses">License</a>
                    </li>
                    <li>
                        <a href="/artwork">Artwork</a>
                    </li>
                </ul>
            </div>
            <div class="col-sm-4">
                <h2>Development</h2>
                <ul class="nav">
                    <li><a target="_blank" href="https://github.com/apache?utf8=%E2%9C%93&amp;q=cordova-">Source Code</a></li>
                    <li><a target="_blank" href="https://github.com/apache/cordova#filing-a-bug">Issue Tracker</a></li>
                    <li><a target="_blank" href="https://stackoverflow.com/questions/tagged/cordova">Stack Overflow</a></li>
                    <li><a href="/contact">Mailing List</a></li>
                    <li><a href="/contribute/nightly_builds.html">Nightly builds</a></li>
                </ul>
            </div>
            <div class="col-sm-4">
                <h2>Apache Software Foundation</h2>
                <ul class="nav">
                    <li>
                        <a target="_blank" href="https://www.apache.org/">About ASF</a>
                    </li>
                    <li>
                        <a target="_blank" href="https://www.apache.org/events/current-event">Events</a>
                    </li>
                    <li>
                        <a target="_blank" href="https://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a>
                    </li>
                    <li>
                        <a target="_blank" href="https://www.apache.org/foundation/thanks.html">Thanks</a>
                    </li>
                    <li>
                        <a target="_blank" href="https://www.apache.org/security/">Security</a>
                    </li>
                    <li>
                        <a target="_blank" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</a>
                    </li>
                </ul>
            </div>
        </div>
    </div>
    <div class="col-sm-3">
        <h1>Contribute</h1>
        <p style="padding-top:20px"><strong>Help Cordova move forward!</strong></p>
        <p>Report bugs, improve the docs, or contribute to the code.</p>
        <a href="/contribute" class="btn btn-lg btn-primary">
            Learn More
        </a>
        <p style="padding-top:20px"> <a href="https://twitter.com/apachecordova" class="twitter-follow-button" data-show-count="false">Follow @apachecordova</a></p>
    </div>
</div>
<p class="copyright_text">
    Copyright &copy; 2024 <a href="https://apache.org">The Apache Software Foundation</a>, Licensed under the <a target="_blank" href="https://www.apache.org/licenses/">Apache License, Version 2.0</a>.<br/>
    Apache and the Apache feather logos are <a target="_blank" href="https://www.apache.org/foundation/marks/list/">trademarks</a> of The Apache Software Foundation.
    <br/>
    <p>See the <a href="/attributions/">attributions page</a> for other copyright & trademark notices.</p>
</p>

    </div>
</footer>

        </div>
    </div>
</div>

<script defer type="text/javascript" src="/static/js/lib/toc.min.js"></script>
<script defer type="text/javascript" src="/static/js/docs.js"></script>

    <script defer type="text/javascript" src="/static/js/index.js"></script>
    <script defer type="text/javascript" src="/static/js/twitter.js"></script>
</body>
</html>
