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

如何使用友盟 Cocos2d-x 分享组件实现 AndroidiOS 分享功能,第1张

概述Cocos2d-x作为一款优秀的跨平台游戏引擎,已经被越来越多的开发者使用,而在游戏中使用分享组件能够有效的提供用户粘性,通过分享回流来提高APP安装量,但是目前市面上能够在Cocos2d-x环境下使用的分享插件并不多,开发者们只能自己对原生分享SDK进行封装来实现,前一段时间友盟推出Cocos2d-x分享组件,我测试了一下,感觉还是比较方便的。 集成准备: 首先我简单介绍一下组件压缩包的组成 C

Cocos2d-x作为一款优秀的跨平台游戏引擎,已经被越来越多的开发者使用,而在游戏中使用分享组件能够有效的提供用户粘性,通过分享回流来提高APP安装量,但是目前市面上能够在Cocos2d-x环境下使用的分享插件并不多,开发者们只能自己对原生分享SDK进行封装来实现,前一段时间友盟推出Cocos2d-x分享组件,我测试了一下,感觉还是比较方便的。

集成准备:

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

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,data);

iOS平台集成步骤:

步骤一:

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

步骤二:
添加系统需要的framework

Security.framework               @H_301_80@//用于系统加密处理libiconv.dylib                   @H_301_80@//QQ互联的库文件SystemConfiguration.framework    @H_301_80@//QQ互联需要的frameworkCoreGraphics.framework           @H_301_80@//QQ互联需要的frameworkSocial.framework                 @H_301_80@//分享组件需要的framework,如果不使用twitter则不需要libsqlite3.dylib                 @H_301_80@//QQ互联需要的frameworklibstdc++.dylib                  @H_301_80@//C++的库文件CoreTelephony.framework          @H_301_80@//QQ互联需要的frameworklibz.dylib                       @H_301_80@//QQ互联需要的frameworkAccounts.framework               @H_301_80@//系统需要的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"@H_301_80@// 使用友盟命令空间USING_NS_UM_SOCIAL;@H_301_80@// ...... 代码省略@H_301_80@// HelloWorld为cocos2d::cclayer的子类bool HelloWorld::init(){   @H_301_80@//////////////////////////////   @H_301_80@// 1. super init first   if ( !cclayer::init() )   {       return false;   }}

步骤二:分享按钮的创建

// 创建分享按钮,参数1为按钮正常情况下的图片,参数2为按钮选中时的图片,参数3为友盟appkey,参数4为分享回调   UMSharebutton *sharebutton = UMSharebutton::create("sharenormal.png",0)">"shareSelected.png",0)">"你的友盟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) ;@H_301_80@// 设置友盟分享面板上显示的平台sharebutton->setPlatforms(platforms);@H_301_80@// 设置文本分享内容sharebutton->setShareContent("umeng social Cocos2d-x sdk.") ;@H_301_80@// 设置要分享的图片,图片支持本地图片和url图片,但是url图片必须以http://或者https://开头sharebutton->setShareImage("/sdcard/header.jpeg") ;@H_301_80@// 设置按钮的位置sharebutton->setposition(ccp(150,180));@H_301_80@// 然后开发者需要将该按钮添加到游戏场景中Ccmenu* pMenu = Ccmenu::create(sharebutton,NulL);pMenu->setposition(CCPointZero);this->addChild(pMenu,0)">1);@H_301_80@// ********************** 设置平台信息 ***************************@H_301_80@// CCUMSocialSDK *sdk = sharebutton->getSocialSDK();@H_301_80@// sdk->setQQAppIDAndAppKey("设置QQ的app ID","appkey");@H_301_80@// sdk->setWeiXinAppID("设置微信和朋友圈的app ID");@H_301_80@// sdk->setYiXinAppKey("设置易信和易信朋友圈的app ID");@H_301_80@// sdk->setLaiwangAppInfo("设置来往和来往动态的app ID",@H_301_80@//                  "设置来往和来往动态的app key","我的应用名");@H_301_80@// sdk->setFacebookAppID("你的facebook appID");@H_301_80@// 设置用户点击一条图文分享时用户跳转到的目标页面,一般为app主页或者下载页面@H_301_80@// sdk->setTargetUrl("http://www.umeng.com/social");@H_301_80@// 打开或者关闭log@H_301_80@// sdk->setLogEnable(true) ;@H_301_80@// **********************   END ***************************

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

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


转自:http://segmentfault.com/blog/umeng/1190000000583889 总结

以上是内存溢出为你收集整理的如何使用友盟 Cocos2d-x 分享组件实现 Android/iOS 分享功能全部内容,希望文章能够帮你解决如何使用友盟 Cocos2d-x 分享组件实现 Android/iOS 分享功能所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1001634.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存