1. 程式人生 > >我的cocos2d-x整合sharesdk之旅(轉)

我的cocos2d-x整合sharesdk之旅(轉)

本文出自:http://www.iteye.com/topic/1130694

隨著智慧機的火速普及,現在市面上好多智慧機的遊戲(ios,android,wp,==),最近我也加入了手機遊戲開發者的行列.選擇cocos2d-x作為我們的遊戲引擎…在研究其他手機遊戲的過程中我發現,很多遊戲都有微博分享的功能,當你在遊戲裡廝殺獲得好成績的時候,你是否想跟朋友一起分享呢…微博分享無疑是一個很好的選擇。 


我的要求是能夠分享新浪微博,騰訊微博,QZone。如果是以前,你可能會下載各個平臺提供的sdk進行相應的植入。對我等初接觸微博分享開發的人來說,如果能有一套整合的框架,我的理想情況是,只需要寫weibo.share,weibo.follow,==即可解決繁瑣的解析,check等操作。經過朋友推薦,我遇到了ShareSDK。 


ShareSDK是為iOS、Android、WP8的APP提供社會化功能的一個元件,開發者只需10分鐘即可整合到自己的APP中,它不僅支援如QQ、微信、新浪微博、騰訊微博、開心網、人人網、豆瓣、網易微博、搜狐微博、facebook、twitter、google+等國內外主流社交平臺,還有強大的統計分析管理後臺,可以實時瞭解使用者、資訊流、迴流率、傳播效應等資料,有效的指導日常運營與推廣,同時為APP引入更多的社會化流量。【我是拷貝官方的introduce,抱歉我的偷懶】,詳細的介紹在http://sharesdk.cn/Index/production,感興趣的朋友可以自行參閱。 

根據ShareSDK提供的介紹我們可知他提供了若干view,自定義ui之類的方法和package,對於傳統app,他提供了友好的介面和操作行為,但由於我們的專案是cocos2d-x的介面,so…我不打算使用官方提供的關於這部分的包。如果您不打算使用自己的ui,官方提供了自定義的方法,請參閱官方sdk提供的教程。 


Sharesdk的申請流程 

請登陸http://sharesdk.cn並註冊帳號。 




註冊成功後,在首頁點選”我的應用” 


因為我之前已經建立過,無妨,點選新增按鈕 



選中您需要的平臺和應用名稱,因為我需要支援android,ios,所以建立了兩個應用,分別是PokerFaceAndroid, PokerFaceIOS用以區分。 



選擇一個應用,你將在”下載SDK”的底部發現Appkey的字樣,這個就是將來你要用到的key。下載相應的SDK備用。 

介紹一下新浪微博,騰訊微博,QZone這三個平臺的appkey的申請方法 


【新浪微博】 

進入http://open.weibo.com/developers,進行開發者帳號的申請與身份認證,具體不再贅述。 



驗證過程可能需要點時間,請稍安勿躁,看下面的介紹 

進入http://open.weibo.com/development/mobile 



點選建立應用 



輸入您應用的相關資訊,注意,選擇您需要的平臺,並建立。建立完成後可到管理介面檢視應用的基本情況。 



記下AppKey和AppSecret,接下來提供給sharesdk使用。 

這裡有個坑,如果你按照上面的步驟建立了應用,你在分享的時候會出現報錯error:redirect_uri_mismatch。解決方法就是進入應用程式-高階資訊裡設定安全設定裡的域名繫結。 



至此,sina微博的app申請流程介紹完畢,sina微博的規則是自申請之日3天后才能開啟稽核,so,這段時間加油寫程式碼吧。 

【騰訊微博】 

跟新浪微博一樣,騰訊微博也要進行類似的操作,進入http://dev.t.qq.com/development/developer/ 



填寫相關的資料進行稽核和資質驗證。 

驗證通過後點選“建立應用” 




根據提示填寫相關資料 

提交後,進入“管理中心”可以看到我們應用的基本資訊 



Tencent微博也就這麼happy的結束了 

【QZone】 

進入http://connect.qq.com/intro/login/,點選申請加入,經過一系列的申請,稽核,驗證的操作,進入管理中心 



點選建立應用 



這裡,我們選擇移動應用 



補全相關資訊。點選建立應用,我們就可以在“管理中心”內看到我們建立的應用了。 



至此,這三個平臺的註冊,建立過程介紹完畢。 

【整合概要】 

Cocos2d-x支援多種平臺,在這裡就不贅述了,我們需要在andriod,ios版本里支援微博分享功能,當然為了相容考慮,也得寫win32的實現,不過win32是以空函式來實現的,代表不做任何操作。 

微博分享,大約需要幾個東西 

分享 
關注 
授權 
取消授權 
獲取使用者id 
獲取使用者暱稱 
另外還需要以上這些行為的回撥函式進行自定義操作 

