189 8069 5689

android友盟分享,友盟分享集成

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

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

成都创新互联服务项目包括绥江网站建设、绥江网站制作、绥江网页制作以及绥江网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,绥江网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到绥江省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

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(" ");

// 打开或者关闭log

// sdk-setLogEnable(true) ;

// ********************** END ***************************

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

友盟登录和分享

###友盟登录分享的基本步骤

1. 登录友盟,注册账号,成为开发者,个人中心创建应用,获得appkey。

2. 进入腾讯开放平台或者微信开放平台,获取appkey和appid。

3.浏览官方文档配置工程,在info中配置回调url。

4. 在APPDelegate中引入头文件

```

#import "UMSocial.h"

#import "UMSocialWechatHandler.h"

#import "UMSocialQQHandler.h"

```

5. 设置友盟appkey和第三方平台的appkey。

6. 进入相应的viewContrller中进行分享和登录

####分享

```

//一句话分享

[UMSocialSnsService presentSnsIconSheetView:self appKey:@"575f5d0ee0f55a23b8000c4e" shareText:@"需要分享的文字,在公司里边很可能是url链接,这个url一般由后台给" shareImage:[UIImage imageNamed:@"需要分享的图片,有可能是本地图片,也可能是网络图片,如果是网络图片,需要将网络图片的地址转化为UIImage对象"] shareToSnsNames:@[UMShareToQQ,UMShareToQzone,UMShareToSina,UMShareToWechatSession,UMShareToWechatTimeline] delegate:nil];

```

####登录

```

//1、获取需要登录的第三方平台,根据平台名称,返回平台对象

UMSocialSnsPlatform *platform = [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToSina];

//2、响应方法

//参数一:表示执行操作的代理

//参数二:当前控制器需要执行的任务

//参数三:开启对当前控制器任务的执行

//参数四:登录成功之后获取到的响应

platform.loginClickHandler(self,[UMSocialControllerService defaultControllerService],YES,^(UMSocialResponseEntity *response){

//判断登录成功之后,获取用户信息

if (response.responseCode == UMSResponseCodeSuccess) {

//获取用户主体

UMSocialAccountEntity *acount = [[UMSocialAccountManager socialAccountDictionary]valueForKey:UMShareToSina];

NSLog(@"用户昵称~~%@ \n 用户头像~~%@ \n 用户Id~~%@",acount.userName,acount.iconURL,acount.usid);

}

});

```

android 微信登录和原生友盟分享的坑

1.会经常提示code been used。需要

需要延迟初始化 在分享的地方再设置。但是分享过后再登录还是会有问题

2.禁止app存储权限 glide加载图片不显示

因为使用了磁盘缓存 需要判断是否有权限 如果没有 不使用磁盘缓存

Glide.with(mContext).load().apply(getOptions(mContext)).


文章标题:android友盟分享,友盟分享集成
标题来源:http://cdxtjz.com/article/dsscgic.html

其他资讯