多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > cocos2d-x3.2中怎么做ShareSdk的步驟

cocos2d-x3.2中怎么做ShareSdk的步驟

來源:程序員人生   發布時間:2015-01-19 09:07:40 閱讀次數:3877次
1、新建工程
2、下載sharesdk-cocos2dx-3.x版 和 android 、ios包


3、ios平臺  --添加最新的sharesdk-ios
   1-加入平臺庫
   SystemConfiguration.framework ,
   QuartzCore.framework ,
   CoreTelephony.framework ,
   libicucore.dylib ,
   libz.1.2.5.dylib ,
   Security.framework
   libstdc++.dylib   --qq和空間
   libsqlite3.dylib  --qq和空間


3⑴配置url schemes  (新浪微博如果配置,則為sso免登錄)


   實力: QQ05FB8B52,wx4868b35061f87885
   
   說明:
   QQ的AppID,其格式為:”QQ” + AppId的16進制(如果appId轉換的16進制數不夠8位則在前面補0,如轉換的是:5FB8B52,則終究填入為:QQ05FB8B52 注意:轉換后的字母要大寫)


   在微信開放平臺(http://open.weixin.qq.com/ )注冊利用并獲得利用的AppID,然后打開下圖位置,在URL Types中添加微信AppID


   配置新浪微博、Facebook的SSO(如不需要免帳號登錄可跳過
   登錄新浪微博和facebook的開放平臺,獲得AppID 。新浪微博的url scheme的設置格式為wb+AppID,facebook的設置格式為fb+AppID。具體參考下圖:




3⑵
   添加短信分享、郵件分享、打印、拷貝(如不需要可跳過)
    //連接短信分享
    [ShareSDK connectSMS];
    //連接郵件
    [ShareSDK connectMail];
    //連接打印
    [ShareSDK connectAirPrint];
    //連接拷貝
    [ShareSDK connectCopy];


3⑶ ipad分享


功能接口創建1個容器對象并調用容器對象的setIPadContainer系列方法來設置iPad版顯示容器。 1般而言,我們會建議使用1個比較小的、作為當前viewController 所控制的view 的subview 來作為“錨點”,來設置 container。例如1個已有的button。這樣分享界面或授權界面才能正確顯示。調用接口以下:


id<ISSContainer> container = [ShareSDK container];
 [container setIPadContainerWithView:sender arrowDirect:UIPopoverArrowDirectionUp];
然后將container對象傳入showShareActionSheet的第1個參數中,如: 


//彈出分享菜單
[ShareSDK showShareActionSheet:container
                         shareList:nil
                         content:publishContent
                         statusBarTips:YES
                         authOptions:nil
                         shareOptions:nil
                         result:^(ShareType type, SSResponseState state, id<ISSPlatformShareInfo> statusInfo, id<ICMErrorInfo> error, BOOL end) {
                                if (state == SSResponseStateSuccess)
                                {
                                    NSLog(@"分享成功");
                                }
                                else if (state == SSResponseStateFail)
                                {
                                    NSLog(@"分享失敗,毛病碼:%d,毛病描寫:%@", [error errorCode], [error errorDescription]);
                                }
                            }];








4、導入跨平臺包
   修改:C2DXShareSDK.cpp
   C2DXiOSShareSDK::open(CCString::createWithFormat("%s",appKey), useAppTrusteeship);


第2部:
   AppController.mm


頭文件
#import <ShareSDK/ShareSDK.h>
//微信
#import "WXApi.h"
//qq互聯
#import <TencentOpenAPI/QQApiInterface.h>
#import <TencentOpenAPI/TencentOAuth.h>


在 didFinishLaunchingWithOptions 中
 //導入微信
 [ShareSDK importWeChatClass:[WXApi class]];
    
 //導入qq互聯
 [ShareSDK importQQClass:[QQApiInterface class] tencentOAuthCls:[TencentOAuth class]];


處理handleOpenURL


- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
    return [ShareSDK handleOpenURL:url sourceApplication:nil annotation:nil wxDelegate:nil];
}


- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    return [ShareSDK handleOpenURL:url sourceApplication:sourceApplication annotation:annotation wxDelegate:nil];
}




--------------------------------------------
在AppDelegate.h中


private:
    //初始化平臺配置
    void initPlatformConfig();


在AppDelegate.cpp中