標頭檔案SocialShare.h 

+ expand source 
定義了這樣的一個頭檔案,就可以提供給win32(空函式),android和ios使用了 

SocialShareWin32.cpp 

+ expand source 
【android整合】 

下載官方sharesdk(android版),解壓後得到如下所示的檔案列表 

其中sample是一個比較全面的例子,裡面講解了各種用法,童鞋們可以自行研究,熟悉熟悉 

Libs目錄下有 

其中Global-Dependences是全域性依賴的一個包,名字叫ShareSDK-Core.jar 

Platforms裡的壓縮包檔案是各個平臺要用到的sdk包 

將其解壓,copy到自己工程裡即可使用 

ShareSDK-GUI目錄是給一鍵分享用的,我們目前用不到,so,感興趣的童鞋可以自行查閱相關資料 



新增 

用以支援授權時候的邏輯 

並新增相應的許可權 

設定完後,如果出現一些問題,請到http://bbs.sharesdk.cn/thread-45-1-1.html查詢或者留言。 

接下來修改“主activity.java” 

+ expand source 
接下來,看看jni部分咋寫 

SocialShareAndroid.cpp 

+ expand source 
Android整合sharesdk算是結束了 

【xcode整合】 

下載官方sharesdk(ios版),解壓後得到如下所示的檔案列表 

詳細整合過程請參考官方文件,我們使用的framework我提取了一下,list如下 

新增依賴框架(Framework) 

開啟專案設定中的Build Phases頁,在“Link Binary With Libraries”一欄中,點選左下角的“+”號;在彈出窗口裡面分別以下庫加入到專案中: 

SystemConfiguration.framework 

QuartzCore.framework 

libicucore.dylib 

libz.1.2.5.dylib 

//下面的描述來自官方文件 BEGIN 

開啟*-Info.plist(*代表你的工程名字)。在配置檔案中新增一項URL types 

(如果存在可以不建立),展開URL types –URL Schemes,在URL Schemes下分別各新增一項用於新浪微博和Facebook授權的Scheme(如果不新增則會導致新浪微博或Facebook的SSO授權方式無法返回應用)。其中新浪填寫格式為:sinaweibosso.2279784657,其中後面的數字段為你在新浪微博申請的AppKey。Facebook填寫格式為:fb107704292745179,其中後面的數字段為你在Facebook申請的AppKey 

//from官方文件 END 

匯入標頭檔案ShareSDK.h並初始化社交平臺的App資訊。 

開啟AppController.mm檔案,#import <ShareSDK/ShareSDK.h> 

新增實現函式 

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation 



    return [ShareSDK handleOpenURL:url sourceApplication:sourceApplication annotation:annotation wxDelegate:self]; 



-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url 



    return [ShareSDK handleOpenURL:url wxDelegate:self]; 



SocialShareIOS.mm檔案 

#include “SocialShare.h” 

#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS) 

#include 

#import <ShareSDK/ShareSDK.h> 

SocialShare *SocialShare::m_sShare = NULL; 

typedef struct WeiboUserInfo 



    std::string userID; 

    std::string userName; 

}WeiboUserInfo; 

std::map<ShareType, WeiboUserInfo> g_mapUserInfo; 

bool g_bSocialShareInited = false; 

