<!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=" ">

    <title>
        
            
                Deprecated Content - Apache Cordova
            
        
    </title>

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

    

    
    

    <link rel="canonical" href="https://cordova.apache.org/docs/en/deprecated.html">

    <!-- 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 >
                            <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="page container">
    <div class="whole-page-content vertical-center-parent deprecated">
    <div class="vertical-center-child">
        <h1>
            This content is deprecated in the latest docs (version 12.x).
        </h1>
        <h2>
            To view the latest docs, go <a href="/docs/en/latest/">here</a>.
        </h2>
    </div>
</div>

</div>

<div class="blue-divider"></div>
<footer>
    <div class="container">
        <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>


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