美文网首页
友盟分享使用及遇坑总结

友盟分享使用及遇坑总结

作者: 楚简约 | 来源:发表于2017-01-19 17:22 被阅读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.先使用分享面板分享,再使用直接快捷分享接口数据会混乱,需在使用直接分享时清空

    相关文章

      网友评论

          本文标题:友盟分享使用及遇坑总结

          本文链接:https://www.haomeiwen.com/subject/hvdpbttx.html