当前位置: 首页 > 软件库 > iOS代码库 > 其他(Others) >

DWZShareKit

iOS 分享
授权协议 MIT
开发语言 Objective-C
所属分类 iOS代码库、 其他(Others)
软件类型 开源软件
地区 国产
投 递 者 龙凯
操作系统 iOS
开源组织
适用人群 未知
 软件概览

DWZShareKit是一个简单的分享项目,目前支持新浪,QQ,QQ空间,微信 sso分享,新浪/QQ的sso登录。会自动检测手机里有没有装相对应的应用,如果已安装则直接跳到相应的应用里分享信息。如果没装则在分享界面显示灰色按钮,不能进行分享。

image

编译注意事项。

微信等SDK不支持64位编译,因此引入后要把 Target Build Setting中的Architectures改为 $(ARCHS_STANDARD_32_BIT) SDK里有用到C++混编,因此要最好把main.m改成main.mm才能通过编译。

注意 项目的info.plist文件里必须要注册相对应的URL,如图所示image

 

在新浪/QQ/微信中注册好相应的应用app,取得相应的appkey,并在您的应用中填入. 比如以下,填入你应用相关信息

#define GESinaWeiboSDKAppKey            @"2xxxxxxx"
#define GETencentWeiboSDKAppKey         @"8xxxxxxxx"
#define GEQZoneSDKAppKey                @"1xxxxxx"
#define GEWechatSDKAppKey               @"wxa769xxxxx"
#define GESinaWeiboSDKAppSecret            @"cxxxxxxxxxxxxxxxxxxxxx7"
#define GETencentWeiboSDKAppSecret         @"9xxxxxxxa96xxxxxxx8axxxxxxx8132a"
#define GEQZoneSDKAppSecret                @"9exxxxxxx6c99xxxxxxxaxxxxxxx8b479f"
#define GEWechatSDKAppSecret               @"5xxxxxxxf552bxxxxxxx024xxxxxxx83f41b"
#define GESinaWeiboSDKAppUri            @"https://api.weibo.com/oauth2/default.html"
#define GETencentWeiboSDKAppUr          @"http://xxx.xxx.xxx"

在AppDelegate注册

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
    // Override point for customization after application launch.

    [DWZShareKit connectSinaWeiboWithAppKey:GESinaWeiboSDKAppKey appSecret:GESinaWeiboSDKAppSecret redirectUri:GESinaWeiboSDKAppUri];
    [DWZShareKit connectTencentWeiboWithAppKey:GETencentWeiboSDKAppKey appSecret:GETencentWeiboSDKAppSecret redirectUri:GETencentWeiboSDKAppUr];
    [DWZShareKit connectWeChatWithAppId:GEWechatSDKAppKey wechatCls:nil];
    [DWZShareKit connectQZoneWithAppKey:GEQZoneSDKAppKey appSecret:GEQZoneSDKAppSecret];

    return YES;}

仍在AppDelegate中,响应回调

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{
    return [DWZShareKit handleOpenURL:url delegate:self];}

在需要分享的ViewController,实现DWZShareSDKDelegate协议,

- (void)shareSDKResponse:(ShareType)socialType Success:(BOOL)sucess{
    NSLog(@"sharesdk response back %d",sucess);}

调用分享时

- (IBAction)ShareButtonAction:(id)sender{
    NSArray *shareArray = [DWZShareKit getShareListWithType:ShareTypeSinaWeibo,ShareTypeQQ,ShareTypeQQSpace,ShareTypeWeChatSession,ShareTypeWeChatTimeline,nil];

    //图标不要过大,不然会分享失败
    UIImage *image = [UIImage imageNamed:@"QQIcon"];
    //内容不要超过120字,因为加上标题和链接,要求在140字以内。这里会自动截断。
    DWZShareContent *content = [DWZShareKit content:@"视频描述" image:image title:@"视频标题" url:@"http://baidu.com"];

    [DWZShareKit showDefaultShareWith:content serviceShareList:shareArray withDelegate:self];}

登录功能

在需要登录的ViewController,实现DWZShareKitAuthDelegate协议,

