鉴于之前一直使用友盟,但是一直觉的其分享界面太丑了,从网上了解后,决定改一个样式,于是我就用了ShareSDK 试试,相对来说还是漂亮一些。
怎么着,还是觉的后者漂亮
但是其中我遇到了两个问题,特此记录下。
一、怎么去掉 微信收藏
因为这个微信收藏实际上对于我们的需求和用途来说,真的可以不需要。
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<ISSPlatformShareInfo> statusInfo, id<ICMErrorInfo> 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中有一句这样的话。
个人就觉的还是这个添加白名单的问题,但实际上我所有关于QQ空间的都增加啦啊
<string>mqqapi</string>
<string>mqq</string>
<string>mqqOpensdkSSoLogin</string>
<string>mqqconnect</string>
<string>mqqopensdkdataline</string>
<string>mqqopensdkgrouptribeshare</string>
<string>mqqopensdkfriend</string>
<string>mqqopensdkapi</string>
<string>mqqopensdkapiV2</string>
<string>mqqopensdkapiV3</string>
<string>mqzoneopensdk</string>
<string>wtloginmqq</string>
<string>wtloginmqq2</string>
<string>mqqwpa</string>
<string>mqzone</string>
<string>mqzonev2</string>
<string>mqzoneshare</string>
<string>wtloginqzone</string>
<string>mqzonewx</string>
<string>mqzoneopensdkapiV2</string>
<string>mqzoneopensdkapi19</string>
<string>mqzoneopensdkapi</string>
<string>mqqbrowser</string>
<string>mttbrowser</string>
以上都是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这一项才能成功,也在此标注下。
三、判断是否安装微信或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];
}