Share SDK 使用遇到的几个问题

鉴于之前一直使用友盟,但是一直觉的其分享界面太丑了,从网上了解后,决定改一个样式,于是我就用了ShareSDK 试试,相对来说还是漂亮一些。

Share SDK 使用遇到的几个问题_第1张图片
UM_share.png
Share SDK 使用遇到的几个问题_第2张图片
ShareSDK.jpg

怎么着,还是觉的后者漂亮

但是其中我遇到了两个问题,特此记录下。

一、怎么去掉 微信收藏

因为这个微信收藏实际上对于我们的需求和用途来说,真的可以不需要。

 NSArray * shareList = [ShareSDK getShareListWithType:
                              ShareTypeWeixiSession,
                              ShareTypeWeixiTimeline,
                              ShareTypeQQ,
                              ShareTypeQQSpace,
                         nil];
// 注意这个方法List
 [ShareSDK showShareActionSheet:container
                     shareList:shareList
                       content:publishContent
                 statusBarTips:YES
                   authOptions:nil
                  shareOptions:nil
                        result:^(ShareType type, SSResponseState state, id statusInfo, id error, BOOL end) {
                         
                        }];
二、QQ好友分享不好用

打开QQ好友,直接分享不过去。

#warning: 尚未配置QQ好友分享的URL Scheme:QQ41DAAE00, 无法进行分享

同时打开QQ空间,还报这个错,但是可以分享成功

-canOpenURL: failed for URL: "mqzoneopensdkapiV2://qzapp" - error: "(null)"
-canOpenURL: failed for URL: "mqzoneopensdkapi19://qzapp" - error: "(null)"
-canOpenURL: failed for URL: "mqzoneopensdkapi://qzapp" - error: "(null)"
-canOpenURL: failed for URL: "mqzoneopensdk://qzapp" - error: "(null)"
-canOpenURL: failed for URL: "mqzone://qzapp" - error: "(null)"
但实际上我是已经配置好那个Scheme 和 白名单了,毕竟之前友盟是用的好好的,不过这两个问题都是我点击之后才会有的。

第一、可以试试这个常用方法

登录QQ互联注册成为开发者并登记应用取得AppId(如果配置QQ空间时已申请应用Id可以不需要重复申请,直接使用QQ空间中申请的Id)。 打开-Info.plist(代表你的工程名字)。添加一项用于QQ客户端回调的URL Scheme,其格式为:"QQ” + AppId的16进制(如果appId转换的16进制数不够8位则在前面补0,如转换的是:5FB8B52,则最终填入为:QQ05FB8B52 注意:转换后的字母要大写)。

第二、上面那个也不管用时,尝试下以下方法

重新申请了一个QQ的ID,尝试后发现还是不行,另外我还换了两个账户试试还是不行,就排除了账号ID的问题。

第三、继续找原因,发现在ShareSDK中有一句这样的话。

Share SDK 使用遇到的几个问题_第3张图片
ShareSDK.png

个人就觉的还是这个添加白名单的问题,但实际上我所有关于QQ空间的都增加啦啊

    mqqapi
    mqq
    mqqOpensdkSSoLogin
    mqqconnect
    mqqopensdkdataline
    mqqopensdkgrouptribeshare
    mqqopensdkfriend
    mqqopensdkapi
    mqqopensdkapiV2
    mqqopensdkapiV3
    mqzoneopensdk
    wtloginmqq
    wtloginmqq2
    mqqwpa
    mqzone
    mqzonev2
    mqzoneshare
    wtloginqzone
    mqzonewx
    mqzoneopensdkapiV2
    mqzoneopensdkapi19
    mqzoneopensdkapi
    mqqbrowser
    mttbrowser

以上都是QQ能找的,当然要找其他白名单的,可以在SDK中的文档中找的。

最后经过专人提醒后,确定还是QQ+ID没有配置好,只要将你申请到的appId(110039323乱写的)转换成日志中提醒的那个ID(41DAAE00)就好啦,QQ好友分享就可以啦。

有点不理解,因为友盟不需要改,而ShareSDK应该是后台自己生产了自己的AppID,需要统一。另外-canOpenURL: failed for URL: "mqzone://qzapp" - error: "(null)"是系统警告可以不理会。

另外

另外记得上次打包上传的时候,遇到了一个bug,必须删除了一个QQ的删除info.plist里边的Executable file这一项才能成功,也在此标注下。

Share SDK 使用遇到的几个问题_第4张图片
Delete_Excutable
三、判断是否安装微信或QQ,因为审核的时候要注意这个问题
    if((![QQApiInterface isQQInstalled]) && (![WXApi isWXAppInstalled]))
    {
          // 判断是否安装QQ和微信
    }
    else
    {
          // 有一个安装了,就显示
        
    }

   // 此处再具体根据是否安装微信或QQ来判断
    if(![QQApiInterface isQQInstalled])
    {
        // 只有微信
        shareList = [ShareSDK getShareListWithType:
                                        ShareTypeWeixiSession,
                                        ShareTypeWeixiTimeline,
                     nil];
    }
    
    if(![WXApi isWXAppInstalled])
    {
        // 只有QQ
        shareList = [ShareSDK getShareListWithType:
                                         ShareTypeQQ,
                                         ShareTypeQQSpace,
                     nil];
    }

你可能感兴趣的:(Share SDK 使用遇到的几个问题)