sábado, 14 de julio de 2012

AdMob con Phonegap y Android

Vamos a añadir nuestro widget de anuncios, haciendo lo siguiente:
  1. Añadir import com.google.ads.*; a los imports
  2. Asegurarse de que los permisos en el manifest incluyen:

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  3. Añadir la actividad de anuncios en el manifest:

    <activity
        android:name="com.google.ads.AdActivity"
        android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />
  4. Cambiar el contenido de la actividad principal por:

    super.onCreate(savedInstanceState);
     
    // Cambiar PUBLISHER_ID por el nuestro
    AdView adView = new AdView(this, AdSize.BANNER, PUBLISHER_ID);
     
    LinearLayout layout = super.root;
    layout.addView(adView);
     
    // Para centrarlo en modo apaisado
    layout.setHorizontalGravity(android.view.Gravity.CENTER_HORIZONTAL);
     
    adView.loadAd(new AdRequest());
Con esto, además de aprender a hacer nuestras aplicaciones con PhoneGap, podremos monetizarlas. Ahora queda ponerse con lo interesante: ver qué nos permite el SDK de PhoneGap.

Para hacer persistencia de datos Phonegap nos dá varios métodos, pero para empezar nosotros usaremos el LocalStorage del nuevo HTML 5, un método perfectamente soportado por los navegadores de los sistemas operativos móviles más usados.
El proceso es sencillo, y se detalla en ésta pequeña web, totalmente autoexplicativa:


    Testeos
 
<script type="text/javascript">// <![CDATA[
        function supports_html5_storage()
        {
            try
            {
                return 'localStorage' in window && window['localStorage'] !== null;
            }
            catch (e)
            {
                return false;
            }
        }
 
        // Prueba de lectura y escritura
        function numCargas()
        {
            var obj = document.getElementById('veces');
 
            if(supports_html5_storage())
            {
                // Leemos el contador actual
                var num = localStorage.getItem("numCargas");
 
                if(num == null) num = 0;
                else
                {
                    num = parseInt(num);
                    if(num == 'NaN') num = 0;
                }
 
                // Incrementamos y guardamos de nuevo
                localStorage.setItem("numCargas", num+1);
 
                // Establecemos el número
                obj.innerHTML = num;
            }
            else obj.innerHTML = '<span style="color: red;">ERROR</span>';
        }
 
        // Prueba de lectura y escritura
        function resetearNumCargas()
        {      
            var obj = document.getElementById('veces');
 
            if(supports_html5_storage())
            {
                // Reseteamos
                localStorage.setItem("numCargas", 0);
                obj.innerHTML = 0;
            }
            else obj.innerHTML = '<span style="color: red;">ERROR</span>';
        }
 
// ]]></script></pre>
<h1 style="margin: 0px; padding: 0px;">Testeos</h1>
<pre></pre>
 
<hr />
 
<pre></pre>
<h2 style="margin: 0px; padding: 0px;">Almacenamiento</h2>
<pre>
 La página se ha cargado <span id="veces"><script type="text/javascript">// <![CDATA[
numCargas();
// ]]></script></span> veces.
 
 
 <a href="javascript: location.reload();">Actualiza</a> o
 <a href="javascript: resetearNumCargas();">resetea</a> la cuenta.
 
 
 <a href="http://diveintohtml5.info/storage.html" target="new">HTML5 Local Storage</a>
 
</pre>
 
<hr />
 
<pre>
 
 <a href="http://androide.hijodeblog.com" target="new">Diario de un Androide</a>
Podremos probar el almacenamiento persistente en nuestra aplicación Phonegap añadiendo un nuevo archivo HTML a nuestro directorio assets/www o modificando el archivo index.html que hemos creado en las lecciones anteriores.

No hay comentarios:

Publicar un comentario