2011-10-17 5 views
7

Desidero visualizzare il pulsante Mi piace nella mia applicazione Android. Di seguito è riportato il codice che uso per visualizzare un pulsante Mi piace nella mia applicazione Android.Pulsante Mi Piace nell'applicazione Android

String url = "http://www.facebook.com/plugins/like.php?layout=standard&show_faces=true&width=80&height=50&action=like&colorscheme=light&href=http://beta.demo.dy/web/service/304.htm" 
webview = (WebView) findViewById(R.id.webView1); 
webview.loadUrl(url); 
webview.setWebViewClient(new LikeWebviewClient()); 

public class LikeWebviewClient extends WebViewClient { 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     view.loadUrl(url); 
     return true; 
    } 
} 

Ma quando si esegue questa applicazione viene visualizzata un'area bianca. Come risolvere questo?

+0

hey Voglio fare la stessa cosa. per favore dimmi è risolto? se sì allora come l'hai fatto? –

+0

È possibile aggiungere la visualizzazione Web in cui impostare l'altezza e la larghezza della vista Web. Di conseguenza, all'utente viene visualizzato il pulsante onlu like. – Megha

risposta

4

Facebook SDK non ha fornito la funzionalità del pulsante like per le app mobili native (A partire dal 17 ottobre 2011). È disponibile nelle app Web mobili. Per maggiori informazioni è possibile controllare questi link:
Mobile - Facebook Developers
Like Button - Facebook Developers

+0

voglio visualizzare che in Webview di android.it è possibile in ios hanno anche disaply webview del pulsante mi piace così voglio quella libreria di uso – Megha

+1

descritta in questo post: http://stackoverflow.com/a/23853937/1891118 –

0

provare questo ho fatto qualche modifica

String url = "http://www.facebook.com/plugins/like.php?layout=standard&show_faces=true&width=80&height=50&action=like&colorscheme=light&href=http://beta.demo.dy/web/service/304.htm"; 
       // webview = (WebView) findViewById(R.id.webview); 
        webView.loadUrl(url); 
        webView.setWebViewClient(new WebViewClient()); 
       class LikeWebviewClient extends WebViewClient 
        { 
         public boolean shouldOverrideUrlLoading(WebView view, String url) { 
          view.loadUrl(url); 
          return true; 
         } 
        } 
6

L'opzione come può essere implementato facilmente sulle lingue piattaforma nativa (Android, iOS) così come i browser (curl, PHP, JavaScript) come segue. Vai alla sezione dell'app developer.facebook e all'interno della sezione Apri grafico della configurazione dell'app Developer, aggiungi l'azione Like incorporata, che dovrebbe apparire nel menu a discesa quando aggiungi una nuova azione Apri grafico. Fare riferimento a here per gli ultimi aggiornamenti.

Al termine, selezionare "Ottieni codice" per recuperare il codice di esempio come illustrato di seguito per la piattaforma Android. Puoi scegliere la piattaforma che preferisci. Tieni presente che app_specific_unique_identifier è univoco per le app, l'ho rimosso per motivi di sicurezza e devi utilizzare quello per la tua app.

Sono stato in grado di testare correttamente il flusso di Like. Spero che questo ti aiuti.

Bundle params = new Bundle(); 
params.putString("object", "http://samples.ogp.me/<app_specific_unique_identifier>"); 

Request request = new Request(
    Session.getActiveSession(), 
    "me/og.likes", 
    params, 
    HttpMethod.POST 
); 
Response response = request.executeAndWait(); 
// handle the response 
+0

questa è un'ottima risposta. Ho cercato una risposta del genere per tre giorni di seguito. Molte grazie! – overbet13

+0

@birender Puoi aiutarmi con questo problema? grazie. –

+0

Non ho l'opzione per un'azione di tipo built-in (comune). Eventuali suggerimenti? –

3

Infine Facebook e lanciato Like Pulsante per Android

Passi:

1 - Aggiungi Facebook Library al progetto

2-Create App su Facebook 3 - Aggiornamento manifesto

**In the Application tab add meta-data** 