頭文件
#include "C2DXShareSDK.h"
using namespace cn::sharesdk;


init方法:
//初始化ShareSDK
C2DXShareSDK::open("api20", false);   
//初始化社交平臺信息
this->initPlatformConfig();


//新浪微博,qq和空間,微信
void AppDelegate::initPlatformConfig()
{
    //新浪微博
    __Dictionary *sinaConfigDict = __Dictionary::create();
    sinaConfigDict -> setObject(String::create("568898243"), "app_key");
    sinaConfigDict -> setObject(String::create("38a4f8204cc784f81f9f0daaf31e02e3"), "app_secret");
    sinaConfigDict -> setObject(String::create("http://www.sharesdk.cn"), "redirect_uri");
    C2DXShareSDK::setPlatformConfig(C2DXPlatTypeSinaWeibo, sinaConfigDict);
    
    //QQ空間
    __Dictionary *qzConfigDict = __Dictionary::create();
    qzConfigDict -> setObject(String::create("100371282"), "app_id");
    qzConfigDict -> setObject(String::create("aed9b0303e3ed1e27bae87c33761161d"), "app_key");
    C2DXShareSDK::setPlatformConfig(C2DXPlatTypeQZone, qzConfigDict);
    
    //微信
    __Dictionary *wcConfigDict = __Dictionary::create();
    wcConfigDict -> setObject(String::create("wx4868b35061f87885"), "app_id");
    C2DXShareSDK::setPlatformConfig(C2DXPlatTypeWeixiSession, wcConfigDict);
    C2DXShareSDK::setPlatformConfig(C2DXPlatTypeWeixiTimeline, wcConfigDict);
    C2DXShareSDK::setPlatformConfig(C2DXPlatTypeWeixiFav, wcConfigDict);
    
    //QQ
    __Dictionary *qqConfigDict = __Dictionary::create();
    qqConfigDict -> setObject(String::create("100371282"), "app_id");
    C2DXShareSDK::setPlatformConfig(C2DXPlatTypeQQ, qqConfigDict);
}








HelloWorldScene.cpp




#include "C2DXShareSDK.h"
using namespace cn::sharesdk;


幾個sharesdk回調方法:
void authResultHandler(C2DXResponseState state, C2DXPlatType platType, __Dictionary *error)
{
    switch (state) {
        case C2DXResponseStateSuccess:
            C2DXShareSDK::toast("授權成功");
            break;
        case C2DXResponseStateFail:
            C2DXShareSDK::toast("授權失敗");
            break;
        default:
            C2DXShareSDK::toast("授權取消");
            break;
    }
}


void getUserResultHandler(C2DXResponseState state, C2DXPlatType platType, __Dictionary *userInfo, __Dictionary *error)
{
    if (state == C2DXResponseStateSuccess)
    {
        //輸出用戶信息
        __Array *allKeys = userInfo -> allKeys();
        allKeys->retain();
        for (int i = 0; i < allKeys -> count(); i++)
        {
            String *key = (String *)allKeys -> objectAtIndex(i);
            Object *obj = userInfo -> objectForKey(key -> getCString());
            
            CCLog("key = %s", key -> getCString());
            if (dynamic_cast<String *>(obj))
            {
                CCLog("value = %s", dynamic_cast<String *>(obj) -> getCString());
            }
            else if (dynamic_cast<Integer *>(obj))
            {
                CCLog("value = %d", dynamic_cast<Integer *>(obj) -> getValue());
            }
            else if (dynamic_cast<Double *>(obj))
            {
                CCLog("value = %f", dynamic_cast<Double *>(obj) -> getValue());
            }
        }
        allKeys->release();
    }
}


void shareResultHandler(C2DXResponseState state, C2DXPlatType platType, __Dictionary *shareInfo, __Dictionary *error)
{
    switch (state) {
        case C2DXResponseStateSuccess:
            C2DXShareSDK::toast("分享成功");
            break;
        case C2DXResponseStateFail:
            C2DXShareSDK::toast("分享失敗");
            break;
        default:
            C2DXShareSDK::toast("分享取消");
            break;
    }
}






