关于分享估计很多都用的是ShareSDK的社会化分享,简单方便,支持的种类很多,但是一般的话都还是QQ,微信,新浪微博,腾讯微博为主。

最近需要导入一个分享的模块,失败了几次之后最终成功,分享给大家,让大家少走一些弯路,让大家更快的搞定IOS分享的问题。

步骤如下:

先下载ShareSDK。

导入项目

导入所需要的一些库文件

去各个开放平台注册自己的APPKey,创建自己的应用。

最后到项目里配置各个平台的AppKey等等。

进入正文:

1.注册ShareSDK的账号,然后创建自己的应用(要用到APPKey),下载ShareSDK:http://sharesdk.mob.com/#/sharesdk,然后解压,导入自己的项目里,接着就是按照官网上的添加额外的依赖库,剩下的就是怎么把分享功能实现。

2.注册各个平台的AppKey

首先要注册账号,再接着创建应用,找到对应的AppKey即可。下面是比较常用的三个平台的链接。

3.在代码里注册ShareSDK还有各个平台。

首先要导入头文件

#import

#import

#import

#import

#import "WXApi.h"

#import "WeiboSDK.h"

接着只要在下面的这个方法里加入这段代码就可以了

- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions ;这个方法里加入这段代码就可以(AppKey需要填写自己的新浪微博还有回调地址都要一样)。

代码如下:

[ShareSDK registerApp:@"你注册的ShareSDKAppKey" activePlatforms:

//分享的平台,这里只有新浪微博,QQ,微信

@[

@(SSDKPlatformTypeSinaWeibo),

@(SSDKPlatformTypeWechat),

@(SSDKPlatformTypeQQ)

]

onImport:^(SSDKPlatformType platformType)

{

switch (platformType)

{

//同样这里和上面一一对应

case SSDKPlatformTypeSinaWeibo:

[ShareSDKConnector connectWeibo:[WeiboSDK class]];

break;

case SSDKPlatformTypeWechat:

[ShareSDKConnector connectWeChat:[WXApi class]];

break;

case SSDKPlatformTypeQQ:

[ShareSDKConnector connectQQ:[QQApiInterface class] tencentOAuthClass:[TencentOAuth class]];

break;

default:

break;

}

}

onConfiguration:^(SSDKPlatformType platformType, NSMutableDictionary *appInfo)

{

switch (platformType)

{

//这里也是一样和上面一一对应

case SSDKPlatformTypeSinaWeibo:

//设置新浪微博应用信息,其中authType设置为使用SSO+Web形式授权

[appInfo SSDKSetupSinaWeiboByAppKey:@"新浪微博的AppKey" appSecret:@"新浪微博的Secret" redirectUri:@"回调地址" authType:SSDKAuthTypeBoth];

break;

case SSDKPlatformTypeWechat:

//设置微信应用信息

[appInfo SSDKSetupWeChatByAppId:@"微信的AppId" appSecret:@"微信的Secret"];

break;

case SSDKPlatformTypeQQ:

//设置QQ应用信息,其中authType设置为只用SSO形式授权

[appInfo SSDKSetupQQByAppId:@"QQ的AppId" appKey:@"QQ的AppKey" authType:SSDKAuthTypeSSO];

break;

default:

break;

}

}

];

4.接着就是写分享的参数(就是触发分享事件的地方,来调用分享的界面)。

首先也要导入头文件

#import

#import

#import

#import

#import "WXApi.h"

#import "WeiboSDK.h"

接着只要在下面的这个方法里加入这段代码就可以了

将下面的这段代码放到触发点击事件的那个地方就可以。

//1、创建分享参数

NSArray* imageArray = @[[UIImage imageNamed:@"分享时的图片"]];

//(注意:图片必须要在Xcode左边目录里面,名称必须要传正确,如果要分享网络图片,可以这样传iamge参数 images:@[@"http://mob.com/Assets/images/logo.png?v=20150320"])

if (imageArray)

{

NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];

[shareParams SSDKSetupShareParamsByText:@"分享的内容" images:imageArray url:[NSURL URLWithString:@"分享的网址"] title:@"分享的标题" type:SSDKContentTypeAuto];

//2、分享(可以弹出我们的分享菜单和编辑界面)

//要显示菜单的视图, iPad版中此参数作为弹出菜单的参照视图,只有传这个才可以弹出我们的分享菜单,可以传分享的按钮对象或者自己创建小的view 对象,iPhone可以传nil不会影响

[ShareSDK showShareActionSheet:nil items:nil shareParams:shareParams onShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end)

{

switch (state)

{

case SSDKResponseStateSuccess:

{

UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"分享成功" message:nil delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil];

[alertView show];

break;

}

case SSDKResponseStateFail:

{

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"分享失败" message:[NSString stringWithFormat:@"%@",error] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];

[alert show];

break;

}

default:

break;

}

}];

}

5.设置调用QQ微信和微博客户端

如图:

设置微信:微信的AppID前面要加上wx

设置QQ:

在URL Types中添加QQ的AppID,其格式为:”QQ” + AppId的16进制(如果appId转换的16进制数不够8位则在前面补0,如转换的是:5FB8B52,则最终填入为:QQ05FB8B52 注意:转换后的字母要大写) 转换16进制的方法:echo 'ibase=10;obase=16;801312852'|bc,其中801312852为QQ的AppID。比如下图:

设置新浪微博:

还需要这样

这样基本上就可以了。

重点来了,如果这样还是不能分享的话可能是因为你没有把QQ和微信加入白名单

在项目的plist文件中添加如下内容(白名单):

LSApplicationQueriesSchemes

wechat

weixin

mqzoneopensdk

mqzoneopensdkapi

mqzoneopensdkapi19

mqzoneopensdkapiV2

mqqOpensdkSSoLogin

