如何使用友盟 Cocos2d-x 分享组件实现 Android/iOS 分享功能

Cocos2d-x作为一款优秀的跨平台游戏引擎,已经被越来越多的开发者使用,而在游戏中使用分享组件能够有效的提供用户粘性,通过分享回流来提高APP安装量,但是目前市面上能够在Cocos2d-x环境下使用的分享插件并不多,开发者们只能自己对原生分享SDK进行封装来实现,前一段时间友盟推出Cocos2d-x分享组件,能够帮助开发者快速集成。友盟也把组件的源码放在GitHub上,有好的想法也可以直接在GitHub上修改(PS.在GitHub上提bug可以获得友盟的小奖品),同样也可以对源码进行学习,对开发者的帮助还是很大的。

集成准备:

首先简单介绍一下组件压缩包的组成

Cocos2dx
实现Cocos2d-x中跨平台分享功能,需拷贝到您项目的Classes文件夹中;
Platforms
原生的Android和iOS社会化组件SDK,需要您将库和资源拷贝到对应平台的项目中;
doc
组件的集成文档;
Umeng_Cocos2dx_Demo_V1.0
Android部分的demo文件,可以安装在手机上看一下简单的分享效果和样式

Cocos2d-x虽然是一个跨平台的引擎,但是对于Android和IOS平台来说,具体的集成方式还是有一定的区别,这里分别介绍Android和IOS平台集成中不同的地方,然后再集中介绍跨平台通用的部分。

Android平台集成步骤:

步骤一:

下载Cocos2d-x组件(下载地址) 并且将jar包添加到build path 路径下,将res资源文件夹加入到你工程对应资源文件下。将Platforms/Android/controller目录下的com文件夹拷贝到您的Cocos2d-x项目Android平台的src目录下,并且在jni/Android.mk中的LOCAL_SRC_FILES下添加如下配置 (注意格式,否则会编译出错) :

../../Classes/Cocos2dx/Android/CCUMSocialController.cpp
../../Classes/Cocos2dx/ShareButton/UMShareButton.cpp
../../Classes/Cocos2dx/Common/CCUMSocialSDK.cpp
步骤二:

在Cocos2dxActivity子类的onCreate方法下添加如下代码,用来完成初始化步骤

// this为Cocos2dxActivity类型, 参数2为描述符,可随意修改.
CCUMSocialController.initSocialSDK(this, "com.umeng.social.share");
步骤三:

在代码中覆写Cocos2dxActivity子类的onActivityResult方法,用来实现回调方法。在onActivityResult添加如下代码 :

// 授权回调
CCUMSocialController.onActivityResult(requestCode, resultCode, data);
super.onActivityResult(requestCode, resultCode, data);

iOS平台集成步骤:

步骤一:

解压SDK压缩包,将Platforms/iOS文件夹和Cocos2dx文件夹拖入工程目录,并删除Cocos2dx/Android文件夹,添加后应该是这个效果:

步骤二:

添加系统需要的framework

Security.framework               //用于系统加密处理
libiconv.dylib                   //QQ互联的库文件
SystemConfiguration.framework    //QQ互联需要的framework
CoreGraphics.framework           //QQ互联需要的framework
Social.framework                 //分享组件需要的framework,如果不使用twitter则不需要
libsqlite3.dylib                 //QQ互联需要的framework
libstdc++.dylib                  //C++的库文件
CoreTelephony.framework          //QQ互联需要的framework
libz.dylib                       //QQ互联需要的framework
Accounts.framework               //系统需要的framework,如果不使用twitter则不需要
步骤三:

实现系统的回调方法,在Xcode工程中的ios文件夹下的AppController.mm文件中加入下面的代码:

#import "UMSocial.h"
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
  return [UMSocialSnsService handleOpenURL:url];
}


完成了上述准备工作之后,就可以开始正式的分享步骤了,友盟提供了多种分享样式,有精力的开发者可以使用底层接口,可以完全自由定制分享界面和样式,不过相信大部分开发者们使用第三方插件的初衷都是为了节省精力,所以这里就只介绍使用默认分享界面的方法,有更多需求的开发者们可以自己探索自定义界面接口部分。

