2012-05-28 6 views
7

En el archivo HTML he usado el complemento de comentario social de Facebook y está funcionando perfecto, pero cuando intenté mostrar el mismo archivo en android usando webview, solo muestra comentarios, no el cuadro de comentarios y muestra un botón "Iniciar sesión en Facebook para publicar un comentario". Cuando intenté Iniciar sesión, al hacer clic en ese botón, en lugar de mostrar el cuadro de comentarios; La página está siendo redirigido a facebook profile.Please ayuda ...El cuadro de comentario de Facebook no se muestra en la vista web de Android

Aquí está el código: Código

HTML:

<head> 
<meta content='website' property='og:type'/> 
<meta content='http://graph.facebook.com/username' property='fb:admins'/> 
<meta content='http://example.com/test.html' property='og:site_name'/> 
<meta content='415944175093180' property='fb:app_id'/> 
<meta content='Browser Detect' property='og:title'/> 
<meta content='Tells about Early days' property='og:description'/> 
<meta content='http://example.com/test.html' property='og:url'/> 
<meta content='http://example.com/test.html' property='og:image'/> 
</head> 
<body> 
<div id="fb-root"></div> 
<script> 
window.fbAsyncInit = function() { 
    FB.init({ 
    appId: '415944175093180', status: true, cookie: true, xfbml: true,oauth: true}); }; 
    (function() { 
    var e = document.createElement('script'); 
    e.type = 'text/javascript'; 
    e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; 
    e.async = true; 
    document.getElementById('fb-root').appendChild(e); 
    }()); 

    (function(d){ 
    var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement('script'); js.id = id; js.async = true; 
    js.src = "//connect.facebook.net/en_US/all.js"; 
    ref.parentNode.insertBefore(js, ref); 
    }(document)); 
    </script> 
    <fb:comments href="http://example.com/test.html" num_posts="20" width="470" />  
    </body> 

código de Android:

SimpleActivity clase pública se extiende Actividad {

WebView web1; 

ViewPager awesomePager; 
    Context cxt; 
    List<WebView> data; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.main); 
    cxt = this; 
    data = new ArrayList<WebView>(); 

    awesomePager = (ViewPager) findViewById(R.id.viewPager); 
    awesomePager.setOffscreenPageLimit(10); 

    WebView web1 = new WebView(cxt); 
    web1.loadUrl("http://example.com/test.html"); 
      WebSettings webSettings1 = web1.getSettings(); 

      webSettings1.setJavaScriptEnabled(true); 

    data.add(web1); 
      awesomePager.setAdapter(new AwesomePagerAdapter(this,data)); 

}

+0

¿Cuál es su cuadro de comentarios de conexión/enlace? –

+0

Página html simple que se carga en el servidor como http://example.com/test.html Funciona bien si reviso el navegador pero el mismo enlace si se abre en Android no muestra el cuadro de comentarios ni permite Para editar. – Prax

+0

Necesito el código real para ver lo que estás haciendo. –

Respuesta

0

Puede ser que en html "estándar", usando un navegador web, la sesión se haya guardado para que haya iniciado sesión en Facebook y puede dejar comentarios como usuarios registrados, incluso si cierra el navegador y encenderlo de nuevo (cookies, "mantenerme conectado, etc.).

El navegador de Android, por otro lado, puede no almacenar/guardar en caché la sesión, la aplicación puede haber sido eliminada, etc. Por lo tanto, es menos propenso a tener una sesión "siempre activada".

Por supuesto, Facebook reconocerá esto y le presentará el formulario de inicio de sesión, porque no puede dejar comentarios como un usuario anónimo.

AFAIK una solución sería usar Facebook API en lugar de Javascript, para que su aplicación quede permanentemente autorizada para acceder a los datos del usuario/publicar comentarios como usuario registrado.

Cuestiones relacionadas