iOS UMSocial:createSocialAction

作者: 凉风起君子意如何 | 来源:发表于2016-08-02 11:45 被阅读367次

    写在前面

    公司客服反馈APP分享功能出现404错误。

    一.查找问题

    友盟社交化组件(sdk)版本太旧,须更新升级;
    腾讯微博须认证授权;
    新浪微博须认证授权。

    二.调试问题

    delete项目中之前的sdk4.4老版本,导入umeng_ios_social_sdk_5.2.1_arm64_custom最新sdk。相关代码设置如下:

    AppDelegate.h

    #import "UMSocial.h"
    #import "UMSocialWechatHandler.h"
    #import "UMSocialQQHandler.h"
    #import "UMSocialSinaSSOHandler.h"
    #import "SudokuViewController.h"
    

    AppDelegate.m

    #pragma -mark UMSocial
    - (void)setUMSocial
    {
        [UMSocialData setAppKey:appKey_umsocial];
    }
    - (BOOL)application:(UIApplication *)application
                openURL:(NSURL *)url
      sourceApplication:(NSString *)sourceApplication
             annotation:(id)annotation
    {
        BOOL result = [UMSocialSnsService handleOpenURL:url];
        if (result == FALSE) {
            //调用其他SDK,例如支付宝SDK等。接收并处理交易结果,
            
        }
        return result;
    }
    

    调用的viewcontroller里面,.h文件里面实现如下协议

    #import <UIKit/UIKit.h>
    #import "AppDelegate.h"
    @interface MoreViewController : UIViewController<UMSocialUIDelegate,UMSocialDataDelegate>
    {
        ......
    }
    

    .m文件里面代码如下

    [self setupUMShare]; //放在你要调用的地方
    
    #pragma -mark UMSocial
    -(void)setupUMShare
    {
        //设置微信AppId、appSecret,分享url
        [UMSocialWechatHandler setWXAppId:appID_weixin appSecret:appSecret_weixin url:url_share];
        //当分享消息类型为图文时,点击分享内容会跳转到预设的链接
        [UMSocialData defaultData].extConfig.wechatSessionData.url = url_share;
        //微信好友
        [UMSocialData defaultData].extConfig.wechatSessionData.title = title_share;
        //朋友圈
        [UMSocialData defaultData].extConfig.wechatTimelineData.url = url_share;
        [UMSocialData defaultData].extConfig.wechatTimelineData.title = title_share;
        [UMSocialData defaultData].extConfig.wxMessageType = UMSocialWXMessageTypeImage;
        //应用分享类型如果用户已经安装应用,则打开APP,如果为安装APP,则提示未安装或跳转至微信开放平台
        [UMSocialData defaultData].extConfig.wxMessageType = UMSocialWXMessageTypeApp;
        
        //设置分享到QQ/Qzone的应用Id,和分享url 链接
        [UMSocialQQHandler setQQWithAppId:appID_qq appKey:appKey_qq url:url_share];
        [UMSocialData defaultData].extConfig.qqData.url = url_share;
        [UMSocialData defaultData].extConfig.qqData.title = title_share;
        [UMSocialData defaultData].extConfig.qzoneData.url = url_share;
        [UMSocialData defaultData].extConfig.qzoneData.title = title_share;
        
        
        
        //第一个参数为新浪appkey,第二个参数为新浪secret,第三个参数是新浪微博回调地址,这里必须要和你在新浪微博后台设置的回调地址一致。
        [UMSocialSinaSSOHandler openNewSinaSSOWithAppKey:appKey_sina
                                                  secret:appSecret_sina
                                             RedirectURL:redirectURL_sina];
        
        
        [UMSocialSnsService presentSnsIconSheetView:self
                                             appKey:appKey_umsocial
                                          shareText:text_share
                                         shareImage:[UIImage imageNamed:imgName_share]
                                    shareToSnsNames:@[UMShareToWechatSession,UMShareToWechatTimeline,UMShareToSina,UMShareToQQ,UMShareToQzone,UMShareToTencent]
                                           delegate:self];
    }
    
    -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response
    {
        //根据`responseCode`得到发送结果,如果分享成功
        if(response.responseCode == UMSResponseCodeSuccess)
        {
            //得到分享到的平台名
            NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]);
        }
    }
    -(void)didFinishGetUMSocialDataResponse:(UMSocialResponseEntity *)response
    {
        
    }
    

    相关配置

    URL scheme配置 兼容iOS9 https设置 回调设置,这个要设置,不然会出现点击qq分享或者是别的分享没有反应或者奔溃的错误

    三.问题解决

    如图添加-ObjC参数,回车,确保添加成功,ok(问题具体解决过程还是花了一段时间,现在忘了具体还遇到什么问题,但是问题解决结果就是这样的。有时候看上去很难得问题,或者是感觉解决不了的问题,请不要灰心,既然出现问题,就一定可以解决问题,要坚持,哈哈,再一次提醒自己,不轻易说放弃。不好意思,啰嗦了。)

    特别注意

    友盟最新集成文档
    请注意以下红色提示

    集成的时候仔细看看清这句话哦,本人就不小心看成了-Objct之后导致出错,之后网上各种搜索,问友盟技术,最后又反过来看这个集成文档,才恍然大悟,大大的鄙视自己呀。以后一定要细心认真!(后期会记录更新一篇编译参数-ObjC,-all_load,-force_load异同点的文章)

    end

    大概就这些,希望对你有帮助,不喜勿喷哦~

    相关文章

      网友评论

        本文标题:iOS UMSocial:createSocialAction

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