步骤一:加入系统需要的头文件
// 授权回调
#include "Cocos2dx/Common/CCUMSocialSDK.h"
#include "Cocos2dx/ShareButton/UMShareButton.h"
// 使用友盟命令空间
USING_NS_UM_SOCIAL;
// ...... 代码省略
// HelloWorld为cocos2d::CCLayer的子类
bool HelloWorld::init()
{
   //////////////////////////////
   // 1. super init first
   if ( !CCLayer::init() )
   {
       return false;
   }
}
步骤二:分享按钮的创建
// 创建分享按钮, 参数1为按钮正常情况下的图片, 参数2为按钮选中时的图片,参数3为友盟appkey, 参数4为分享回调
   UMShareButton *shareButton = UMShareButton::create("shareNormal.png","shareSelected.png", "你的友盟appkey", share_selector(shareCallback)) ;
步骤三:设置分享平台及内容
// 显示在友盟分享面板上的平台
vector* platforms = new vector();
platforms->push_back(SINA);
platforms->push_back(RENREN) ;
platforms->push_back(DOUBAN) ;
platforms->push_back(QZONE) ;
platforms->push_back(QQ) ;

// 设置友盟分享面板上显示的平台
shareButton->setPlatforms(platforms);
// 设置文本分享内容
shareButton->setShareContent("umeng social Cocos2d-x sdk.") ;
// 设置要分享的图片, 图片支持本地图片和url图片, 但是url图片必须以http://或者https://开头
shareButton->setShareImage("/sdcard/header.jpeg")
// 设置按钮的位置
shareButton->setPosition(ccp(150, 180));

// 然后开发者需要将该按钮添加到游戏场景中
CCMenu* pMenu = CCMenu::create(shareButton, NULL);
pMenu->setPosition(CCPointZero);
this->addChild(pMenu, 1);
// ********************** 设置平台信息 ***************************
// CCUMSocialSDK *sdk = shareButton->getSocialSDK();
// sdk->setQQAppIdAndAppKey("设置QQ的app id", "appkey");
// sdk->setWeiXinAppId("设置微信和朋友圈的app id");
// sdk->setYiXinAppKey("设置易信和易信朋友圈的app id");
// sdk->setLaiwangAppInfo("设置来往和来往动态的app id",
//                  "设置来往和来往动态的app key", "我的应用名");
// sdk->setFacebookAppId("你的facebook appid");
// 设置用户点击一条图文分享时用户跳转到的目标页面, 一般为app主页或者下载页面
//sdk->setTargetUrl("http://www.umeng.com/social");
// 打开或者关闭log
// sdk->setLogEnable(true) ;
// **********************   END ***************************

集成到这一步就完成了,如果没有异常,应该会出现下面的界面,这说明你已经成功实现了集成工作。

好了,到这里,整个集成过程就结束了,很多人比较关心集成组件的难度,友盟君测评感觉,具备一定开发基础的研发同学可以在一天内搞定整个组件的集成,技术强的大牛,分分钟搞定。谢谢大家的阅读,希望能够帮助到大家!

组件下载传送门:http://dev.umeng.com/social/cocos2d-x/sdk-download
GitHub传送门:http://github.com/umeng/umeng-social-for-cocos2d-x

如何使用友盟 Cocos2d-x 分享组件实现 Android/iOS 分享功能

时间: 2024-10-05 04:43:41

如何使用友盟 Cocos2d-x 分享组件实现 Android/iOS 分享功能的相关文章

应用程序间跳转 (友盟SSO 授权 与系统自带的分享)

应用程序间跳转的应用场景 使用第三方用户登录,如微信登录,返回用户名和密码 需要用户授权,返回到调用程序,同时返回授权的用户名 应用程序推广,跳转到itunes并显示指定app下载页 第三方支付,跳转到支付APP,如支付宝,微信钱包 显示位置及导航功能时,跳转到第三方地图应用. 打电话.发邮件.发短信.打开网页等,跳转到内置APP程序 应用间的跳转: 1.//url :统一资源占位符 http://baidu.com tel://110 file:///apple/storebock //由 

标题:如何使用ShareSDK实现Cocos2d-x的Android/iOS分享与授权

Cocos2DX 简介 Cocos2d-x是一套成熟的开源跨平台游戏开发框架.其引擎提供了图形渲染.GUI.音频.网络.物理.用户输入等丰富的功能,被广泛应用于游戏开发及交互式应用的构建.引擎的核心采用C++ 编写,支持使用C++.Lua或者JavaScript进行开发.同时Cocos2d-x可以适配IOS.Android.HTML5.Windows和Mac系统. Cocos2d-x在中国及全球都有一定的市场份额,为了给开发出来的游戏增加知名度,更好的进行营销,社交分享功能是必不可少的.但是所要