void SocialShare::init() 



    if (!g_bSocialShareInited) 

    { 

        SocialShare::m_sShare = new SocialShare(); 

        g_mapUserInfo.clear(); 

        [ShareSDK registerApp:@"xx"]; //你註冊的sharesdk的appkey 

相關推薦

cocos2d-x整合sharesdk()

本文出自:http://www.iteye.com/topic/1130694 隨著智慧機的火速普及,現在市面上好多智慧機的遊戲(ios,android,wp,==),最近我也加入了手機遊戲開發者的行列.選擇cocos2d-x作為我們的遊戲引擎…在研究其他手機遊戲的過程

Cocos2d-x3.x遊戲開發》學習

1.addEventListenerWidthSceneGraphPriority函式,這個函式的兩個引數作用如下:    EventListener *listener:事件監聽物件,當觸控事件發生時通過它來回調;    Node *node:繫結的物件,當node物件

Cocos2d-x 3.4 消滅星星 &gt; 第三篇(終) &lt;

周期 ack ini 顏色 博客 ec2 width pri mp3格式 ***************************************轉載請註明出處:http://blog.csdn.net/lttree************************

cocos2d-x 3.2 2048 —— 第五篇

能夠 urn onf 平臺 restart getch ring article dia ***************************************轉載請註明出處:http://blog.csdn.net/lttree****************

的Java開發學習------&gt;Workspace in use or cannot be created, choose a different one.--錯誤解決的方法

原因 tracking size ons create rac 分享 target mono 今天使用Eclipse時,突然卡死了。然後我強制關閉了Eclipse,再又一次打開的時候就報錯了,錯誤例如以下: Workspace in use or cann

的Android進階------&gt;Android關於Log的一個簡單封裝

eight ron track 100% oid content amp 嚴重 center android.util.Log類,能夠方便地用於在編碼調試過程中打印日誌。可是在公布後的產品中,假設有太多的日誌打印。則會嚴重地影響性能。對android.util.Lo

的Android進階------&gt;Android二級ListView列表的實現

cat -i gravity 寫真 技術分享 家政服務 個性 韓國 服務 實現例如以下圖所看到的的二級列表效果 首先是在布局文件裏,布局兩個ListView,代碼例如以下: <LinearLayout xmlns:android="htt

的Android進階------&gt;Android編譯錯誤java.util.zip.ZipException: duplicate entry的解決方法

image bsp failed 進階 技術分享 san col get cep 今天在Android Studio中把另外一個項目引入當前項目,編譯的時候出現了java.util.zip.ZipException: duplicate entry錯誤。 錯誤例如以下

的Android進階------&gt;Android中android:windowSoftInputMode的使用方法

onf ecif 標簽 ear evel per another not 行為 面試題:怎樣在顯示某個Activity時馬上彈出軟鍵盤? 答案:在AndroidManifest.xml文件裏設置<activity>標簽的android:win

的Android進階------&gt;怎樣在多個LinearLayout中加入分隔線

lai tex pre draw white 方法 utf == 技術分享 假設要適合於全部的Android版本號,能夠在多個LinearLayout放置用於顯示分隔線的View。比如,放一個ImageView組件。然後將其背景設為分隔線的顏色或圖像,分隔線

的Android進階------&gt;MIME類型大全

blog cocoa [1] wid htm proxy strong main post 今天在實現一個安裝apk的代碼中看到一段代碼為:application/vnd.android.package-archive。不知其意。所以百度了一下,了解到這是一種M

的 K8S 架構搭建

實現 erro eat href mbed and client clust 操作 一、總體框架圖:Master組件:nkube-apiserverKubernetes API,集群的統一入口,各組件協調者,以HTTP API提供接口服務,所有對象資源的增刪改查和監聽操作都

的Android進階】解決Android Studio 運行gradle命令時報錯: 錯誤: 編碼GBK的不可映射字符

定義 編碼 string pretty 出現 mage watermark build issue 原文:【我的Android進階之旅】解決Android Studio 運行gradle命令時報錯: 錯誤: 編碼GBK的不可映射字符 1、問題描述 最近在負責公司基礎

Cocos2d-x專案建立 靜態庫生成

第一步:建立Cocos2d-x專案 Mac環境下,提前配置好Cocos2d-x環境,使用終端建立cocos2d-x原始碼專案。建立專案命令列, cocos new -l cpp MyFirstDemo 如圖: 生成專

Cocos2d-x專案建立 原生ios專案匯入Cocos2d框架

上一章: Cocos2d-x專案建立之 靜態庫生成 第一步,“Cocos2d-X原始碼”和“預編譯靜態庫”準備 Cocos2d-X原始碼可在官網下載,如: Cocos2d-X 預編譯靜態庫生成方法: Cocos2d-x專案建立之 靜態庫生成

開發了5年android,開始了go學習

奧術大師 做了近5年的android開發,最近專案也是不怎麼忙,空閒的時候總會思考一些事情,不過作為移動開發,我個人覺得很有必要學習後臺開發,由於公司是Go語言開發的,瞭解go語言一段時間後,我發現go語言的強大。基於優雅的語法和其強大的併發性,我開啟我的go學習之旅。 golang強大的資料庫

quick-cocos2d-x 學習系列十三 觸控

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

的Android進階】關於解析json資料中自帶轉義符號的正確操作

一、問題描述 在實現一個功能的時候,需要伺服器以json格式返回一段功能配置,比如如下所示的json配置。 1.1 我希望的json格式 { "k": "ClientFilterTrace_android", "isVisible": true

高頻訪問IP限制 --Openresty(nginx + lua) [反爬蟲][]

轉自[https://www.aliyun.com/jiaocheng/123498.html] 摘要:前言嗯….本人是從寫爬蟲開始程式設計的,不過後面做web寫網站去了,好了,最近web要搞反爬蟲了,哈哈哈,總算有機會把之以前做爬蟲時候見識過的反爬一點點給現在的網站用上了~做爬蟲的同志,

的Android進階】使用Retrofit進行Post請求報錯: @Field parameters can only be used with form encoding.

一、問題描述 今天隨手寫一個post請求的時候,報錯了,如下所示: 09-28 11:11:28.155 10547-10547/com.xtc.watch E/Fatal: {CrashHandler.saveAndPrintLog-58} jav