分享

步驟:

1、 在ShareSDK注冊(cè)賬號(hào),獲取Appkey和App Secret,在項(xiàng)目工程的Info.plist 中增加MOBAppkey 和 MOBAppSecret 兩個(gè)字段
2、 在各個(gè)開(kāi)放平臺(tái)注冊(cè)賬號(hào),獲取Appkey和App Secret,初始化應(yīng)用
3、 添加URL Types,輸入U(xiǎn)RL Schemes出添加APPID
注意:
QQ的URL Schemes的設(shè)置,需要在終端操作,命令如下:
echo 'ibase=10;obase=16;801312852'|bc,其中801312852為QQ的AppID,替換為自己的APPID即可,得到8位的16進(jìn)制數(shù),則URL Schemes填入QQ05RDWE32
4、 添加白名單

代碼

//
//  ShareTools.h
//  ShareDemo
//
//  Created by Mac Air on 2017/10/23.
//  Copyright ? 2017年 Mac Air. All rights reserved.

#import <Foundation/Foundation.h>

@interface SHShareTools : NSObject

+ (instancetype)shareInstance;
- (void)connectConfig;
- (void)inviteFriendsWithTitle:(NSString *)title detailTitle:(NSString *)detailTitle shareUrl:(NSString *)shareUrl;

@end

//
//  ShareTools.m
//  ShareDemo
//
//  Created by Mac Air on 2017/10/23.
//  Copyright ? 2017年 Mac Air. All rights reserved.
//

#import "SHShareTools.h"

#import <ShareSDK/ShareSDK.h>
#import <ShareSDKConnector/ShareSDKConnector.h>
#import <TencentOpenAPI/TencentOAuth.h>
#import <TencentOpenAPI/QQApiInterface.h>
#import <WXApi.h>
#import <WeiboSDK.h>

#import <ShareSDKUI/ShareSDKUI.h>


//微信:
#define WechatAppID @"微信開(kāi)放平臺(tái)申請(qǐng)"
#define WechatAppSecret @"微信開(kāi)放平臺(tái)申請(qǐng)"

//QQ:
#define  QQAPPID @"QQ開(kāi)放平臺(tái)申請(qǐng)"
#define  QQAPPAppSecret @"QQ開(kāi)放平臺(tái)申請(qǐng)"

//微博:
#define  WeiboAppKey @"微博開(kāi)放平臺(tái)申請(qǐng)"
#define  WeiboAppSecret @"微博開(kāi)放平臺(tái)申請(qǐng)"



@implementation SHShareTools

+ (instancetype)shareInstance
{
    static SHShareTools *_shareInstance = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        _shareInstance = [[self alloc] init];
    });
    return _shareInstance;
}

- (void)connectConfig
{
    [ShareSDK registerActivePlatforms:@[
                                        @(SSDKPlatformSubTypeWechatSession), //微信好友
                                        @(SSDKPlatformSubTypeWechatTimeline),//微信朋友圈
                                        @(SSDKPlatformSubTypeQQFriend),//QQ好友
                                        @(SSDKPlatformTypeSinaWeibo),
                                        ]
                             onImport:^(SSDKPlatformType platformType) {
                                 
                                 switch (platformType) {
                                     case SSDKPlatformTypeWechat:
                                     {
                                         [ShareSDKConnector connectWeChat:[WXApi class]];
                                     }
                                         break;
                                         
                                     case SSDKPlatformTypeQQ:
                                     {
                                         [ShareSDKConnector connectQQ:[QQApiInterface class] tencentOAuthClass:[TencentOAuth class]];
                                     }
                                         break;
                                         
                                     case SSDKPlatformTypeSinaWeibo:
                                     {
                                         [ShareSDKConnector connectWeibo:[WeiboSDK class]];
                                     }
                                         break;
                                         
                                     default:
                                         break;
                                 }
                                 
                             }
                      onConfiguration:^(SSDKPlatformType platformType, NSMutableDictionary *appInfo) {
                          
                          switch (platformType) {
                              case SSDKPlatformTypeWechat:
                                  
                              {
                                  [appInfo SSDKSetupWeChatByAppId:WechatAppID
                                                        appSecret:WechatAppSecret];
                              }
                                  break;
                                  
                              case SSDKPlatformTypeQQ:
                              {
                                  [appInfo SSDKSetupQQByAppId:QQAPPID
                                                       appKey:QQAPPAppSecret
                                                     authType:SSDKAuthTypeBoth];
                                  
                              }
                                  break;
                                  
                              case SSDKPlatformTypeSinaWeibo:
                              {
                                  //設(shè)置新浪微博應(yīng)用信息,其中authType設(shè)置為使用SSO+Web形式授權(quán)
                                  [appInfo SSDKSetupSinaWeiboByAppKey:WeiboAppKey
                                                            appSecret:WeiboAppSecret
                                                          redirectUri:@"https://www.baidu.com"
                                                             authType:SSDKAuthTypeBoth];
                              }
                                  break;
                                  
                                  
                                  
                              default:
                                  break;
                          }
                          
                      }];

}



- (void)inviteFriendsWithTitle:(NSString *)title detailTitle:(NSString *)detailTitle shareUrl:(NSString *)shareUrl
{
    
    //1、創(chuàng)建分享參數(shù)
    NSArray* imageArray = @[[UIImage imageNamed:@"邀請(qǐng)好友"]];
    // (注意:圖片必須要在Xcode左邊目錄里面,名稱必須要傳正確,如果要分享網(wǎng)絡(luò)圖片,可以這樣傳iamge參數(shù) images:@[@"http://mob.com/Assets/images/logo.png?v=20150320"])
    
    if (imageArray) {
        
        NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
        [shareParams SSDKSetupShareParamsByText:detailTitle
                                         images:imageArray
                                            url:[NSURL URLWithString:shareUrl]
                                          title:title
                                           type:SSDKContentTypeAuto];
        //有的平臺(tái)要客戶端分享需要加此方法,例如微博
        [shareParams SSDKEnableUseClientShare];
        
        NSLog(@"分享的參數(shù)112,,%@",shareParams);
        
        //2、分享(可以彈出我們的分享菜單和編輯界面)
        [ShareSDK showShareActionSheet:nil //要顯示菜單的視圖, iPad版中此參數(shù)作為彈出菜單的參照視圖,只有傳這個(gè)才可以彈出我們的分享菜單,可以傳分享的按鈕對(duì)象或者自己創(chuàng)建小的view 對(duì)象,iPhone可以傳nil不會(huì)影響
                                 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;
                       }
                   }];
    }

}

@end

調(diào)用


//  AppDelegate.m
//  ShareDemo
//
//  Created by Mac Air on 2017/10/23.
//  Copyright ? 2017年 Mac Air. All rights reserved.
//

#import "AppDelegate.h"
#import "SHShareTools.h"

@interface AppDelegate ()

@end

@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    //配置分享的參數(shù):
    [[SHShareTools shareInstance]connectConfig];
    
    return YES;
}

- (IBAction)shareClick:(id)sender {
    
    [[SHShareTools shareInstance] inviteFriendsWithTitle:@"邀請(qǐng)好友" detailTitle:@"邀請(qǐng)好友的副標(biāo)題" shareUrl:@"http://www.itdecent.cn/u/ce78ee1f9a89"];
    
}

效果圖

屏幕快照 2017-10-23 下午5.52.44.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容