Android Cocos2d-x游戏集成友盟社会化组件分享功能
最近在帮助开发者集成友盟社会化组件的过程中,发现游戏的集成过程遇到一些困难,而Cocos2d-x具有较好的代表性,因此整理了一篇关于Android Cocos2d-x游戏集成友盟社会化组件指南,由于本人水平有限,有什么错误或者有更好的方法希望大家指出,以帮助其他开发者更好的集成。
友盟社会化组件需要依赖于Activity,因此需要在你Cocos2d-x游戏的Activity ( 集成自Cocos2dActivity )中进行调用, 步骤如下 :
步骤一、在游戏Activity中定义一个静态方法, 如下示例 :
package com.umeng.game ;
…... public class UmengGameActivity extends Cocos2dxActivity {
/**
* Handler, 用于包装友盟的openShare方法,保证openShare方法在UI线程执行
*/
private static Handler mHandler = null;
/**
* 保存当前Activity实例, 静态变量
*/
private static Activity mActivity = null;
/**
* 友盟Social SDK实例,整个SDK的Controller
*/
private static UMSocialService mController = UMServiceFactory.getUMSocialService(
"com.aigcar", RequestType.SOCIAL); /**
* onCreate方法
*/
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mActivity = this;
} /**
* 载入cocos2d-x的c++代码,这里命名为umenggame
*/
static {
System.loadLibrary("umenggame");
} /**
* @Title: openShareBoard
* @Description:
* 调用友盟的openShare方法, 打开分享平台选择面板
* @throws
*/
public static void openShareBoard() {
mHandler = new Handler(Looper.getMainLooper());
mHandler.postDelayed(new Runnable() { @Override
public void run() {
if (mActivity != null) {
/**
* 设置新浪微博、QQ空间、腾讯微博的Handler,进行SSO授权
*
* 注意 : 新浪平台支持SSO则需要把友盟提供的com.sina.sso拷进src里面,
* 需要将友盟提供的libs、res文件拷贝到您的工程对应的目录里面.
*/
mController.getConfig().setSsoHandler(new SinaSsoHandler());
mController.getConfig().setSsoHandler(new QZoneSsoHandler(mActivity));
mController.getConfig().setSsoHandler(new TencentWBSsoHandler()); // 打开友盟的分享平台选择面板
mController.openShare(mActivity, false);
}
}
}, 100);
}
}
工程目录如下所示 :
图 1
步骤二、在jni层中实现调用Android中的UmengGameActivity的openShareBoard方法.
例如在这里我们命名为openUmengShareJni , 所在头文件为”yourjni.h”, 实现文件为YourJni.cpp.
…...
// 实现代码
void YourJni::openUmengShareJni()
{
JniMethodInfo methodInfo ;
// 获取UmengGameActivity的静态方法openShareBoard
bool isHave = JniHelper.getStaticMethodinfo( methodInfo,
“com/umeng/game/UmengGameActivity”, “openShareBoard”, “()V”) ; if ( isHave )
{
// 实际调用UmengGameActivity中打开umeng分享平台选择面板
methodInfo.env->CallStaticVoidMethod( methodInfo .classID, methodInfo.methodID );
}
} …...
步骤三、 在Cocos2d-x的UmengGameScene(派生自CCLayer的类,需要替换成你对应的类)中声明一个按钮, 使得点击该按钮时打开友盟的分享平台选择面板.( 这里需要include 步骤二中定义jni方法openUmengShareJni 的头文件 )
…...
include “yourjni.h”
…... bool UmengGameScene::init()
{
…...
…... /**
* 创建分享按钮
* 参数1 : 正常状态的图片
* 参数2 : 按下去时的图片
* 参数3 : 回调函数所在的类
* 参数4 : 按钮点击触发的函数
*/
CCMenuItemImage *umengShareBtn = CCMenuItemImage::create( "start_normal.png",
"start_pressed.png", this, menu_selector(AppDelegate::openUmengShare));
// 设置按钮显示位置
umengShareBtn->setPosition( ccp(CCDirector::sharedDirector()->getWinSize().width - 20, 20)); // 将按钮添加到菜单中
CMenu *menu = CCMenu::menuWithItems(umengShareBtn, NULL);
menu->setPosition(CCPointZero); // 将按钮添加到场景中
this->addChild(menu,1); …...
…...
return true ;
} // 按钮的回调函数
void UmengGameScene::openUmengShare()
{
// 调用jni方法
openUmengShareJni();
}
点击上文中声明的分享按钮时出现如图2所示面板,至此,集成成功 。
图 2
友盟社会化组件简介
友盟社会化组件是国内首款专为移动应用提供整合社交功能及社会化统计分析的工具。让应用快速具备社会化分享、登录、评论、喜欢等功能,并提供实时、全面的社会化数据统计分析服务。官方地址: http://www.umeng.com/component_social 。
Android Cocos2d-x游戏集成友盟社会化组件分享功能的更多相关文章
- Android 友盟社会化组件-分享实现
本文章链接地址:http://dev.umeng.com/social/android/share/quick-integration 分享快速集成 1 产品概述 友盟社会化组件,可以让移动应用快速具 ...
- Android集成友盟社会化分享功能
1. 产品概述 友盟社会化组件,可以让移动应用快速具备社会化分享.登录.评论.喜欢等功能,并提供实时.全面的社会化数据统计分析服务. 指南将会手把手教你使用社会化组件SDK,用5分钟为APP增加新浪 ...
- android第三方分享之友盟社会化组件
前言 现在几乎所有的app都带有分享功能,第一为了更好地推广自己的产品,第二作为使用者也能及时的把自己觉得好的文章,话题,app分享到社交平台供大家一起学习和使用.开发中虽然android系统自带分享 ...
- Windows Phone 8下 友盟社会化组件SDK的使用。
由于项目的需要,要将友盟的社会化组件SDK由0.9更新至2.0. 版本变化比较大. 1.很多类以及命名空间已经取消了. 如UmengSocialSDK.Net.Request命名空间, UmengSo ...
- React Native中集成友盟社会化分享-----童叟无欺
1.下载所需的jar,下载地址https://developer.umeng.com/sdk/reactnative?spm=a211g2.211692.0.0.28967d238GW6mC 2.将以 ...
- iOS快速集成友盟社会化分享功能(v6.1.1)
1. U-Share SDK集成 1.1 下载U-Share SDK 通过iOS社会化组件选择所需的社交平台后进行下载,下载链接http://dev.umeng.com/social/ios/sdk ...
- cocos2dx集成友盟社会化分享图片崩溃问题
本人不懂oc,一步一步按照友盟的文档做,好不容易把分享做好了,结果在 分享图片的时候宕掉了.各种测试,搞了一下午终于搞定了. 如下是友盟文档的做法,错误就在[UIImage imageNamed:@& ...
- 友盟SDK实现分享
友盟SDK文档已经写得很详细了,这边整理笔记,先过一遍流程: 1⃣️注册友盟账号以获取Appkey,下面以分享到微信为例 2⃣️申请第三方账号是因为要进行分享.授权这样的操作肯定是要通过第三方的审核( ...
- Android开发之带你轻松集成友盟统计
友盟统计是什么呢?为什么要集成他呢? 当我们需要获取自己写的软件的装机量和用户使用信息时,这时我们可以集成友盟统计. 首先到友盟统计中注册账号什么的就不废话了,直接看创建项目: 在个人中心中的管理里面 ...
随机推荐
- Nexus 5完全拆解
Nexus 5,由LG制造,配备高通骁龙四核处理器,4.95英寸1080P显示屏,支持4G LTE,运行最新的Android 4.4 KitKat原生操作系统.国外著名拆解网站iFixit第一时间带来 ...
- QT全局热键(用nativeKeycode封装API,不跨平台)
在网上找了很长时间,大家都提到了一个QT全局热键库(qxtglobalshortcut),支持跨平台.在这篇文章中,我将只展示出windows平台下全局热键的设置. 这里提供的方法是在MyGlobal ...
- Android之ListView性能优化
ListView滚动速度优化主要可以应用以下几点方法来实现: 1.使用Adapter提供的convertView convertView是Adapter提供的视图缓存机制,当第一次显示数据的时候,ad ...
- 1.Getting Started
Elasticsearch 是一个高度扩展的开源的全文搜索和分析引擎,它允许你存储,搜索和分析大量的数据和几乎实时. 它通常用于底层的存储.技术,提供应用实现负载的搜索功能和需求. 这里有一些使用的示 ...
- lwp 模拟行锁堵塞 前端超时
jrhmpt01:/root/async# cat a2.pl use LWP::UserAgent; use utf8; use DBI; use POSIX; use HTTP::Date qw( ...
- ACM_HDU 1231 最大连续子序列 (dp)_代码分析
Problem Description 给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 <= i < ...
- php:检测用户当前浏览器是否为IE浏览器
/** * 检测用户当前浏览器 * @return boolean 是否ie浏览器 */ function chk_ie_browser() { $userbrowser = $_SERVER['HT ...
- [置顶] js综合应用:表格的四则运算
在做调查问卷的过程中,遇到一个表格的统计问题,算是需要些js方面的综合知识,所以记录下来. 在上次完成了基本的求和的基础上,添加了基本的加减乘除四则运算. 基本需求简化后如下: 对应的htm了为: & ...
- 「OC」@property @synthesize和id
一.@property @synthesize关键字 这两个关键字是编译器特性,让Xcode可以自动生成getter和setter. (一)@property 关键字 @property 关键字可以自 ...
- QT 程序自定义插件
1,定义接口文件 /****************************************************************************************** ...