mqqopensdkapiV2

mqqopensdkapiV3

wtloginmqq2

mqqapi

mqqwpa

mqzone

mqq

sinaweibo

sinaweibohd

sinaweibosso

sinaweibohdsso

weibosdk

weibosdk2.5

TencentWeibo

tencentweiboSdkv2

如果你的项目是一个新项目还没写网络请求的话那还有一段也要加上

NSAppTransportSecurity

NSAllowsArbitraryLoads

这样的话基本上应该就没有什么问题了,QQ和微信必须用带有QQ和微信的真机才能出来,所以模拟器是出不来QQ和微信的。

等你的应用上线的时候一定要把你各个平台的信息统一一下,防止出错。

剩下的就是等你的应用审核通过之后把各个平台的在看一下,有的还需要审核。

还有就是ShareSDK默认显示是英语,还需要在本地化一个汉语,

如图:

sharesdk分享失败404_ShareSDK分享失败的原因相关推荐

  1. [经历分享]Mac安装Windows10失败/计算机意外地重新启动或遇到错误/无限蓝屏critical process died/尝试访问启动磁盘设置时出错

    [经历分享]Mac安装Windows10失败/计算机意外地重新启动或遇到错误/无限蓝屏critical process died/Bootcamp尝试访问启动磁盘设置时出错/window10安装一直卡 ...

  2. android 分享微信小程序失败,从一次失败的微信小程序抓包、反编译经历中学习反思...

    某天看到群里某个朋友说某小程序抓不到包,我突然就来了兴趣,我也试着分析了下这个小程序,名字我就不说了,本着我个人兴趣分析学习的目的. 我用安卓和IOS,以及charles和fiddler都试了,还真的 ...

  3. 硬盘满了 mysql启不来_MySQL数据库之磁盘已满造成的mysql启动失败问题分享

    本文主要向大家介绍了MySQL数据库之磁盘已满造成的mysql启动失败问题分享 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 突然发现mysql死活都启不起来了: 复制代码 代 ...

  4. android 微信分享多张图片大小,Android 关于微信分享图片过大失败的解决方案

    android 关于微信分享图片过大失败的解决方案.这是因为微信对缩略图做了限制,最大不超过32k. 所以可以先通过图片加载工具获取bitmap,然后进行压缩,压缩方法如下: //压缩图片 publi ...

  5. 友盟qq分享回调无论成功失败全部跳转onCancel

    友盟社会化sdk,qq分享回调无论成功失败全部跳转onCancel 解决方法:application中的qqid和manifests的qqid需要填写同一个,如果用默认的就全都用默认id.

  6. vue 单页面应用 做公众号,微信自定义分享,ios端失败

    1.有人说是vue项目ios端地址栏 不会变,我是用的 window.location.href 来传给后台生成config参数的,所以解决了 2.自定的分享不触发,打开 wx.config({deb ...

  7. 自动测试容易失败?这5个原因你值得反思!

    之前在某测试论坛中,吐槽自己公司自动化测试项目失败,大概过程是自己所在部门的自动化测试经历了几次步进式的建设,都具有阶段性的成果,但是总的看来却不是一个成功的案例. 因为赶进度,仓促的投入让一大堆的脚 ...

  8. ShareSDK接入实现微信分享功能(转)

    ShareSDK接入实现微信分享功能 首先需要去Mob官网(http://www.mob.com/)下载shareSDK For Unity3d 下载完成,解压,将以下plugins文件夹移入Unit ...

  9. SQL Server 2008备份数据库失败,拒绝访问的原因

    SQL Server 2008备份数据库失败,拒绝访问的原因 原文:SQL Server 2008备份数据库失败,拒绝访问的原因 备份数据到特定目录是出现拒绝访问,然后测试备份到C盘根目录正常. 查了 ...

最新文章

  1. 2021牛客暑期多校训练营3 C-Minimum grid(二分图)
  2. 文件共享服务器imac,iMac怎么在网络上共享设备windows文件夹和服务 | MOS86
  3. linux内核的I2C子系统详解2——关键结构体、关键文件
  4. vim函数跳转 php,求助!! vim-gvim中如何让其显示函数及其参数!!
  5. 区间合并(信息学奥赛一本通-T1236)
  6. wpf TextBox点击去除下划线
  7. Swift去除两边的特定字符(空格或其它)
  8. 怎么看待传菜机器人_比拼食材原料、使用机器人传菜,餐饮业如何把握大消费时代的机遇...
  9. 【微信篇】电脑版微信的照片视频文件位置变化
  10. 无法安装冰点还原_教程|有备有还,再备不难,如何实现整机还原?
  11. jQuery fadeOut() 方法
  12. react 输入框 回车事件切换
  13. 时分秒倒计时的js实现
  14. 【视觉注意力机制】SE、CBAM、ECA三种可插拔注意力模块结构实现与详解
  15. 局域网win7计算机如何互访,局域网Win7与WinXP电脑不能互访怎么办?
  16. 浏览器安全之网络安全(HTTPS)
  17. matlab按点绘制网格
  18. 计算机网络实验八——聊天程序
  19. L1-038 新世界 Python
  20. [IOS笔记][Bugly]首次使用bugly收集app崩溃信息

热门文章

  1. 年轻夫妻自主创业,摆摊9年不仅摆出了车子房子,也遇到了爱情
  2. 【案例分析】轮胎橡胶经销体系数字化平台开发案例
  3. 仓央嘉措 情诗(转)
  4. 1455D. Sequence and Swaps(思维)
  5. 【总结】Clustered Sampling 小结
  6. [python] 运算顺序
  7. 狂神Docker基础笔记,全网最全!
  8. Matlab中strlength函数的使用
  9. CTEX的安装以及WinEdt10.3破解
  10. ECMA5forEach