ios积累编程知识点

友盟分享集成(支持HTTPS)

2016-11-22  本文已影响621人  凤鹃一鸣

苹果官方发出消息,2017年1月1号以后,必须全部使用https协议,至此友盟分享最新版已经可以支持https了,废话不多说,直接上过程

一.  U-Share SDK集成

1.友盟官方文档里下载SDK  ( UMSocial ),将整个UMSocial文件拖入工程中。[UMSocial有三个文件,见下图]

2. 添加项目配置

3.关闭 Bitcode 设置为NO

4.加入依赖系统库

平台依赖系统库

微信SystemConfiguration.framework

CoreTelephony.framework

libsqlite3.tbd

libc++.tbd

libz.tbd

QQSystemConfiguration.framework

libc++.tbd

新浪微博SystemConfiguration.framework

CoreTelephony.framework

ImageIO.framework

libsqlite3.tbd

libz.tbd

TwitterCoreData.framework

注:Twitter平台加入后需添加TwitterKit.framework/Resources/TwitterKitResources.bundle。

U-Share SDK平台配置

二.  U-Share SDK平台配置

添加URL Types  ( 个人爱好通过工程设置面板添加 )

三.调用U-Share SDK

1.AppDelegate.m中设置如下代码 (个人觉得添加这几个QQ,微信,微博平台就可以,不能满足你的要求,可以在官网文档上自行添加,再移除其他的平台)  

//打开日志

[[UMSocialManagerdefaultManager]openLog:YES];

//设置友盟appkey

[[UMSocialManagerdefaultManager]setUmSocialAppkey:@"57b432afe0f55a9832001a0a"];

//获取友盟social版本号

NSLog(@"友盟版本: %@", [UMSocialGlobalumSocialSDKVersion]);

//各平台的详细配置

//设置微信的appId和appKey

[[UMSocialManagerdefaultManager]setPlaform:UMSocialPlatformType_WechatSessionappKey:@"wxdc1e388c3822c80b"appSecret:@"3baf1193c85774b3fd9d18447d76cab0"redirectURL:@"http://mobile.umeng.com/social"];

//设置分享到QQ互联的appId和appKey

[[UMSocialManagerdefaultManager]setPlaform:UMSocialPlatformType_QQappKey:@"100424468"appSecret:nilredirectURL:@"http://mobile.umeng.com/social"];

//设置新浪的appId和appKey

[[UMSocialManagerdefaultManager]setPlaform:UMSocialPlatformType_SinaappKey:@"3921700954"appSecret:@"04b48b094faeb16683c32669824ebdad"redirectURL:@"http://sns.whalecloud.com/sina2/callback"];

//如果不想显示平台下的某些类型,可用以下接口设置

[[UMSocialManagerdefaultManager]removePlatformProviderWithPlatformTypes:@[@(UMSocialPlatformType_Flickr),@(UMSocialPlatformType_Linkedin),@(UMSocialPlatformType_Pinterest),@(UMSocialPlatformType_KakaoTalk),@(UMSocialPlatformType_Twitter),@(UMSocialPlatformType_Facebook),@(UMSocialPlatformType_Email)]];

2.系统回调

#warning注意如果同时使用微信支付、支付宝等其他需要改写回调代理的SDK,请在if分支下做区分,否则会影响分享、登录的回调

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

BOOLresult = [[UMSocialManagerdefaultManager]handleOpenURL:url];

if(!result) {}

returnresult;}

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

BOOLresult = [[UMSocialManagerdefaultManager]handleOpenURL:url];

if(!result) { }

returnresult; }

3.点击弹出分享面板 (举例:分享网页,其他平台查看官方Demo)

#import"UMSocialUIManager.h"

//点击分享按钮

- (IBAction)share:(id)sender {

__weaktypeof(self) weakSelf =self;

//显示分享面板

[UMSocialUIManager showShareMenuViewInView:nilsharePlatformSelectionBlock:^(UMSocialShareSelectionView *shareSelectionView,NSIndexPath*indexPath, UMSocialPlatformType platformType) {

// 根据platformType调用相关平台进行分享  

    [weakSelf shareWebPageToPlatformType:platformType];  // 分享网页

  }];          

  }

//网页分享

- (void)shareWebPageToPlatformType:(UMSocialPlatformType)platformType

{

//创建分享消息对象

UMSocialMessageObject*messageObject = [UMSocialMessageObjectmessageObject];

//创建网页内容对象

//UMShareWebpageObject *shareObject = [UMShareWebpageObject shareObjectWithTitle:@"分享标题" descr:@"分享内容描述" thumImage:[UIImage imageNamed:@"icon"]];

NSString* thumbURL =@"http://weixintest.ihk.cn/ihkwx_upload/heji/material/img/20160414/1460616012469.jpg";

UMShareWebpageObject*shareObject = [UMShareWebpageObjectshareObjectWithTitle:@"分享标题"descr:@"分享内容描述"thumImage:thumbURL];

//设置网页地址

shareObject.webpageUrl=@"http://mobile.umeng.com/social";

//分享消息对象设置分享内容对象

messageObject.shareObject= shareObject;

//调用分享接口

[[UMSocialManagerdefaultManager]shareToPlatform:platformTypemessageObject:messageObjectcurrentViewController:selfcompletion:^(iddata,NSError*error) {

if(error) {

UMSocialLogInfo(@"************Share fail with error %@*********",error);

}else{

if([dataisKindOfClass:[UMSocialShareResponseclass]]) {

UMSocialShareResponse*resp = data;

//分享结果消息

UMSocialLogInfo(@"response message is %@",resp.message);

//第三方原始返回的数据

UMSocialLogInfo(@"response originalResponse data is %@",resp.originalResponse);

}else{

UMSocialLogInfo(@"response data is %@",data);

}}  // [selfalertWithError:error];  }];

}

四.适配ios10/9

1.https传输安全  在info.plist中加入安全域名白名单 (个人觉得最好在demo里直接拖这个文件)

2.应用跳转(SSO等)(个人觉得最好在demo里直接拖这个文件)

最新的友盟分享界面

详细请看友盟官方文档:http://dev.umeng.com/social/ios/quick-integration

补充:

错误:QQAPI- QQApi.m:252 param error: url is nil

因为有些字符识别有问题,所以网页地址需要转换

//设置网页地址

NSString *str_share_url = @"https://itunes.apple.com/cn/app/芒果盒子/id1208408572?mt=8";

NSString *new_url = [str_share_url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

shareObject.webpageUrl = new_url;

上一篇下一篇

猜你喜欢

热点阅读