iOS-微信分享成功回调问题

2023-05-16

本人用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;
             }
         }];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS-微信分享成功回调问题 的相关文章

随机推荐

  • PTA第十五周

    6 4 指定位置输出字符串 20分 本题要求实现一个函数 xff0c 对给定的一个字符串和两个字符 xff0c 打印出给定字符串中从与第一个字符匹配的位置开始到与第二个字符匹配的位置之间的所有字符 函数接口定义 xff1a char mat
  • 6-27复习

    1 while语句的一般形式如下 xff0c 其中的循环体语句只能是一条语句 while 表达式 循环体语句 答案 xff1a T 解析 xff1a for 循环和while 循环循环体都是一条语句 xff0c 但是可以加 变成复合语句 x
  • 如何在Ubtun上安装vscode,保姆级教程

    Ubtun安装vscode 打开vm虚拟机安装VM tools 主要目的 xff1a 实现win上的文件与vm虚拟机上的文件进行共享 具体过程 参照B站 Ubuntu安装vmware tools和open vm tools Ubuntu安装
  • python matplotlib生成图表基础

    本节的目标是绘制一个y 61 x 2的函数图像 plot图表 绘制图表 plot xff08 xff09 函数绘制图表 xff0c 传入参数 xff0c 输入值和输出值 xff0c 还可以指定其他参数 plt span class toke
  • Cannot make a static reference to the non-static method XXX() from the type XXX

    不能用调用静态方法的方式调用一个非静态的方法 xff1a 我在定义方法的时候不是static的 出现这个报错是因为java调用任何方法都要实例化 xff0c c 43 43 里有函数的概念 xff0c 但是java里的函数实际上是类的方法
  • 【2022_10_17】PX4学习

    commander cpp内 int Commander custom command int argc char argv 221行 该函数接受所有commander输入的参数 xff0c strcmp比较后调用不同的函数 strcmp返
  • how to solveE:Unmet dependencies.Try‘apt --fix ^^^^^

    span class token function sudo span span class token function apt span span class token function install span span class
  • PX4报错FAILED: external/Stamp/sitl_gazebo/sitl_gazebo-configure解决

    PX4仿真gazebo报错 make px4 sitl default gazebo Configuring incomplete errors occurred span class token operator span See als
  • 汉诺塔问题的解法

    问题描述 相传在古印度圣庙中 xff0c 有一种被称为汉诺塔 Hanoi 的游戏 该游戏是在一块铜板装置上 xff0c 有三根杆 编号A B C xff0c 在A杆自下而上 由大到小按顺序放置64个金盘 如下图 游戏的目标 xff1a 把A
  • 51单片机——串口通信(发送和接受数据)

    目录 一 实现的功能 二 串口通信 2 1单片机发送数据 2 1 1串口初始化 2 1 2串口发送程序 2 1 3发送效果 2 2单片机接收数据 2 2 1串口初始化 2 2 2接收数据程序 2 2 3接收效果 一 实现的功能 通过串口 x
  • 无人机仿真SLAM_gazebo&promethues

    无人机仿真 总体概述系统要求 PX4固件简介无人机固件整体框图无人机软件框图无人机硬件模型 Mavlink模块位置估计与姿态估计模块安装与编译二次开发 机载计算机程序控制模块估计模块仿真模块SLAM模块SLAM效果演示 总体概述 无人机仿真
  • 编译orbslam2时,Pangolin could not be found because dependency Eigen3 could not be found,解决方法

    是因为使用了pangolin0 6版本 xff0c 需要重新安装0 5版本的pangolin 1 在pangolin的build文件夹下 sudo make uninstall 2 usr local include 删除pangolin文
  • CMakeLists.txt常用语法

    0 绪 cmake 是一个跨平台 开源的构建系统 它是一个集软件构建 测试 打包于一身的软件 它使用与平台和编译器独立的配置文件来对软件编译过程进行控制 1 常用命令 1 1制定cmake最小版本 cmake minimum require
  • Vue 模板

    原文 在Vue中 xff0c Vue模板对应的就是Vue中的View xff08 视图 xff09 部分 xff0c 也是Vue重中之一 xff0c 而在Vue中要了解Vue模板我们就需要从两个方面来着手 xff0c 其一是Vue的模板语法
  • Ubuntu:系统分区

    在系统分区之前 先进行磁盘分区 这里针对的是window10系统下安装ubuntu双系统 需要在window10下进行磁盘分区来安装ubuntu系统 一 磁盘分区 win10系统下 右击此电脑 xff0c 点击管理就进入磁盘管理 这时候可以
  • Mac 安装node.js

    Mac系统安装Node js xff0c 下载地址 如上图安装路径 xff1a This package will install Node js v16 19 1 to usr local bin node span class toke
  • MySQL 常用函数(二)

    ABS函数 xff1a 求绝对值 绝对值函数 ABS x 返回 x 的绝对值 正数的绝对值是其本身 xff0c 负数的绝对值为其相反数 xff0c 0 的绝对值是 0 span class token keyword SELECT span
  • MyBatis Mapper常用动态SQL之foreach 、if、choose、where、when

    if语句 lt if gt 判断语句 xff0c 用于单条件分支条件判断 使用 lt if gt 元素对参数username和jobs进行非空判断 xff0c 并动态组装SQL xff1a span class token keyword
  • Java 查看官方Java API文档

    话不多说 xff0c 直接上方法 打开官网址 xff1a http www oracle com technetwork cn java javase downloads index html 方式一 在线浏览 点击Java 文档 xff1
  • iOS-微信分享成功回调问题

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