Android下进行 Facebook 分享
1. 下载 Facebook SDK
2. 在facebook下设置app的相关信息
3. 示例代码:
package com.example.testshare;import com.example.zcsocial.R;
import com.facebook.FacebookException;
import com.facebook.FacebookOperationCanceledException;
import com.facebook.Session;
import com.facebook.SessionState;
import com.facebook.UiLifecycleHelper;
import com.facebook.widget.FacebookDialog;
import com.facebook.widget.WebDialog;
import com.facebook.widget.WebDialog.FeedDialogBuilder;
import com.facebook.widget.WebDialog.OnCompleteListener;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Toast;public class MainActivity extends Activity implements OnClickListener
{public static final String TAG = "MainActivity";// /private UiLifecycleHelper uiHelper;@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);uiHelper = new UiLifecycleHelper(this, null);uiHelper.onCreate(savedInstanceState);// //findViewById(R.id.btn).setOnClickListener(this);}private Session.StatusCallback callback = new Session.StatusCallback(){@Overridepublic void call(Session session, SessionState state, Exception exception){if (state.isOpened()){publishFeedDialog();} else{Log.e(TAG, "Error:" + exception.getMessage());}}};private void publishFeedDialog(){Bundle params = new Bundle();params.putString("name", "Facebook SDK for Android");params.putString("caption", "Build great social apps and get more installs.");params.putString("description", "The Facebook SDK for Android makes it easier and faster to develop Facebook integrated Android apps.");params.putString("link", "https://developers.facebook.com/android");params.putString("picture", "https://raw.github.com/fbsamples/ios-3.x-howtos/master/Images/iossdk_logo.png");FeedDialogBuilder dialogBuilder = new WebDialog.FeedDialogBuilder(this, Session.getActiveSession(), params);WebDialog feedDialog = dialogBuilder.setOnCompleteListener(new OnCompleteListener(){@Overridepublic void onComplete(Bundle values, FacebookException error){if (error == null){// When the story is posted, echo the success// and the post Id.final String postId = values.getString("post_id");if (postId != null){Toast.makeText(MainActivity.this, "Posted story, id: " + postId, Toast.LENGTH_SHORT).show();} else{// User clicked the Cancel buttonToast.makeText(MainActivity.this, "Publish cancelled", Toast.LENGTH_SHORT).show();}} else if (error instanceof FacebookOperationCanceledException){// User clicked the "x" buttonToast.makeText(MainActivity.this, "Publish cancelled", Toast.LENGTH_SHORT).show();} else{// Generic, ex: network errorToast.makeText(MainActivity.this, "Error posting story", Toast.LENGTH_SHORT).show();}}}).build();feedDialog.show();}@Overridepublic void onClick(View v){if (Session.getActiveSession() == null || !Session.getActiveSession().isOpened()){Session.openActiveSession(MainActivity.this, true, callback);} else{publishFeedDialog();}}// Life@Overrideprotected void onPause(){super.onPause();uiHelper.onPause();}@Overrideprotected void onDestroy(){super.onDestroy();uiHelper.onDestroy();}@Overrideprotected void onResume(){super.onResume();uiHelper.onResume();}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data){super.onActivityResult(requestCode, resultCode, data);uiHelper.onActivityResult(requestCode, resultCode, data, dialogCallback);}private FacebookDialog.Callback dialogCallback = new FacebookDialog.Callback(){@Overridepublic void onError(FacebookDialog.PendingCall pendingCall, Exception error, Bundle data){Log.e("MainActivity", String.format("Error: %s", error.toString()));}@Overridepublic void onComplete(FacebookDialog.PendingCall pendingCall, Bundle data){Log.e("MainActivity", "Success!");}};}
设置 Facebook相关的Activity
<!-- facebook相关 --><activityandroid:name="com.facebook.LoginActivity"android:label="@string/app_name"android:theme="@android:style/Theme.Translucent.NoTitleBar" /><meta-dataandroid:name="com.facebook.sdk.ApplicationId"android:value="@string/app_id" />
添加联网的权限即可.
4.总结下,就是 先检查Facebook的Seesion是否已经打开,如果没有打开,则先打开,否则直接进行分享.
---------------------------------------------------------分割线----------------------------------------------------------
cocos2dx IOS下添加 Facebook 分享
1.下载并添加Facebook SDK,在Info.plist 里面设置好相应的数据
FacebookAppID xxxxxxxxx
FacebookDisplayName My IOS APP
URL types
---------Item 0
----------------URL Schemes
---------------------------Item 0 fbxxxxxxxx
2. 在 RootViewController.h .mm里面添加一个函数
- (NSDictionary*)parseURLParams:(NSString *)query {NSArray *pairs = [query componentsSeparatedByString:@"&"];NSMutableDictionary *params = [[NSMutableDictionary alloc] init];for (NSString *pair in pairs) {NSArray *kv = [pair componentsSeparatedByString:@"="];NSString *val =[kv[1] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];params[kv[0]] = val;}return params;
}
3.添加 share方法
// 分享到 FaceBook
void IOSPlatform::shareFacebook(){#if CC_TARGET_PLATFORM == CC_PLATFORM_IOS// Put together the dialog parametersNSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"Sharing Tutorial", @"name",@"Build great social apps and get more installs.", @"caption",@"Allow your users to share stories on Facebook from your app using the iOS SDK.", @"description",@"https://developers.facebook.com/docs/ios/share/", @"link",@"http://i.imgur.com/g3Qc1HN.png", @"picture",nil];// Show the feed dialog[FBWebDialogs presentFeedDialogModallyWithSession:nilparameters:paramshandler:^(FBWebDialogResult result, NSURL *resultURL, NSError *error) {if (error) {// An error occurred, we need to handle the error// See: https://developers.facebook.com/docs/ios/errorsNSLog([NSString stringWithFormat:@"Error publishing story: %@", error.description]);} else {if (result == FBWebDialogResultDialogNotCompleted) {// User cancelled.NSLog(@"User cancelled.");} else {// Handle the publish feed callbackNSDictionary *urlParams = [_gRootViewController parseURLParams:[resultURL query]];if (![urlParams valueForKey:@"post_id"]) {// User cancelled.NSLog(@"User cancelled.");} else {// User clicked the Share buttonNSString *result = [NSString stringWithFormat: @"Posted story, id: %@", [urlParams valueForKey:@"post_id"]];NSLog(@"result %@", result);}}}}];#endif
}
即可.
Android下进行 Facebook 分享相关推荐
- Android App接入Facebook分享SDK,概率性无法启动Facebook客户端的问题分析
问题来源 由于我司的android app产品主要是面向海外,因此,app中的分享功能接入facebook分享是必不可少的.最近在接入facebook android sdk进行分享时,发现一个非常奇 ...
- Android 集成Facebook分享功能
1,配置build.gradle 项目级别的gradle: repositories {mavenCentral() } app级别的gradle: dependencies { implementa ...
- Android下使用最新FaceBook SDK 3.0(二)使用facebook实现登录注销
前一篇我们学习了集成FacebookSDK到我们项目工程中,这篇来学习一下如何使用facebook来登录! 1.打开 res/layout/activity_main.xml,在布局中添加一个face ...
- Android 友盟社会化分享的集成与封装
Android 友盟社会化分享的集成与封装 分享是APP中非常高频的操作之一,在Android的开发环境中,第三方分享框架也有很多.比较流行的包括 极光社会化分享(sharesdk).友盟社会化分享( ...
- 微信 Tinker 负责人张绍文关于 Android 热修复直播分享记录
2019独角兽企业重金招聘Python工程师标准>>> 微信 Tinker 负责人张绍文关于 Android 热修复直播分享记录 来源:微信技术团队的公众号WeMobileDev 热 ...
- android sdl,Android下SDL2实现五子棋游戏
本文实例介绍了Android下用SDL2实现一个简单的五子棋游戏,分享给大家供大家参考,具体内容如下 1. Five.c // Five.c // SDL2 五子棋 // gcc -mwindows ...
- android下拉会谈效果,Android实现下拉展示条目效果
本文实例为大家分享了Android下拉展示条目的具体代码,供大家参考,具体内容如下 布局文件 xmlns:tools="http://www.easck.com/tools" an ...
- android 截屏 分享,Android应用内截图分享的实现记录
Android应用内截图分享的实现记录 近期的项目中有个需求,需要将某个表示用户身份的页面整个截取下来,分享到微信微博.网上也很多的解决方案,我也分享下我自己的爬坑记录. 需求分析 有个页面,用于展示 ...
- facebook 分享页面_如何建立Facebook页面
facebook 分享页面 Facebook Pages are a great way to promote your business, a cause, or just your hobby. ...
最新文章
- 快速排序之Java实现
- SQL Server 个人手册
- md是什么类型的文件?怎么打开md文件,Markdown的编写,Markdown转化为html
- Mac中AndroidStudio没有找到Plugins的问题
- Unix操作系统***追踪反击战
- antlr idea 入门_ANTLR:入门
- 中小企业如何提高售前,售中,售后客服质量?
- ruby 生成哈希值_如何检查Ruby中是否存在哈希键?
- MacVim配置目录树
- Spring自学日志00(Spring配置文件头及xsd文件版本浅析)
- 15.QT中qchart绘制图表注意事项
- php 反射类 解析注释,php反射获取类和方法中的注释
- 【优化求解】基于matlab遗传算法求解车辆发车间隔优化问题【含Matlab源码 132期】
- Designing With Web Standard(一)
- 新闻管理系统——系统管理员模块(一)
- $root、$parent、$ref以及父组件方法共享——学习笔记
- 高位十字星收盘什么意思?高位十字星缩量是什么?
- 第二重要极限公式推导过程_土木考研 土力学第六章公式推导
- Springboot集成MybatisPlus、Druid
- Membership 网站安全相关配置节