各種回調方法
    void authMenuItemClick(cocos2d::Ref* pSender);
    
    void cancelAuthMenuItemClick(cocos2d::Ref* pSender);
    
    void hasAuthMenuItemClick(cocos2d::Ref* pSender);
    
    void getUserInfoMenuItemClick(cocos2d::Ref* pSender);
    
    void shareMenuItemClick(cocos2d::Ref* pSender);


各種實現:
void HelloWorld::authMenuItemClick(cocos2d::Ref* pSender)
{
    C2DXShareSDK::authorize(C2DXPlatTypeFacebook, authResultHandler);
}


void HelloWorld::cancelAuthMenuItemClick(cocos2d::Ref* pSender)
{
    C2DXShareSDK::cancelAuthorize(C2DXPlatTypeSinaWeibo);
}


void HelloWorld::hasAuthMenuItemClick(cocos2d::Ref* pSender)
{
    if (C2DXShareSDK::hasAutorized(C2DXPlatTypeSinaWeibo))
    {
        C2DXShareSDK::toast("用戶已授權");
    }
    else
    {
        C2DXShareSDK::toast("用戶還沒有授權");
    }
}


void HelloWorld::getUserInfoMenuItemClick(cocos2d::Ref* pSender)
{
    C2DXShareSDK::getUserInfo(C2DXPlatTypeSinaWeibo, getUserResultHandler);
}


void HelloWorld::shareMenuItemClick(cocos2d::Ref* pSender)
{
    __Dictionary *content = __Dictionary::create();
    //Dictionary可用的Key以下,如果需要用到其它字段,可自行參考Sample中的代碼實現:
    // (其實不是所有平臺都有這些字段,需要參考文檔http://wiki.mob.com/Android_%E4%B8%8D%E5%90%8C%E5%B9%B3%E5%8F%B0%E5%88%86%E4%BA%AB%E5%86%85%E5%AE%B9%E7%9A%84%E8%AF%A6%E7%BB%86%E8%AF%B4%E6%98%8E)
    
    content -> setObject(String::create("這是1條測試內容"), "content"); //要分享的內容,注意在文檔中content對應的是text字段
    content -> setObject(String::create("http://img0.bdstatic.com/img/image/shouye/systsy⑴1927417755.jpg"), "image"); //可以是本地路徑(如:/sdcard/a.jpg)或是1個URL
    content -> setObject(String::create("測試標題"), "title");
    content -> setObject(String::create("測試描寫"), "description");
    content -> setObject(String::create("http://sharesdk.cn"), "url");
    content -> setObject(String::createWithFormat("%d", C2DXContentTypeNews), "type");
    content -> setObject(String::create("http://sharesdk.cn"), "siteUrl");
    content -> setObject(String::create("ShareSDK"), "site");
    content -> setObject(String::create("http://mp3.mwap8.com/destdir/Music/2009/20090601/ZuiXuanMinZuFeng20090601119.mp3"), "musicUrl");
    content -> setObject(String::create("extInfo"), "extInfo"); //微信分享利用時傳給利用的附加信息
    C2DXShareSDK::showShareMenu(NULL, content, Vec2(100, 100), C2DXMenuArrowDirectionLeft, shareResultHandler);
    //    C2DXShareSDK::showShareView(C2DXPlatTypeSinaWeibo, content, shareResultHandler);
}




--------------
初始化菜單
//---------------------ShareSDK 菜單開始
    MenuItemLabel *authMenuItem = MenuItemLabel::create(LabelTTF::create("授權", "Arial", 40),
                                                        this,
                                                        menu_selector(HelloWorld::authMenuItemClick));
    MenuItemLabel *cancelAuthMenuItem = MenuItemLabel::create(LabelTTF::create("取消授權", "Arial", 40),
                                                              this,
                                                              menu_selector(HelloWorld::cancelAuthMenuItemClick));
    MenuItemLabel *hasAuthMenuItem = MenuItemLabel::create(LabelTTF::create("是不是授權", "Arial", 40),
                                                           this,
                                                           menu_selector(HelloWorld::hasAuthMenuItemClick));
    MenuItemLabel *getUserMenuItem = MenuItemLabel::create(LabelTTF::create("用戶信息", "Arial", 40),
                                                           this,
                                                           menu_selector(HelloWorld::getUserInfoMenuItemClick));
    MenuItemLabel *shareMenuItem = MenuItemLabel::create(LabelTTF::create("分享", "Arial", 40),
                                                         this,
                                                         menu_selector(HelloWorld::shareMenuItemClick));
    
    Menu *itemsMenu = Menu::create(authMenuItem, cancelAuthMenuItem, hasAuthMenuItem, getUserMenuItem, shareMenuItem, (MenuItemLabel*)NULL);
    itemsMenu -> alignItemsHorizontallyWithPadding(20);
    itemsMenu -> setPosition(ccp(Director::getInstance() -> getWinSize().width / 2, 100));
    this -> addChild(itemsMenu);
    //---------------------ShareSDK 菜單結束




