友盟分享(微信分享,微博分享,Facebook分享)

最近写了友盟分享,已经完全实现了,从最一开始的申请APPID到最后分享成功,跟大家细致的分享一下,希望对读者有帮住

一.  分享流程介绍

1.下载友盟分享的SDK并导入

需要注意的是要导入很多头文件:(具体步骤移步:http://dev.umeng.com/social/ios/quick-integration)

  • Security.framework
  • libiconv.dylib
  • SystemConfiguration.framework
  • CoreGraphics.Framework
  • libsqlite3.dylib
  • CoreTelephony.framework
  • libstdc++.dylib
  • libz.dylib

2  设置友盟appkey

  • 获取友盟Appkey。如果你之前已经在友盟注册了应用,获得了Appkey,可以继续使用之前获得Appkey。
  • 在代码中设置你的友盟Appkey,在 AppDelegate文件内设置你的AppKey:
 

3  配置第三方平台APPID及scheme

1.  配置第三方APPID

坑:

a.注册的时候让你输入的信息一定要对应你的APP信息

比如注册Facebook的时候,你的Bundel ID和应用名字 要统一,不然分享的时候就不会成功;

b.注意,我代码用的不是友盟自带的分享弹框样式是自定义的因为我要做国际化,没找到友盟的支持方法;

2  配置系统回调

3  配置URL scheme

不多说了,上代码吧:

//

//  AppDelegate.m

//  SPUIView

//

//  Created by WBapple on 16/1/20.

//  Copyright © 2016年 chinasofti. All rights reserved.

//

#import "AppDelegate.h"

//微信分享

#import "WXApi.h"

//友盟分享

#import "UMSocial.h"

#import "UMSocialFacebookHandler.h"

#import "UMSocialSinaSSOHandler.h"

#import "UMSocialWechatHandler.h"

@interface AppDelegate () <WXApiDelegate>

@end

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application

didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

/*****************************************分享代码********************************/

// 1.友盟分享的Key

NSString *UmengAppkey = @"57173b1ce0f55add74AAAAAAAA";

// 2.要分享的URL

NSString *Url = I18N (@"myurl");

// 3.1设置友盟社会化组件appkey

[UMSocialData setAppKey:UmengAppkey];

// 3.2设置微信AppId、appSecret,分享url

[UMSocialWechatHandler setWXAppId:@"wx1d6AAAAAAAAAA"

appSecret:@"c8e7605d0bd5f02adAAAAAAAAAAAAA"

url:Url];

// 3.3打开新浪微博的SSO开关,设置新浪微博回调地址,这里必须要和你在新浪微博后台设置的回调地址一致

[UMSocialSinaSSOHandler openNewSinaSSOWithAppKey:@"165769AAAAA"

secret:@"d09a66e00701f1AAAAAAAAAAAAAAA"

RedirectURL:Url];

// 3.4设置Facebook,AppID和分享url

[UMSocialFacebookHandler setFacebookAppID:@"576212AAAAAAAA" shareFacebookWithURL:Url];

// 4.1支持横屏

[UMSocialConfig setSupportedInterfaceOrientations:UIInterfaceOrientationMaskLandscape];

// 4.2对未安装客户端平台进行隐藏(苹果审核需要,如果不加审核不过)

[UMSocialConfig hiddenNotInstallPlatforms:@[

UMShareToWechatSession,

UMShareToWechatTimeline,

UMShareToSina,

UMShareToFacebook

]];

// 4.4分享链接

[[UMSocialData defaultData].urlResource setResourceType:UMSocialUrlResourceTypeWeb url:Url];

/*****************************************分享代码********************************/

}

#pragma mark - 分享的方法

//回调函数

- (BOOL)application:(UIApplication *)application

openURL:(NSURL *)url

sourceApplication:(NSString *)sourceApplication

annotation:(id)annotation

{

BOOL result = [UMSocialSnsService handleOpenURL:url];

if (result == FALSE)

{

//调用其他SDK,例如支付宝SDK等

SVInfo (@"分享回调函数");

}

return result;

}

