首页投稿(暂停使用,暂停投稿)iOS Developer程序员

iOS UMSocial:createSocialAction

2016-08-02  本文已影响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

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

上一篇下一篇

猜你喜欢

热点阅读