0

我有一個類似facebook按鈕的問題。 在Facebook開發者中,Facebook爲我們提供了3種不同的方法來將類似按鈕集成到我們的應用中。在這個例子中,我使用了所有3種方法。Facebook喜歡sencha建築師的按鈕

我已經建立在煎茶建築師觸摸(Ext.Button)3個按鈕。之後,我已經創建了,我傳遞給HTML按鈕配置的3種方法基本功能:

var me = this, htmlStrBase, htmlStr, htmlStrBase1, htmlStr1, htmlStrBase2, htmlStr2;

htmlStrBase = '<div class="fb-like" data-href="https://www.facebook.com/tecnitalia?ref=ts&fref=ts" data-layout="button" data-action="like" data-show-faces="false" data-share="false"></div>'; 
htmlStrBase1 = '<iframe src="//www.facebook.com/plugins/like.php?href=https://www.facebook.com/tecnitalia?ref=ts&fref=ts&amp;width&amp;layout=button&amp;action=like&amp;show_faces=false&amp;share=false&amp;height=35&amp;appId=838403862859130" scrolling="no" frameborder="0" style="border:none; overflow:hidden; height:35px;" allowTransparency="true"></iframe>'; 
htmlStrBase2 = '<html xmlns:fb="http://ogp.me/ns/fb#"><fb:like href="https://www.facebook.com/tecnitalia?ref=ts&fref=ts" layout="button" action="like" show_faces="false" share="false"></fb:like>'; 

me.getLikebutton().setHtml(htmlStrBase); 
me.getLikebutton1().setHtml(htm 

lStrBase1); 
me.getLikebutton2().setHtml(htmlStrBase2); 

自然首先我都推出了FB.Init(用於臺式機和爲App):

if(Ext.os.is.Android || Ext.os.is.iOS) {

FB.init({ 
     appId  : 'xxxxxxxxxxxxx', 
     status  : true, 
     nativeInterface: CDV.FB, 
     useCachedDialog: false, 
     xfbml  : true 
    }); 

    //alert('dopo FB.init'); 
    FB.Event.subscribe('auth.statusChange', function(response) { 
     //alert('status changed'); 
    }); 

(function(d, s, id) { 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) return; 
    js = d.createElement(s); js.id = id; 
    js.src = "//connect.facebook.net/it_IT/sdk.js#xfbml=1&appId=XXXXXXXXX&version=v2.0"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk')); 

} 
//Otherwise let's use the the web version 
else 
    { 
     //Wait for sdk to load 
     //alert('eseguo fbAsyncInit'); 
     window.fbAsyncInit = function() { 

      FB.init({ 
       appId  : 'XXXXXXXXXX', 
       status  : true, 
       xfbml  : true 
      }); 

      FB.Event.subscribe('auth.statusChange', function(response) { 
       //alert('status changed'); 
      }); 
     }; 

     //alert(' after fbAsyncInit e now include SDK'); 
     //Include SDK 

     (function(d, s, id){ 
      var js, fjs = d.getElementsByTagName(s)[0]; 
      if (d.getElementById(id)) {return;} 
      js = d.createElement(s); js.id = id; 
      js.src = "//connect.facebook.net/en_US/all.js"; 
      fjs.parentNode.insertBefore(js, fjs); 
     }(document, 'script', 'facebook-jssdk')); 
    } 

最終的結果是,在桌面上,它的功能完美,但我的android應用程序尚未...我沒有看到任何像按鈕。

我說你過去的事情....如果我複製的直接這個3種方法在HTML按鈕的配置,我可以看到我的應用程序等等按鈕之一。但是我不能直接在HTML配置按鈕中複製這些方法,因爲每次用戶登錄我的應用程序時都需要更改Facebook地址。

有人能幫助我,知道在我的應用程序dinamically整合類似按鈕的方法? 謝謝 Carlo

嗨Guillard。謝謝。這是功能,但我有另一個問題。在Android之後像登錄它顯示我一個空白頁!!!!否,在桌面上使用Mozilla或Firefox。 謝謝 Carlo

回答

0

有一點讓我有所不同的是,在我的面板添加Facebook腳本後,fb-root id已經就位。

在這裏,我創建了一個Container與底部工具欄和另一個容器(FB-根)具有用於煎茶頁面Like按鈕。

Ext.create('Ext.Container', { 
    fullscreen: true, 
    html : 'My Sencha touch panel', 
    items: [ 
     { 
      docked: 'top', 
      xtype: 'titlebar', 
      title: 'Sencha Touch', 
     },{ 
      docked: 'bottom', 
      xtype: 'toolbar', 
      ui: 'light', 
      items: [{ 
       xtype: 'container', 
       id: 'fb-root', 
       width: 50, 
       height: 20 
      }] 
     } 
    ], 
    listeners: { 
     initialize : function (container) { 
      (function(d, s, id) { 
       var js, fjs = d.getElementsByTagName(s)[0]; 
       if (d.getElementById(id)) return; 
       js = d.createElement(s); js.id = id; 
       js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.0"; 
       fjs.parentNode.insertBefore(js, fjs); 
      }(document, 'script', 'facebook-jssdk')); 

      var html = '<div class="fb-like" data-href="https://www.facebook.com/senchainc" data-layout="button" data-action="like" data-show-faces="false" data-share="false"></div>'; 
      container.query('toolbar container')[0].setHtml(html); 
     } 
    } 
}); 

小提琴:https://fiddle.sencha.com/#fiddle/cmm

+0

感謝吉列爾梅......你能看到我的帖子回覆如下?我遇到問題 – Carlo 2014-11-03 15:22:43

+0

無需查詢您的組件。只需將最後一行改爲:'container.setHtml(html);'。並且請刪除你的答案,這不是你應該提出進一步問題的方式。 – 2014-11-03 15:28:08

+0

嗨Guillard。謝謝。這是功能,但我有另一個問題。在Android之後像登錄它顯示我一個空白頁!!!!否,在桌面上使用Mozilla或Firefox。謝謝 – Carlo 2014-11-09 14:33:09