友盟分享使用及遇坑总结

2017-01-19  本文已影响0人  楚简约

一.获取友盟Appkey
如果你之前已经在友盟注册了应用,并获取到了Appkey,可以继续使用它.

如果你尚未在友盟注册开发者账号,需要先注册,注册之后登录你的账号,点击添加新应用,填写完应用基本信息后,将进入"下载SDK并添加代码"页面,此页面即可得到Appkey。

二.下载并安装SDK
~ 下载引入友盟分享SDK
~ 添加代码和资源引用

import "UMSocial.h"
#import "UMSocialSinaSSOHandler.h"

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    // 使用友盟
    [self useUMengSocialData];

    return YES;
}

- (void)useUMengSocialData {

    // 设置友盟AppKey
    [UMSocialData setAppKey:UMengAppKey];


    //第一个参数为新浪appkey,第二个参数为新浪secret,第三个参数是新浪微博回调地址,这里必须要和你在新浪微博后台设置的回调地址一致。
    [UMSocialSinaSSOHandler openNewSinaSSOWithAppKey:WBShareAppKey
                                              secret:WBShareAppSecret
                                         RedirectURL:@"http://sns.whalecloud.com"];

    //设置微信AppId,设置分享url,默认使用友盟的网址
    [UMSocialWechatHandler setWXAppId:WXAppID appSecret:WXShareAppSecret url:@"http://www.baidu.com"];

    //设置分享到QQ空间的应用Id,和分享url链接
    [UMSocialQQHandler setQQWithAppId:QQShareAppID appKey:QQShareAppKey url:@"http://www.baidu.com"];

}

/**
 这里处理新浪微博SSO授权进入新浪微博客户端后进入后台,再返回原来应用
 */
- (void)applicationDidBecomeActive:(UIApplication *)application
{
    [UMSocialSnsService  applicationDidBecomeActive];
}

也可以设置相关的宏定义

#define APPKEY_UM         @"57528d7967e58e7.................."
#define APPKEY_QQ         @"8i0qC3Pz.............."
#define APPID_QQ          @"110196............"

#define APPKEY_SINA       @"21798.........."
#define APPSecret_SINA    @"ab891238712.........................................."
#define APPKEY_WEIXIN     @"wx28ccc..........................."
#define APPSecret_WEIXIN  @"cdc9a69e.........................................."

在ViewController里面的实现

 #import "UMSocial.h"
 @interface ViewController ()<UMSocialUIDelegate>

 @end

然后实现方法

//如果需要分享回调,请将delegate对象设置self,并实现下面的回调方法

    [UMSocialData defaultData].extConfig.title = @"分享的title";
    [UMSocialData defaultData].extConfig.qqData.url = @"http://baidu.com";
    [UMSocialSnsService presentSnsIconSheetView:self
                                         appKey: APPKEY_UM
                                      shareText:@"友盟社会化分享让您快速实现分享等社会化功能,http://umeng.com/social"
                                     shareImage:[UIImage imageNamed:@"icon"]
                                shareToSnsNames:@[UMShareToWechatSession,UMShareToWechatTimeline,UMShareToSina,UMShareToQQ,UMShareToQzone]
                                       delegate:self];
  1. 如果是iOS9系统,还需要适配iOS9的HTTP传输安全问题
    适配iOS9 参照友盟官网"适配iOS9系统" --> 信任白名单
    A、在info.plist中加入安全域名白名单(右键info.plist用source code打开)
    根据自己需要分享的平台添加你所需要的,具体参考友盟官方文档链接:
    http://dev.umeng.com/social/ios/ios9
    B、在info.plist的NSAppTransportSecurity下新增NSAllowsArbitraryLoads并设置为YES,指定所有HTTP连接都可正常请求

    info.plist相关设置.jpeg
  2. 配置URL scheme
    http://dev.umeng.com/social/ios/quick-integration#1_4
    在你的工程设置项,targets 一栏下,选中自己的 target,在 Info->URL Types 中添加 URL Schemes。如果使用的是Xcode3或更低版本,则需要在plist文件中添加。获取各个平台appkey或者appid的方法可以参考分享详细文档绑定各个平台部分,各个平台的url scheme格式如下表:

scheme设置格式.jpeg scheme相关配置.jpeg

注意事项:
1.新浪微博分享时,在other linker flags增加-ObjC 选项,并添加ImageIO 系统framework
2.QQ空间分享时必须有图片,否则分享失败
3.先使用分享面板分享,再使用直接快捷分享接口数据会混乱,需在使用直接分享时清空

上一篇下一篇

猜你喜欢

热点阅读