cocos2dx ios 集成 shareSDK

从官方网站上下载 ShareSDK For iOS 按照官方的文档添加到项目中

微信分享必须调用微信客户端才能分享

新浪微博,腾讯微博可以使用客户端,也可以使用Web分享


要使用客户端分享,必须在项目的 info.plist 中添加 url schemes,程序也要处理 url 打开事件

因为 IOS 系统中,两个APP间的通信只能使用 url schemes 实现

微信的 url schemes 的格式是:wx+appId

新浪微博和腾讯微博的 url schemes 的格式是:wb+appId


微博分享时如果安装了客户端,项目也设置了 url schemes ,就会调用客户端分享

否则弹出网页来分享


分享的代码:

// shareSDK
#import <ShareSDK/ShareSDK.h>
// for sina weibo
#import <WeiboSDK.h>
// for tencent weibo
#import <WeiboApi.h>
// for weixin
#import <WXApi.h>
// for qzone
#import <TencentOpenAPI/QQApiInterface.h>
#import <TencentOpenAPI/TencentOAuth.h>
 
// 注册
[ShareSDK registerApp:@"xxxxxxxxx"];
 
// weixin
[ShareSDK connectWeChatWithAppId:@"xxxxxx"
                       appSecret:@"xxxxxxxxxxxxxxxxxxxxxx"
                       wechatCls:[WXApi class]];
 
// sina weibo
[ShareSDK connectSinaWeiboWithAppKey:@"xxxxxxx"
                           appSecret:@"xxxxxxxxxxxxxxxxxxx"
                         redirectUri:@"https://api.weibo.com/oauth2/default.html"
                         weiboSDKCls:[WeiboSDK class]];
 
// tencent weibo (旧版本不支持 arm64)
[ShareSDK connectTencentWeiboWithAppKey:@"xxxxxx"
                              appSecret:@"xxxxxxxxxxxxxxxxxxxxxxxxxx"
                            redirectUri:@"https://api.weibo.com/oauth2/default.html"
                               wbApiCls:[WeiboApi class]];
 
// 不弹框,直接分享内容
[ShareSDK shareContent:publishContent
                  type:(ShareType) platform
           authOptions:authOptions
         statusBarTips:NO
                result:^(ShareType type, SSResponseState state, id<ISSPlatformShareInfo> statusInfo, id<ICMErrorInfo> error, BOOL end) {
                    NSString * result = handleResult(type, state, statusInfo, error, end);
                    if (result) {
                        callback([result UTF8String]);
                    }
                }];


在 AppController.mm 中添加代码处理 url schemes 事件:

// 分享的时候要用到
- (BOOL)application:(UIApplication *)application
      handleOpenURL:(NSURL *)url
{
    BOOL isDeal = [[ShareSDK_IOS getInstance] handleOpenURL:url];
    return isDeal;
}
 
// 分享的时候要用到
- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation
{
    BOOL isDeal = [[ShareSDK_IOS getInstance] handleOpenURL:url sourceApplication:sourceApplication annotation:annotation];
    return isDeal;
}


你可能感兴趣的:(cocos2dx ios 集成 shareSDK)