zoukankan      html  css  js  c++  java
  • Android Facebook分享功能实现

    1、下载 Facebook SDK

    https://developers.facebook.com/docs/Android?locale=zh_CN

    2、在facebook下设置app的相关信息

    3、主要代码

    private CallbackManager callbackManager;
    private ShareDialog shareDialog;
    private boolean canPresentShareDialog;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        FacebookSdk.sdkInitialize(this.getApplicationContext());
        callbackManager = CallbackManager.Factory.create();
        shareDialog = new ShareDialog(this);
        shareDialog.registerCallback(callbackManager,shareCallback);
    setContentView(R.layout.share);
       
        ImageView bt_list_share = (ImageView) findViewById(R.id.bt_list_share);//facebook分享有自带的sharebutton  这里就自定义了一张图片了
    
        bt_list_share.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
    	ShareLinkContent linkContent = new ShareLinkContent.Builder()
            .setContentUrl(Uri.parse("http://www.baidu.com"))
            .setContentTitle("facebook share")
            .setContentDescription("good description")
            .build();
    	shareDialog.show(linkContent);
    } });}

    设置回调:

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        callbackManager.onActivityResult(requestCode, resultCode, data);
    }
    private FacebookCallback<Sharer.Result> shareCallback = new FacebookCallback<Sharer.Result>() {
        @Override
        public void onCancel() {
            Log.d("Facebook", "Canceled");
        }
    
        @Override
        public void onError(FacebookException error) {
            Log.d("Facebook", String.format("Error: %s",error.toString()));
        }
    
        @Override
        public void onSuccess(Sharer.Result result) {
            Log.d("HelloFacebook", "Success!");
        }
    };
    

    最后别忘了AndroidManifest.xml中配置下

    <activity android:name="com.facebook.FacebookActivity"
              android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
              android:theme="@android:style/Theme.Translucent.NoTitleBar"
              android:label="@string/app_name"/>
    
    <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/app_id"/>
    
    <provider android:authorities="com.facebook.app.FacebookContentProvider[app_id]"
              android:name="com.facebook.FacebookContentProvider"
              android:exported="true"/>

    好了 主要的基本就这么多了  祝大家好运能顺利实现,有不足的地方还望指正~~~

  • 相关阅读:
    如何巧妙着运用「位运算」来解决问题?
    一文读懂一台计算机是如何把数据发送给另一台计算机的
    Java集合与泛型中的几个陷阱,你掉进了几个?
    【链表问题】打卡10:将搜索二叉树转换成双向链表
    【链表问题】打卡9:将单链表的每K个节点之间逆序
    【链表问题】打卡8:复制含有随机指针节点的链表
    单例模式中的volatile关键字
    链表回文判断(基于链表反转)—Java实现
    设计模式之单例模式
    Spring的IoC与AOP的理解
  • 原文地址:https://www.cnblogs.com/android-blogs/p/5899990.html
Copyright © 2011-2022 走看看