IOS百度地图使用基础指南+原生分享&友盟分享

1.地图 1.获取用户的经纬度(CLLocationManager) 创建属性:CLLocationManager *mgr; 遵守协议:<CLLocationManagerDelegate> a>创建定位管理器 self.mgr = [[CLLocationManager alloc] init]; b>设置代理 self.mgr.delegate = self; c>开始定位 [self.mgr startUpdatingLocation]; 代理方法: -(void)l

友盟分享--集成QQ和微信

随着社交工具的应用范围越来越广,分享一些内容的功能也开始要求实现了. 用得比较多的第三方,比如说友盟,比如说Share等等... 前几天刚用友盟写了集成QQ和微信客户端的功能,觉得有必要分享一下. 在这之前,你需要有一个友盟的appkey...(木有的可去注册),并下载你所要的SDK: #import "UMSocial.h" //设置友盟分享社会化组件appkey    [UMSocialData setAppKey:UM_appkey]; 先说集成QQ的吧: 首先,在UMSocia

iOS友盟社会化分享完全攻略

1 简介 现如今几乎所有人都有社交账号和社交App,而分享功能也几乎随处可见.本文的目的在于介绍分享功能的基本实现.使用的是友盟的社会化分享组件,这样就不用一个一个对接各个平台的接口,可以使用一套接口来实现多个平台的分享功能.本文以分享到微信.QQ.微博为例. 2 开发者账号 这里说的不是创建苹果的开发者账号,而是创建友盟和各个要分享到的平台的开发者账号.和苹果开发者账号一样,要使用友盟的服务,要分享到各个平台,都需要对应的开发者账号去获取key. 2.1 友盟开发者账号及key 打开友盟的首页

Android开发中用友盟做分享的一些坑

仅限于用5.1.4版本的 按照友盟分享的API在自己的代码中修改: 1.微信分享需要打包APK文件,数字签名与微信开发申请的要一致 2.此name中属性不能修改 value为友盟的申请的appkey <meta-data   android:name="UMENG_MESSAGE_SECRET"    android:value="******************************" > 3.做微博分享时:libs里面添加SocialSDK_S

友盟推送(二)

上一篇友盟推送一,我们获取到了Device_Token,可以在友盟的后台推送消息到指定的手机.下面就介绍添加标签,删除标签 iOS 消息推送 (Message) SDK使用指南 本文档包括: 介绍 基本功能集成指南 高级功能集成指南 测试与调试 技术支持 1. 介绍 友盟消息推送组件帮助您实时的推送消息给用户. 下载的压缩包中将包括以下内容: 文件名称 介绍 UMessage_Sdk_Introductions.html 该文件介绍如何使用友盟消息推送SDK UMessage_Sdk_Relea

友盟数据战略大动作抢先看

友盟最新数据显示,2014年第三季度,中国活跃智能设备已经超过9亿,增幅达8.4%. iPhone6 和 iPhone6 plus 发布一个月的一个月内,国内活跃总量增长已达14倍.用户通过4G联网的启动次数比2014年初增长30倍,4G用户由华北华东向全国各地区扩散.可以想象,这些数据的背后,是海量的真实用户,他们或是游戏玩家.或是小说迷.社交达人… 在这个庞大的移动生态里, App 开发者对用户数据的需求,不再停留在“数量”层面的统计,他们更想知道的是“这些用户从哪里来?是不是 App 的有

“开发数据无线潜能”友盟年末战略发布会开始抢票了!

来自友盟的最新数据:中国活跃智能设备已经超过9亿,国内通过4G联网的启动次数比2014年初增长了30倍--可以想象,这些数字的背后,是海量的真实用户,他们或是游戏控.或是动漫迷.90后.社交达人- 在这个庞大的移动互联网生态里,开发者对用户数据的需求,不再停留在"数量"层面的统计,他们更想知道的是"这些用户从哪里来?是应用的核心用户吗?他们深层的喜好和需求是什么--",友盟希望通过回答这些问题与从业者一起将应用数据的价值发挥到最大化. 作为中国最大的移动开发者服务平