iOS开发-shareSDK 微信好友朋友圈分享

1、需要在指定官网注册App,并获取AppKey




支持微信所需的相关配置及代码 在微信开放平台( http://open . weixin.qq.com/ )注册应用并取得应用的AppID,然后打开下图位置,在URL Types中添加微信AppID  


2、下载SDK  根据所开发的平台去选择,以下以开发微信为例


3、快速集成
 第一步:将下载的SDK解压后,导入到工程里,这部分就不详细说了

注意:XCode9之前版本直接拖SDk进去请务必在上述步骤中选择“Create groups for any added folders”单选按钮组。如果你选择“Create folder references for any added folders”,一个蓝色的文件夹引用将被添加到项目并且将无法找到它的资源。

第二步:添加依赖库


必须添加的依赖库如下(Xcode 7 之后 *.dylib库后缀名更改为*.tbd):
  • libicucore.dylib
  • libz.dylib
  •  libstdc++.dylib
  • JavaScriptCore.framework

以下依赖库根据社交平台添加:
新浪微博SDK依赖库
  • ImageIO.framework
  • libsqlite3.dylib

QQ好友和QQ空间SDK依赖库
  • libsqlite3.dylib

微信SDK依赖库
  • libsqlite3.dylib

Instagram需要依赖库
  • AssetsLibrary.framework
  • Photos.framework


美拍需要依赖库
  • AssetsLibrary.framework


第三步:设置shareSDK 的Appkey并初始化对应的第三方社交平台
在项目工程的Info.plist 中如图增加 MOBAppKey 和 MOBAppSecret 两个字段
在 MOBAppKey中 设置ShareSDK的appKey,如果尚未在ShareSDK官网注册过App,请移步到 登录后台 进行应用注册  也可以点击 链接 看里面的操作步骤。


第四步:基本上配置环境完成
导入头文件
#import <ShareSDKConnector/ShareSDKConnector.h>
 
 
//微信SDK头文件
#import "WXApi.h"



第六步:在AppDelegate 里找到
- (BOOL)application: didFinishLaunchingWithOptions:方法中调用registerActivePlatforms方法来初始化SDK并且初始化第三方平台( 各社交平台申请AppKey的网址及申请流程汇总
  /**初始化ShareSDK应用
    
     @param activePlatforms
    
     使用的分享平台集合
    
     @param importHandler (onImport)
    
     导入回调处理,当某个平台的功能需要依赖原平台提供的SDK支持时,需要在此方法中对原平台SDK进行导入操作
    
     @param configurationHandler (onConfiguration)
    
     配置回调处理,在此方法中根据设置的platformType来填充应用配置信息
    
     */
   
    [ ShareSDK registerActivePlatforms : @[

                                        @( SSDKPlatformTypeWechat ) ,

                                        ]
                             onImport :^( SSDKPlatformType platformType)
     {
         switch (platformType)
         {
             case SSDKPlatformTypeWechat :
                 [ ShareSDKConnector connectWeChat :[ WXApi class ]];
                 break ;

             default :
                 break ;
         }
     }
                      onConfiguration :^( SSDKPlatformType platformType, NSMutableDictionary *appInfo)
     {
        
         switch (platformType)
         {
             case SSDKPlatformTypeSinaWeibo :
                
             case SSDKPlatformTypeWechat :
                 [appInfo SSDKSetupWeChatByAppId : @"wx2e6d2fa4ff******"
                                       appSecret : @"3891815d5***************" ];
                 break ;

             default :
                 break ;
         }
     }];
    


第七步:再此封装ShareSDKMethod方法,可自定义方法,在Controller调用




           [ ShareSDKMethod ShareTextActionWithTitle :decodedString0 ShareContent :decodedString1 ShareUlr :decodedString2 ShareUlrImage : decodedString3 IsCollect : NO IsReport : NO IsCollected : NO Report : nil Collect : nil Result :^( SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) {

            }];


注意:最后ios9+还需要配置对应的平台的白名单

问题描述:在iOS 9下涉及到平台客户端跳转,系统会自动到项目info.plist下检测是否设置平台Scheme。对于需要配置的平台,如果没有配置,就无法正常跳转平台客户端。因此要支持客户端的分享和授权等,需要配置Scheme名单。




在info.plist中添加如下字段
<key>LSApplicationQueriesSchemes</key>
<array>
 <string>weixin</string>
 <string>wechat</string>
</array>