- (void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response

{

//根据`responseCode`得到发送结果,如果分享成功

if (response.responseCode == UMSResponseCodeSuccess)

{

//得到分享到的微博平台名

SVInfo (@"share to sns name is %@", [[response.data allKeys] objectAtIndex:0]);

}

}

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

{

return [UMSocialSnsService handleOpenURL:url];

}

//弹出列表方法presentSnsIconSheetView需要设置delegate为self

- (BOOL)isDirectShareInIconActionSheet

{

return YES;

}

//友盟分享

#import "UMSocial.h"

// 5.0分享

{ [[UMSocialControllerService defaultControllerService] setShareText:MessageText

shareImage:[UIImage imageNamed:image]

socialUIDelegate:self];

//微信好友

[UMSocialData defaultData].extConfig.wechatSessionData.title = MessageTitle;

[UMSocialData defaultData].extConfig.wechatSessionData.shareText = MessageText;

//微信朋友圈

[UMSocialData defaultData].extConfig.wechatTimelineData.title = MessageTitle;

// Facebook

//    [UMSocialData defaultData].extConfig.facebookData.title = MessageTitle;

//    [UMSocialData defaultData].extConfig.facebookData.url = Url;

//    [UMSocialData defaultData].extConfig.facebookData.linkDescription =

//    I18N (@"Click download application");

[UMSocialData defaultData].extConfig.facebookData.shareText =

[[NSString alloc] initWithFormat:@"%@%@", MessageTitle, Url];

//微博

[UMSocialData defaultData].extConfig.sinaData.shareText = MessageTitle;

}

//分享成功调用此方法

- (void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response

{

if (response.responseCode == UMSResponseCodeSuccess)

{

//把分享完成提示框放在底部

[UMSocialConfig setFinishToastIsHidden:NO position:UMSocialiToastPositionBottom];

SVInfo (@"分享成功了");

}

}

时间: 2024-10-22 03:37:52

友盟分享(微信分享,微博分享,Facebook分享)的相关文章

2017年第一篇博客--关于集成友盟和微信支付等遇到的坑

前几天刚完工的一个定制单,需要用到分享,第三方登录,微信支付功能.因为一直都是用友盟去集成分享和第三方登录,所以项目初期就使用cocopads导入了友盟库. 上个月开始做支付功能,支付宝支付没有什么问题,按照官方文档顺利实现.到微信支付时候,下载了微信包,导入项目,顺利完成支付功能.然后开始做第三方登录,QQ登录和微信登录我打算直接使用友盟,QQ登录顺利完成,但微信登录就没那么顺利了.第一个坑,微信登录不走友盟回调,无限重新拉起授权.起初我以为是bundleid和appkey不对的问题,仔细校验

友盟第三方微信登录出现诡异的的问题(点击微信登录出现对话框)

出现的问题: 点击微信登录出现对话框,但是并不是我们自己定义的对话框,而是微信的一个对话框 解决问题: Config.dialogSwitch=false; 可以屏蔽掉友盟的dialog了,当然了,其sdk必须是5以上

[友盟]使用友盟自带的微博分享时,授权时立马跳到当前程序

没有实现以下代理方法 - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { BOOL result = [UMSocialSnsService handleOpenURL:url]; if (result == FALSE) { //调用其他SDK,例如支付宝S

友盟登录微信第三方登录报错解决linker command failed with exit code 1

:错误 Undefined symbols for architecture x86_64: "OBJC_CLASS$_UMSocialUtils", referenced from: objc-class-ref in libSocialWechat.a(UMSocialWechatHandler.o) ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with ex

android使用友盟实现第三方登录、分享以及微信回调无反应问题解决办法

        Leaning_wk每一次的进步都会拉近与成功的距离! 帐号设置退出   关闭 qq_15855289的博客 目录视图 摘要视图 订阅 异步赠书:Kotlin领衔10本好书      免费直播:AI时代,机器学习如何入门?      程序员8月书讯      每周荐书:Java Web.Python极客编程(评论送书) android使用友盟实现第三方登录.分享以及微信回调无反应问题解决办法 标签: android友盟第三方登录分享微信登录回调问题 2017-02-10 16:2

友盟分享流程

由于苹果审核政策需求,SDK中对未安装客户端平台进行隐藏,因此在未安 装QQ.微信客户端情况下,分享面板中不会出现QQ.Qzone.微信及朋友圈图标,如果需要显示,调用下面的方法,//UMShareToQQ. UMShareToQzone为要显示的平台,传nil显示所有平台 [UMSocialConfig showNotInstallPlatforms:@[UMShareToQQ,UMShareToQzone,UMShareToWechatsession]]; 1.   产品概述 友盟社会化组件

IOS友盟 社会化分享 &gt; 社会化iOS组件 &gt; 分享集成

由于苹果审核政策需求,建议大家对未安装客户端平台进行隐藏,在设置QQ.微信AppID之后调用下面的方法,[UMSocialConfig hiddenNotInstallPlatforms:@[UMShareToQQ, UMShareToQzone, UMShareToWechatSession, UMShareToWechatTimeline]]; 这个接口只对默认分享面板平台有隐藏功能,自定义分享面板或登录按钮需要自己处理 友盟分享sdk5.2.1已经兼容ipv6,请大家升级sdk,避免无法通

关于友盟分享

友盟分享不单单是申请友盟分享的key就行了,在进行qq.微信的分享时还需要再额外申请key才行. 以下是官方给出的使用具体操作方法: 由于苹果审核政策需求,建议大家对未安装客户端平台进行隐藏,在设置QQ.微信AppID之后调用下面的方法,[UMSocialConfig hiddenNotInstallPlatforms:@[UMShareToQQ, UMShareToQzone, UMShareToWechatsession, UMShareToWechatTimeline]]; 1.  分享流

iOS 友盟分享

博文一 1.集成友盟分享,需要先注册一个友盟账号,注册地址 友盟开发者平台官网  友盟集成文档 友盟sdk下载地址友盟sdk下载地址 2,成功下载sdk集成后,微信分享需要配置一下 新浪微博 之类到同样配置就行 3.整合完之后就开始上代码了 ShareManage.h [objc] view plaincopy // //  ShareManage.h //  KONKA_MARKET // //  Created by wxxu on 14/12/18. //  Copyright (c) 2

iOS开发-友盟分享(1)

1.集成友盟分享,需要先注册一个友盟账号,注册地址 友盟开发者平台官网  友盟集成文档 友盟sdk下载地址友盟sdk下载地址 2,成功下载sdk集成后,微信分享需要配置一下 新浪微博 之类到同样配置就行 3.整合完之后就开始上代码了 ShareManage.h // //  ShareManage.h //  KONKA_MARKET // //  Created by wxxu on 14/12/18. //  Copyright (c) 2014年 archon. All rights re