JiaShare模块(友盟分享及第三方登录封装)JiaShare模块运用友盟分享最新版的SDK进行封装,并把一些其它不是很常用的去除,目前只支持新浪、微信聊天、微信朋友圈、QQ聊天页面、qq空间、腾讯微博;分享包括纯文本、图文、URL、视频地址、音乐地址,并在里面已经运用JavaScriptCore.framework封装好关于H5页面调用分享并传参的功能;可以直接在UIWebView里面进行调用;本模块只是对功能进行封装,对于友盟在info.plist的配置还是要自行手动,如不明白可以直接到友盟分享官网查看,项目到也有配置好一份可以直接参考;JiaPlatformHelper类里面有一个判断当前手机是否有安装相应平台软件的方法,可以用它进行隐藏相应的操作功能,避免上架时审核不过;下面的代码是在项目的AppDelegate里面进行配置
//友盟分享
JiaShareConfigManager *jiaShareConfig=[JiaShareConfigManagersharedInstance];
jiaShareConfig.shareAppKey=@"57e3f1cbe0f55a42080011ec";jiaShareConfig.shareLogEnabled=YES;
//设置平台
[jiaShareConfig setPlaform:JiaSocialPlatConfigType_Tencent appKey:@"100424468" appSecret:@"c7394704798a158208a74ab60104f0ba" redirectURL:@"http://www.umeng.com/social"];[jiaShareConfig setPlaform:JiaSocialPlatConfigType_Wechat appKey:@"wxdc1e388c3822c80b" appSecret:@"3baf1193c85774b3fd9d18447d76cab0" redirectURL:@"http://www.umeng.com/social"];[jiaShareConfig setPlaform:JiaSocialPlatConfigType_Sina appKey:@"3921700954"appSecret:@"04b48b094faeb16683c32669824ebdad"redirectURL:@"http://sns.whalecloud.com/sina2/callback"];
然后就可以进行分享,在ViewController里面进行调用,JiaSocialPlatformType是分享平台的枚举,shareUrlDataWithPlatform为URL分享方式,其它可以直接见源代码JiaShareHelper类
[JiaShareHelper shareUrlDataWithPlatform:JiaSocialPlatformType_WechatSession withShareUrl:@"http://www.sina.com.cn" withTitle:@"新浪" withDescr:@"新浪网页" withThumImage:@"http://dev.umeng.com/images/tab2_1.png" withCompletion:^(id result, NSError *error) { if(error) {
NSLog(@"分享出错了");
}
}];
如果有加载H5页面,而且也要进行分享的功能就可以使用JiaWebShareHelper,因为使用到的是JavaScriptCore,所以只能用在UIWebView中,如果你要是使用WKWebView可以自个再进行封闭,下面是加载H5页面中的webViewDidFinishLoad代码;
- (void)webViewDidFinishLoad:(UIWebView *)webView {
self.jsContext = [webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
// 通过模型调用方法,这种方式更好些。
JiaWebShareHelper *shareHelper = [[JiaWebShareHelper alloc] init];
self.jsContext[@"jia"] = shareHelper;
shareHelper.jsContext = self.jsContext;
shareHelper.webView = self.webView;
self.jsContext.exceptionHandler = ^(JSContext *context, JSValue *exceptionValue) {
context.exception = exceptionValue;
NSLog(@"异常信息:%@", exceptionValue);
};
}
H5中就可以很方便直接进行:下面简单介绍关于第三方登录跟获取用户信息的功能,其功能代码放在JiaPlatformHelper里面,已经对授权成功及获取用户信息都有回去调相应的参数回来:
if(![JiaPlatformHelper installPlatAppWithType:JiaSocialPlatformType_QQ]){
[weakSelf showResult:@"没有安装QQ软件,将此功能隐藏"];
return;
}
[JiaPlatformHelper authWithPlatform:JiaSocialPlatformType_QQ withCompletion:^(NSString *uid, NSString *openid,NSString *accessToken, NSError *error) {
if (error) {
NSLog(@"出错了");
return;
}
NSString *result=[NSString stringWithFormat:@"获得到的值为:uid:%@--token:%@--openid:%@",uid,accessToken,openid];
[weakSelf showResult:result];
}];
获取用户信息的代码如下:
[JiaPlatformHelper getUserInfoWithPlatform:JiaSocialPlatformType_QQ withCompletion:^(NSString *name, NSString *iconUrl, NSString *gender, NSError *error) {
if (error) { NSLog(@"出错了");
return;
}
NSString *result=[NSString stringWithFormat:@"获得到的值为:name:%@--性别:%@",name,gender]; [weakSelf showResult:result];
}];
关于取消授权也有相应的方法:
[JiaPlatformHelper cancelAuthWithPlatform:JiaSocialPlatformType_QQ withCompletion:^(id result, NSError *error) {
if (error) {
NSLog(@"出错了");
return;
}
NSString *ressult=@"取消成功";
[weakSelf showResult:ressult];
}];