2011-10-17 31 views
7

Tôi muốn hiển thị nút như trong ứng dụng Android của mình. Dưới đây là mã tôi sử dụng để hiển thị nút Thích trong ứng dụng Android của tôi.Nút Thích trên Facebook trong Ứng dụng 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; 
    } 
} 

Nhưng khi tôi chạy ứng dụng này, nó sẽ hiển thị một vùng màu trắng. Làm thế nào để giải quyết điều này?

+0

hey Tôi muốn làm điều tương tự. xin vui lòng cho tôi biết là nó được giải quyết? nếu có thì làm thế nào bạn đã làm nó? –

+0

Bạn có thể thêm webview trong đó thiết lập chiều cao và chiều rộng của webview.so rằng nút onlu như được hiển thị cho người dùng. – Megha

Trả lời

4

SDK Facebook chưa cung cấp tính năng nút like cho ứng dụng dành cho thiết bị di động gốc (Kể từ ngày 17 tháng 10 năm 2011). Nó có sẵn trong các ứng dụng Web di động. Để biết thêm thông bạn có thể kiểm tra các liên kết:
Mobile - Facebook Developers
Like Button - Facebook Developers

+0

tôi muốn dispaly rằng trong Webview của android.it là có thể trong ios họ cũng disaply webview của nút như vậy vì vậy tôi muốn rằng – Megha

+1

sử dụng thư viện được mô tả trong bài đăng này: http://stackoverflow.com/a/23853937/1891118 –

0

Hãy thử một trong này tôi thực hiện một số thay đổi

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

Các tùy chọn như thể được thực hiện dễ dàng trên nền tảng ngôn ngữ bản địa (Android, iOS) cũng như các trình duyệt (curl, PHP, JavaScript) như sau. Đi tới phần ứng dụng developer.facebook và trong phần Mở biểu đồ của cấu hình Ứng dụng dành cho nhà phát triển, thêm hành động Thích hợp được tích hợp sẵn, sẽ xuất hiện trong trình đơn thả xuống khi thêm hành động Biểu đồ mở mới. Tham khảo here để biết các cập nhật mới nhất.

Sau khi hoàn tất, hãy chọn "Nhận mã" tùy chọn truy xuất mã mẫu như được mô tả bên dưới cho nền tảng Android. Bạn có thể chọn nền tảng bạn chọn. Lưu ý rằng app_specific_unique_identifier là duy nhất cho ứng dụng, tôi đã xóa nó vì lý do bảo mật và bạn phải sử dụng ứng dụng cho ứng dụng của mình.

Tôi đã có thể kiểm tra luồng Like thành công. Hi vọng điêu nay co ich.

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

đây là một câu trả lời tuyệt vời. Tôi đã tìm kiếm câu trả lời như vậy trong ba ngày liên tiếp. Cảm ơn rất nhiều! – overbet13

+0

@birender Bạn có thể giúp tôi với vấn đề đó không? cảm ơn bạn. –

+0

Tôi không có tùy chọn cho hành động được tạo sẵn (phổ biến). Bất kỳ đề xuất? –

3

Cuối cùng Facebook và Ra mắt Like nút dành cho Android

bước:

1 - Thêm Facebook Library để Dự án

2-Create App trên Facebook 3 - Cập nhật Manifest

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

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

4 - Thêm LikeView trong 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); 

} 

Output enter image description here

+0

Có cách nào để thích ứng dụng không? Giống như nút Google cộng một trong Google Play. –

1

Bạn có thể sử dụng nút facebook giống như trong ứng dụng Android bằng cách sử dụng sự cho phép đặc biệt từ tài khoản nhà phát triển facebook https://developers.facebook.com. Thêm ứng dụng của bạn tại đây và gửi quyền đặc biệt của ứng dụng. Chuyển đến đánh giá ứng dụng và gửi các mục để phê duyệt. nhấp vào bắt đầu gửi và sau đó chọn nút gốc LIKE và gửi tất cả chi tiết họ muốn như lý do bạn muốn nhận được quyền, cách ứng dụng của bạn sẽ sử dụng quyền này mọi thứ. Nếu Facebook sẽ chấp nhận yêu cầu của bạn thì bạn có thể sử dụng nút facebook giống như bên trong ứng dụng. 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> 

Sau này, bạn cần thực hiện một số mã 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); 

như chức năng tự động gọi khi bạn nhấp vào nút tương tự.

bây giờ bạn cần nhận phản hồi từ trang giống như người dùng thích trang đó không giống trang đó.

enter code here 

FbLikes public class mở rộng 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) { 

    } 
} 

} mã này sẽ trả lại tất cả mọi thứ bạn muốn từ như chức năng.

Các vấn đề liên quan