- (void) shareSDKLoginResponse:(ShareType)socialType WithInfo:(NSDictionary *)userInfo Success:(BOOL)success{
    if(!success){
        return;
    }
    switch (socialType) {
        case ShareTypeSinaWeibo:
        {
        //userInfo字典包含了以下数据:
        //            NSString *ShareKitKeyToken = @"ShareKitKeyToken";
        //            NSString *ShareKitKeyExpire = @"ShareKitKeyExpire";
        //            NSString *ShareKitKeyUserId = @"ShareKitKeyUserId";
        //            NSString *ShareKitKeyAppId = @"ShareKitKeyAppId";

        //GEUserEntity是虚拟的对象,演示把获取到的数据存储而已
            GEUserEntity *entity = [GEUserEntity shareInstance];
            [entity setupSinaWeibo:userInfo[ShareKitKeyUserId] Token:userInfo[ShareKitKeyToken] ExpirationDate:userInfo[ShareKitKeyExpire]];
            [GEUserInfo setLoginUser:entity];
        }
            break;
        case ShareTypeQQ:
        case ShareTypeQQSpace:
        {
            GEUserEntity *entity = [GEUserEntity shareInstance];
            [entity setupQQ:userInfo[ShareKitKeyUserId] Token:userInfo[ShareKitKeyToken] ExpirationDate:userInfo[ShareKitKeyExpire] AppId:userInfo[ShareKitKeyAppId]];
            [GEUserInfo setLoginUser:entity];
        }
            break;
        case ShareTypeWeChatSession:
        case ShareTypeWeChatTimeline:
            break;
        default:
            break;
    }}

 

 相关资料
  • 本文向大家介绍thinkphp3.2.3 分页代码分享,包括了thinkphp3.2.3 分页代码分享的使用技巧和注意事项,需要的朋友参考一下 对于thinkphp分页的实现效果,两种调用方法,一种调用公共函数中的函数方法(参考http://www.cnblogs.com/tianguook/p/4326613.html),一种是在模型中书写分页的方法   1、在公共函数Application/C

  • BK.Share.share(options) 场景1 —— 分享H5链接 相当于原来的shareToMQQ 使用场景:分享H5活动页 注意:分享H5链接没有成功、失败、完成的回调 参数 属性 类型 说明 qqImgUrl string 分享到QQ的图片网络链接 msgUrl string H5详情页的网络链接 title string 分享标题,可选,默认为'轻游戏' summary strin

  • 达不溜 1.APP启动模式 2.Handler原理 3.Handler绑定Looper 4.okhttp原理 5.RecyclerView和ListView的区别 6.JAVA中线程调度方式 7.APP启动流程 8.OOM的分析和解决 9.线上OOM排查方案 10.JVM的GC机制 11.android大图加载 12.超大视频加载策略 13.视频剪辑及美化的实现方案 14.视频提高加载速度及预加载

  • 本文向大家介绍THINKPHP内容分页代码分享,包括了THINKPHP内容分页代码分享的使用技巧和注意事项,需要的朋友参考一下 在使用Thinkphp开发的内容管理系统里面,很多东西都要自己开发,内容分页当然也是要自己开发的,下面是我根据查资料自己整理的方法: 1、首先是在后台编辑内容的时候需要插入分页符,不同的编辑器分页符自然也不同了 2、然后就是读取文章内容的时候,要根据分页符来把内容分割成多

  • MinDoc 支持私有分享和公开分享,区分私有和公开有两个配置有关。 匿名访问 匿名访问主要针对整个系统,如果不开启匿名访问,则未登录用户进入 MinDoc 任意页面都会跳转到登录页。 如果不开启匿名访问,不管项目是私有还是公开,都必须先登录才可以。 项目公开与私有 公开的项目,所有用户都可以查看,但不能编辑,私有项目非项目参与者既不能查看也不能编辑。 私有和公开可以在项目设置中切换。 私有分享

  • 分享 呼起分享界面 在手淘下有个事件发出来 document.addEventListener('wvShareClickEvent', function(e) { alert(e.param.target); }); wvShareClickEvent 用户选择了某个分享渠道, 这里仅表示进入了该渠道,但不代表已经成功分享,分享行为可能会被用户取消 Tida.share({ t

  • 分享场景       点击分享按钮,弹出分享链接面板,复制链接或扫描二维码访问该场景。

  • 本章已经迁移至 分享章节