分享回调ios_ios手机分享到朋友圈成功回调里调接口失败 - CSDN
精华内容
参与话题
  • iOS 分享成功后不走回调方法

    千次阅读 2016-07-30 16:18:38
    集成友盟分享 分享成功后iOS8回调方法正常 iOS9没有回调  标签: ioscocos2d-x友盟sdktalkingdata 2016-05-17 20:08 294人阅读 评论(1) 收藏 举报  分类:   Cocos2d-x(1)  版权...
     

    集成友盟分享 分享成功后iOS8回调方法正常 iOS9没有回调 

    标签: ioscocos2d-x友盟sdktalkingdata
     294人阅读 评论(1) 收藏 举报
     分类:
     

    今天在接入友盟分享sdk的时候,发现了一个奇怪的问题,在iOS8.x上边分享成功后回调正常,但是在iOS9上边回调居然没有回调,检查了一圈没有发现什么错误啊?究竟是怎么回事呢?最后才发现原来是因为这个:

    在同时接入talkingdata和友盟分享的时候,连个sdk都会要求我们实现两个系统方法,//这两个方法的作用就是打开其他的应用,但是是有区别的,一个方法是在iOS9中回调,一个方法是在iOS8中回调

    -(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{
        [TalkingDataAppCpa onReceiveDeepLink:url];
        return  [UMSocialSnsService handleOpenURL:url wxApiDelegate:nil];
    }
    //iOS9中的回调方法,如果此方法没有定义则在iOS9中也会回调iOS8中的那个重载方法
    - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options
    {
        [TalkingDataAppCpa onReceiveDeepLink:url];
        return  [UMSocialSnsService handleOpenURL:url wxApiDelegate:nil];
    }
    如果两个方法我们只实现了第一个的话是没有问题的,而且友盟的demo中实现的也是第一个、但是问题来了,在其他的sdk中可能会要求我们同时实现iOS8和iOS9中的方法。如果我们只在ios8中的方法中调用了 [UMSocialSnsService handleOpenURL:url wxApiDelegate:nil]这个方法,而在iOS9的方法中没有写 [UMSocialSnsService handleOpenURL:url wxApiDelegate:nil]这个方法那个就会出现在iOS8上边回调正常iOS9上边无回调,所以我推荐使用上述方法来解决在iOS8上边回调正常但是在iOS9上边回调不正常的情况。
    声明:可能上述文章中存在知识性错误,如果大家有发现尽请指正,不胜感激
    展开全文
  • iOS-微信分享成功回调问题

    万次阅读 2020-03-12 16:25:20
    本人用ShareSDK做分享和第三方登录,登录先不讲,本节只做分享成功或失败后回调问题。相信好多人会有这个疑惑就是在微信分享成功后没有成功后的方法回调,我在ShareSDK论坛也发表过帖子问过,ShareSDK论坛官方技术也...

    本人用ShareSDK做分享和第三方登录,登录先不讲,本节只做分享成功或失败后回调问题。相信好多人会有这个疑惑就是在微信分享成功后没有成功后的方法回调,我在ShareSDK论坛也发表过帖子问过,ShareSDK论坛官方技术也是这么说的。

    下面看下微信好友分享成功后的状态,点击状态栏左上角那个返回按钮只回调取消方法;点击留在微信没有响应;点击返回应用也没有响应。因为留在分享平台之后分享平台是不会在将分享的信息返回给自己的应用的,所以没有办法知道状态,但依然会以Cancel状态回调。就算分享成功了,不点按钮直接返回应用也算是取消的,所以这就是为什么点击左上角的返回app走的是分享的取消回调方法。是不是很痛苦?这个不给响应怎么在自己的应用里面判断是否分享成功了呢?

    这里写图片描述

    解决办法如下分享的代码:

    #pragma mark - WXDelegate 微信分享/登录/支付方法回调
    - (void)onResp:(BaseResp *)resp {
        // 1.分享后回调类
        if ([resp isKindOfClass:[SendMessageToWXResp class]]) {
            if (resp.errCode == 0) {
                //SendMessageToWXResp *resp1 = (SendMessageToWXResp *)resp;
                [Common showSuccess:@"分享成功" view:KEYWINDOW];
            }else{
                [Common showError:@"分享失败" view:KEYWINDOW];
            }
        }
        // 2.微信登录向微信请求授权回调类
         if ([resp isKindOfClass:[SendAuthResp class]]) {
             if (resp.errCode == 0) {
                 //成功
                 if ([_wxDelegate respondsToSelector:@selector(loginSuccessByCode:)]) {
                     SendAuthResp * resp2 = (SendAuthResp *)resp;
                     [_wxDelegate loginSuccessByCode:resp2.code];
                 }
             }else [Common showError:@"授权失败" view:KEYWINDOW];
         }
        // 3.支付后回调类
        if ([resp isKindOfClass:[PayResp class]]) {
            //对支付结果进行回调
            //PayResp *resp3 = (PayResp *)resp;
        }
    }
    

    可以看到 SendMessageToWXResp是分享后回调类;SendAuthResp是微信登录授权后回调类;PayResp是支付后回调类。之前没有收到分享后回调就是因为没有判断SendMessageToWXResp。

    主要分享的方法代码:

            [ShareSDK share:shareType //传入分享的平台类型
                 parameters:shareParams
             onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) {
                 //NSLog(@"状态 = %zd",state);
                 switch (state) {
                     case SSDKResponseStateBegin:
                     {
                         //开始
                     }
                     case SSDKResponseStateSuccess:
                     {
                         //成功
                         [Common showSuccess:@"分享成功" view:KEYWINDOW];
                         break;
                     }
                     case SSDKResponseStateFail:
                     {
                         //失败
                         [Common showError:@"分享失败" view:KEYWINDOW];
                         break;
                     }
                     case SSDKResponseStateCancel:{
                         [Common showError:@"取消分享" view:KEYWINDOW];
                         //点击留在微信或者返回应用不回调方法
                         //点击状态栏处的返回应用不管是分享成功还是失败都回调取消方法
                         break;
                     }
                     default:
                         break;
                 }
             }];
    
    展开全文
  • iOS-QQ分享无法回调的问题

    千次阅读 2018-08-31 10:03:02
    由于公司的项目需要,在软件中集成了QQ、微信、新浪的SDK,以实现第三方登陆以及分享。(并未使用ShareSDK或者友盟)因此,在自己集成的时候也有遇到了各种...pragma mark - 第三方分享以及登录回调 -(BOOL)appl...

    由于公司的项目需要,在软件中集成了QQ、微信、新浪的SDK,以实现第三方登陆以及分享。(并未使用ShareSDK或者友盟)因此,在自己集成的时候也有遇到了各种问题,其中印象最深刻的是无法执行QQ的回调方法。 
      集成的过程官网都有详细的开发文档,此处就直接省略了。

    下面直接上代码:

    在Appdalagate.m中

    pragma mark - 第三方分享以及登录回调

    -(BOOL)application:(UIApplication )application openURL:(NSURL )url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation 
    {

    // 获取分享时所在的viewController
    id _self = [[AppManager share ] VC ] ;
    
    if ( YES == [ TencentOAuth CanHandleOpenURL: url ] ) {
       return [ TencentOAuth HandleOpenURL : url ] || [ WXApi handleOpenURL:url delegate : _self ] || [ WeiboSDK handleOpenURL:url delegate: _self ] ;
    }
    return [ TencentOAuth HandleOpenURL : url ] || [ WXApi handleOpenURL:url delegate : _self ] || [ WeiboSDK handleOpenURL:url delegate: _self ] || [ QQApiInterface handleOpenURL:url delegate: _self ] ;
    

    }

    -(BOOL)application:(UIApplication )application handleOpenURL:(NSURL )url 
    {

     // 获取分享时所在的viewController
    id _self = [[AppManager share ] VC ] ;
    
    if ( YES == [ TencentOAuth CanHandleOpenURL: url ] ) {
        return [ TencentOAuth HandleOpenURL : url ] || [ WXApi handleOpenURL:url delegate : _self ] || [ WeiboSDK handleOpenURL:url delegate: _self ] ;
    }
    return  [ WXApi handleOpenURL:url delegate : _self ] || [ WeiboSDK handleOpenURL:url delegate: _self ] || [ QQApiInterface handleOpenURL:url delegate: _self ] ;
    

    }

    在对应的viewController.m中实现其回调方法:

    pragma mark — The WeiXin & QQ Delegate

    -(void)onResp:(BaseResp *)resp 
    {

      // 此处需要注意的是QQ和微信回调的都是同一个方法,需要根据resp的Class类型来做相应的处理
    if ([resp isKindOfClass: [ SendMessageToQQResp class ]] ) {
    
        SendMessageToQQResp* sendResp = (SendMessageToQQResp*)resp;
    
        switch ([sendResp.result intValue])
        {
            case 0:
            {
                [ JDStatusBarNotification showWithStatus : @"分享成功" dismissAfter : 1.5 ];
                break;
            }
            default:
            {
                [ JDStatusBarNotification showWithStatus : @"分享失败" dismissAfter : 1.5 ];
                break;
            }
        }
    }else{
        SendAuthResp *aresp = (SendAuthResp *)resp;
    
        if (aresp.errCode == 0) {
    
            [ JDStatusBarNotification showWithStatus : @"分享成功" dismissAfter : 1.5 ];
        }else{
            [ JDStatusBarNotification showWithStatus : @"分享失败" dismissAfter : 1.5 ];
        }
    }
    

     

    展开全文
  • ios开发调用系统自带的分享

    千次阅读 2018-06-06 15:08:40
    1.一般情况下提到分享,我们会想到去集成某些第三方的框架,例如很多第三方分享的集合例如友盟的,集成效果如下这里只涉及到了常用的...下边主要说说系统自带的分享功能::此功能主要涉及到ios自带的UIActivityVie...

    1.一般情况下提到分享,我们会想到去集成某些第三方的框架,例如很多第三方分享的集合例如友盟的,集成效果如下


    这里只涉及到了常用的新浪、微信、及qq; 

    分享功能:三个平台都比较宽松,只有有appid,都可以进行分享!

    登录功能:微信就比较苛刻了,需要进行开发者认证,其支付功能也需要开发者认证;其他两家平台相对宽松

    2.下边主要说说系统自带的分享功能::

    此功能主要涉及到ios自带的UIActivityViewController

    1》创建其分享的标题,内容或图片或链接

        NSString *testToShare = @"分享的标题";

        UIImage *imageToShare = [UIImage imageNamed:@"client"];

        NSURL *urlToShare = [NSURL URLWithString:@"http://www.baidu.com"];

        NSArray *activityItems = @[testToShare,imageToShare,urlToShare];

    2》创建控制器,并将分享内容数组传给此控制器对象

     UIActivityViewController *activityVc = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];

    3》很多系统自带的分享功能如果不需要的可以隐去,即设置不出现在活动项目中的选项数组 

    //不出现在活动项目

    //activityVc.excludedActivityTypes=@[UIActivityTypePrint,UIActivityTypeCopyToPasteboard,UIActivityTypeAssignToContact,UIActivityTypeSaveToCameraRoll];


    4》推出控制器及分享回调

     [self presentViewController:activityVc animated:YES completion:nil];

        activityVc.completionWithItemsHandler = ^(UIActivityType  _Nullable activityType, BOOL completed, NSArray * _Nullable returnedItems, NSError * _Nullable activityError) {

            if (completed) {

                NSLog(@"分享成功");

            }else{

                NSLog(@"分享取消");

            }

            

        };

    5》系统的分享文字默认是英文的,要想改成中文的,修改info.plist中的 Localization native development region字段为China即可

    附图:



     




    展开全文
  • iOS 10 shareSDK微信分享回调失效

    千次阅读 2017-01-05 12:20:24
    解决了微信分享完成没有回调的问题
  • 今天在接入友盟分享sdk的时候,发现了一个奇怪的问题,在iOS8.x上边分享成功后回调正常,但是在iOS9上边回调居然没有回调,检查了一圈没有发现什么错误啊?究竟是怎么回事呢?最后才发现原来是因为这个: 在同时接...
  • iOS微信分享不触发回调函数onResp()解决方法此问题最近困扰了我三天,检查项目代码与网上方法对照,并没有发现不对的地方,跟断点调试,只发现微信分享后微信端并没有给应用反馈,onResp()没有触发。问题描述:线上...
  • 不得不说,友盟的客服以及论坛服务很不周到,特别是最近要获取友盟微信分享是否成功的状态,在分享回调里根本拿不到,回调根本不走。于是查看友盟论坛,提问的人很多,解答的完全没有,再咨询在线客服,回复答不到...
  • 最新的项目有个模块是微信分享,出现了下面的问题 安卓机器微信分享成功之后,是可以进入回调,但是,部分IOS的机器却不进入回调百度了好多答案,差不多都是一种回答(复制粘贴党太绝望了),下面是我的解决方案,亲测可行...
  • iOS 起微信支付页面后,点击取消或支付成功无法返回原APP问题(不管是支付还是其他,都是返回应用的问题。) 是xcode里面的url没有设置好,这个url应该是在微信公共平台(open.weixin)里面的对应开发者自己...
  • 昨天写了个微信分享功能,代码是没问题的,只有在我的IPHONE 下,分享朋友圈成功没有任何反应(分享失败,分享给朋友,Android分享都有回调); 真的很绝望,找了很多资料,有的说是分享链接加二进制编码,有的说是...
  • iOS集成微信支付总体来说还是比较容易的(如果没有那些坑的话),关于:发起支付之后只显示一个确定按钮,没有任何错误提示,断点返回的Url Schemes,也只有一个ret=-2,官方文档解释为: “无需处理。发生场景:用户...
  • 网上百度资料很少,但基本能确定,就是分享后的回调问题。 首先确认我是能回调的,因为我之前在测试项目中成功实现了,为什么移到正式项目就无法成功,而且只成功一次。 最后在手机上测试的时候,我想起分享后回到...
  • iOS程序中中使用的时web微博分享-关闭界面时出错(程序崩溃)解决:方法1. 更新最新的SDK方法2.1》、我的应用-&gt;高级信息,没有加授权回调地址:https://api.weibo.com/oauth2/default.html2》、授权回调地址...
  • iOS_系统原生分享

    千次阅读 2017-08-28 20:30:37
    iOS6.0之后,系统也提供了API实现分享功能,目前支持的分享途径参照UIActivityType。
  • 一、友盟QQ分享不走回调方法 集成友盟社会化分享后,除了QQ、QQZone以外,其他分享都能正常显示分享成功、取消分享,而QQ和QQ空间明明分享成功了,但是并没有走回调方法,不显示成功失败或者取消。原因很可能是你的...
  • 关于系统自带的分享功能 主要是在与这个类 UIActivityViewController 先上效果图 然后呢 直接上代码 大家都懂的 ^&^//分享的标题 NSString *textToShare = @"请大家登录《iOS云端与网络通讯》服务网站。"; //...
  • 请教各位大神一个愚蠢的问题,友盟分享没有回调是什么原因, appdelegate里的- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary, id> *)options有调用, [[UMSocialManager ...
  • 产品需求:在微信内分享需要手动配置的分享地址、分享图片与内容描述,引导用户分享,并在微信分享成功回调内进行相应的操作。 首先需要在项目中引入微信jsSDk包,然后通过接口获取后台签名。 封装函数获取微信...
  • 首先是关于关于IOS微信的支付分享或登录 成功起客户端操作之后,返回你的应用之后onResp:方法不被执行的问题。 //这里说明一下,上次的集成告诉大家在Appdelegate.m里加入如下两个方法,并完成对Wxi的...
1 2 3 4 5 ... 20
收藏数 14,046
精华内容 5,618
关键字:

分享回调ios