<meta-data 
     android:name="com.facebook.sdk.ApplicationId" 
     android:value="@string/fb_id" /> 

4 - Aggiungere LikeView in Layout

//activitymain.xml 
<com.facebook.widget.LikeView 
      android:id="@+id/like_view" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      > 
     </com.facebook.widget.LikeView> 

5 - ActivityMain.java

//set facebook page or link to this like button 
LikeView likeView; 
UiLifecycleHelper uiHelper; 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activitymain); 
    uiHelper = new UiLifecycleHelper(this, null); 
    likeView = (LikeView) findViewById(R.id.like_view); 
    likeView.setObjectId("https://www.facebook.com/<page_username>");//it can be any link 

    likeView.setLikeViewStyle(LikeView.Style.STANDARD); 
    likeView.setAuxiliaryViewPosition(LikeView.AuxiliaryViewPosition.INLINE); 
    likeView.setHorizontalAlignment(LikeView.HorizontalAlignment.LEFT); 

} 

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    uiHelper.onActivityResult(requestCode, resultCode, data, null); 

} 

uscita enter image description here

+0

C'è un modo per apprezzare l'applicazione stessa? Proprio come Google più un pulsante in Google Play. –

1

È possibile utilizzare il pulsante di Facebook come app Android utilizzando l'autorizzazione speciale dall'account sviluppatore di Facebook https://developers.facebook.com. Aggiungi la tua app qui e invia il permesso speciale dell'app. Vai alla recensione dell'app e invia gli articoli per l'approvazione. fai clic sull'invio dell'invio e successivamente seleziona LIKE come pulsante nativo e invia tutti i dettagli che desiderano, come il motivo per cui desideri ottenere il permesso, in che modo la tua app utilizzerà questa autorizzazione per tutto. Se Facebook approverà la tua richiesta, puoi usare il pulsante di Facebook come all'interno dell'app. enter code here

 <com.facebook.share.widget.LikeView 
     android:id="@+id/facebooklike" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"> 
     </com.facebook.share.widget.LikeView> 

Dopo questo è necessario fare un po 'di codice Java.

likeView = (LikeView) findViewById(R.id.facebooklike); 
    likeView.setLikeViewStyle(LikeView.Style.STANDARD);    
    likeView.setAuxiliaryViewPosition(LikeView.AuxiliaryViewPosition.INLINE); 
    likeView.setHorizontalAlignment(LikeView.HorizontalAlignment.CENTER); 
    likeView.setObjectIdAndType("url of like page", LikeView.ObjectType.PAGE); 

come funzionalità chiamata automaticamente quando si fa clic sul pulsante Mi piace.

ora è necessario ottenere una risposta dalla pagina simile a quella pagina dell'utente simile a quella pagina.

enter code here 

FbLikes classe pubbliche estende AppCompatActivity {

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_fb_likes); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    try { 
     if (resultCode == RESULT_OK) { 
      // verify we're returning from like action 
       // get action results 
       bundle = data.getExtras().getBundle("com.facebook.platform.protocol.RESULT_ARGS"); 
       if (bundle != null) { 
        like = bundle.getBoolean("object_is_liked");// liked/unliked 
        bundle.getInt("didComplete"); 
        bundle.getInt("like_count"); // object like count 
        bundle.getString("like_count_string"); 
        bundle.getString("social_sentence"); 
        bundle.getString("completionGesture"); // liked/cancel/unliked 
        Log.e(TAG, bundle.getString("social_sentence") + ""); 
        Log.e(TAG, "likeornot" + bundle.getBoolean("object_is_liked") + ""); 
        Log.e(TAG, "lcomplete" + bundle.getString("completionGesture") + ""); 
        Log.e(TAG, "count" + bundle.getInt("like_count") + ""); 
        Log.e(TAG, "countstr" + bundle.getString("like_count_string") + ""); 
        Log.e(TAG, "did" + bundle.getInt("didComplete") + ""); 
       } 
     } 
    } catch (Exception e) { 

    } 
} 

} questo codice restituirà tutto ciò che si desidera da come funzionalità.