----------------------------------------------


android集成  ---注意 后臺包名和key


1、導入proj.android,并copy cocos2dx lib并將project.properties的lib援用移除


2、配置簡單的lib庫
   1-將android的庫改稱 4.0.3,并將援用移除
   2- 新建libs并將 sharesdk的lib包拷貝進去(下載定制的sharesdk lib包)
      libs---mainlib里的libs拷貝進去,onekeyshare的libs


   3、把ShareSDK的cocos2dx的sample項目里的res拷貝到項目中覆蓋


   4、修改AndroidManifest.xml


     1-添加activity到application
     <activity
            android:name="cn.sharesdk.framework.ShareSDKUIShell"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:theme="@android:style/Theme.Translucent.NoTitleBar"
            android:windowSoftInputMode="stateHidden|adjustResize" >
            <intent-filter>
                <data android:scheme="tencent100371282" />
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.BROWSABLE" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
         
        <!--微信分享回調 -->
        <activity
               android:name=".wxapi.WXEntryActivity"
               android:theme="@android:style/Theme.Translucent.NoTitleBar"
               android:configChanges="keyboardHidden|orientation|screenSize"
               android:exported="true"
               android:screenOrientation="portrait" /> 




 2、添加權限


     <uses-permission android:name="android.permission.GET_TASKS" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />


?
3、 copy assets下的ShareSDK.xml 并做修改:
    默許微信不能跳過審核,致使調不出來分享界面,
    將BypassApproval設置為true
    <Wechat
        Id="3"
        SortId="3"
        AppId="wxa07ce7fdf0c98af0"
        BypassApproval="true"
        Enable="true" />


    <WechatMoments
        Id="4"
        SortId="4"
        AppId="wxa07ce7fdf0c98af0"
        BypassApproval="true"
        Enable="true" />



Cocos新手學習必備源碼啊,大量本人寫的的源碼(有些商業的淘寶店木有放出來,可以私聊),ARPG,動作射擊,闖關益智,可學習可運營 個人淘寶店,合適新手,我還可以做技術支持,幫助換皮,帶新手等http://shop115423056.taobao.com/?spm=2013.1.1000126.d21.AY74YW

不懂的可以加我的QQ群: 239982941(cocos2d-x 3.x學習群)歡迎你的到來哦,看了博文給點腳印唄,謝謝啦~~



  



































生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 欧美另类xxxxhd高清 | 国产一区二区日韩欧美在线 | 窝窝午夜视频 | 亚洲伊人久久大香线蕉综合图片 | 精品久久成人免费第三区 | 尤物视频网在线观看 | 日本高清护士xxxx一21 | 亚洲黄色免费在线观看 | 激情在线观看视频 | 国产亚洲精品久久久久久久久激情 | 亚洲国产欧美日韩精品小说 | 久久爱伊人 | 欧美疯狂性受xxxxx另类 | 啪啪.com| 羞羞影院体验区 | 高清国产精品久久久久 | 中文字幕在线视频免费观看 | 九一国产精品 | 国产成人午夜性a一级毛片 国产成人系列 | 性欧美丨18一19| 欧美日韩大尺码免费专区 | 国产呦合第一系 | 国产精品福利社 | 99热这里只精品99re66 | 精品国产乱码一区二区三区 | 亚洲欧美日韩国产精品 | 国产麻豆免费观看 | 欧美三级真做在线观看 | 亚洲欧洲国产精品久久 | 性8sex亚洲区入口 | 日本一级免费 | 国产视频一区在线观看 | 国产成在线观看免费视频成本人 | 手机在线看 | 在线播放国产一区 | 欧美日韩视频二区三区 | 日本在线一本 | 欧美性a欧美在线 | 国产精品视频视频久久 | h网站在线看 | 亚洲另类视频在线观看 |