从官方网站上下载 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
// for sina weibo
#import
// for tencent weibo
#import
// for weixin
#import
// for qzone
#import
#import
// 注册
[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 statusInfo, id 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;
}