写在前面
公司客服反馈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(问题具体解决过程还是花了一段时间,现在忘了具体还遇到什么问题,但是问题解决结果就是这样的。有时候看上去很难得问题,或者是感觉解决不了的问题,请不要灰心,既然出现问题,就一定可以解决问题,要坚持,哈哈,再一次提醒自己,不轻易说放弃。不好意思,啰嗦了。)特别注意
友盟最新集成文档
请注意以下红色提示
end
大概就这些,希望对你有帮助,不喜勿喷哦~
网友评论