ShareSDK分享到指定平台攻略

作者: 布吉岛原住民 | 来源:发表于2017-09-20 14:47 被阅读286次

    本文介绍的是调用ShareSDK的内置方法实现分享到指定平台的功能,想了解ShareSDK的集成以及如何实现快捷分享,请参考官方文档。

    分享到QQ
    • 使用OnekeyShare 分享
    public static void showShare() {
    ShareSDK.initSDK(this);
    
    OnekeyShare oks = new OnekeyShare();
    oks.disableSSOWhenAuthorize();//关闭sso授权
    
    oks.setTitle(“标题”);
    oks.setTitleUrl(“http://www.baidu.com”);
    oks.setText(“text”);
    oks.setImageUrl(“http://f1.sharesdk.cn/imgs/2014/02/26/owWpLZo_638x960.jpg”);
    oks.setPlatform(QQ.NAME);
    oks.show(this);
    }
    
    • 使用ShareParams分享
    public static void showShare() {
    ShareSDK.initSDK(this);
    QQ.ShareParams sp = new QQ.ShareParams();
    
    sp.setTitle("标题");
    sp.setTitleUrl("http://www.baidu.com"); 
    sp.setText("text");
    sp.setImageUrl("http://f1.sharesdk.cn/imgs/2014/02/26/owWpLZo_638x960.jpg");
    Platform qq = ShareSDK.getPlatform(QQ.NAME);
    qq.share(sp);
    }
    
    分享到QQ空间
    • 使用OnekeyShare 分享
    public static void showShare() {
    ShareSDK.initSDK(this);
    OnekeyShare oks = new OnekeyShare();
    oks.disableSSOWhenAuthorize();//关闭sso授权
    
    oks.setTitle("标题");
    oks.setTitleUrl("http://www.baidu.com");
    oks.setText("text");
    oks.setImageUrl("http://f1.sharesdk.cn/imgs/2014/02/26/owWpLZo_638x960.jpg");
    oks.setSite("发布分享的网站名称");//QQ空间的字段,标记分享应用的名称
    oks.setSiteUrl("发布分享网站的地址");//QQ空间的字段,标记分享应用的网页地址
    oks.setPlatform(QZone.NAME);
    oks.show(this);
    }
    
    • 使用ShareParams分享
    public static void showShare() {
    ShareSDK.initSDK(this);
    QZone.ShareParams sp = new QZone.ShareParams();
    
    sp.setTitle("标题");
    sp.setTitleUrl("http://www.baidu.com");
    sp.setText("text");
    sp.setImageUrl("http://f1.sharesdk.cn/imgs/2014/02/26/owWpLZo_638x960.jpg");
    sp.setSite("发布分享的网站名称");//QQ空间的字段,标记分享应用的名称
    sp.setSiteUrl("发布分享网站的地址");//QQ空间的字段,标记分享应用的网页地址
    Platform qZone =ShareSDK.getPlatform(QZone.NAME);
    qZone.share(sp);
    }
    
    分享到新浪微博
    • 使用OnekeyShare 分享
    public static void showShare() {
    ShareSDK.initSDK(this);
    OnekeyShare oks = new OnekeyShare();
    oks.disableSSOWhenAuthorize();//关闭sso授权
    
    oks.setText("text" + "http://www.baidu.com");
    oks.setImageUrl("http://f1.sharesdk.cn/imgs/2014/02/26/owWpLZo_638x960.jpg");
    oks.setPlatform(SinaWeibo.NAME);
    oks.show(this);
    }
    
    • 使用ShareParams分享
    public static void showShare() {
    ShareSDK.initSDK(this);
    SinaWeibo.ShareParams sp = new SinaWeibo.ShareParams();
    
    sp.setText("text" + "http://www.baidu.com");//没有title,文本和链接写在一起
    sp.setImageUrl("http://f1.sharesdk.cn/imgs/2014/02/26/owWpLZo_638x960.jpg");
    Platform weibo=ShareSDK.getPlatform(SinaWeibo.NAME);
    weibo.share(sp);
    }
    
    分享给微信好友
    • 使用OnekeyShare 分享
    public static void showShare() {
    ShareSDK.initSDK(this);
    OnekeyShare oks = new OnekeyShare();
    oks.disableSSOWhenAuthorize();//关闭sso授权
    
    oks.setTitle("标题");
    oks.setUrl("http://www.baidu.com");
    oks.setText("text");
    oks.setImageUrl("http://f1.sharesdk.cn/imgs/2014/02/26/owWpLZo_638x960.jpg");
    oks.setPlatform(Wechat.NAME);
    oks.show(this);
    }
    
    • 使用ShareParams分享
    public static void showShare() {
    ShareSDK.initSDK(this);
    Wechat.ShareParams sp = new Wechat.ShareParams();
    sp.setShareType(Platform.SHARE_WEBPAGE); 
    
    sp.setTitle("标题");
    sp.setUrl("http://www.baidu.com");
    sp.setText("text");
    sp.setImageUrl("http://f1.sharesdk.cn/imgs/2014/02/26/owWpLZo_638x960.jpg");
    Platform weixin = ShareSDK.getPlatform(Wechat.NAME); 
    weixin.share(sp);
    }
    
    分享到微信朋友圈
    • 使用OnekeyShare 分享
    public static void showShare() {
    ShareSDK.initSDK(this);
    OnekeyShare oks = new OnekeyShare();
    oks.disableSSOWhenAuthorize();//关闭sso授权
    
    oks.setTitle("标题");
    oks.setUrl("http://www.baidu.com");
    oks.setText("text");
    oks.setImageUrl("http://f1.sharesdk.cn/imgs/2014/02/26/owWpLZo_638x960.jpg");
    oks.setPlatform(WechatMoments.NAME);
    oks.show(this);
    }
    
    • 使用ShareParams分享
    public static void showShare() {
    ShareSDK.initSDK(this);
    WechatMoments.ShareParams sp = new WechatMoments.ShareParams();
    sp.setShareType(Platform.SHARE_WEBPAGE);
    
    sp.setTitle("标题");
    sp.setUrl("http://www.baidu.com");
    sp.setText("text");
    sp.setImageUrl("http://f1.sharesdk.cn/imgs/2014/02/26/owWpLZo_638x960.jpg");
    Platform weixinGroup = ShareSDK.getPlatform(WechatMoments.NAME);
    weixinGroup.share(sp);
    }
    
    注意事项:

    OneKeyShare本身已经做了分享回调处理,而使用ShareParams实现分享的时候需要自己另外处理,监听代码如下(这里以QQ空间分享为例):

    // 设置分享事件回调(注:回调不能保证在主线程调用,不可以在里面直接处理UI操作)
    Platform qzone = ShareSDK.getPlatform (QZone.NAME);
    qzone.setPlatformActionListener (new PlatformActionListener() {
        public void onError(Platform arg0, int arg1, Throwable arg2) {
            //失败的回调,arg:平台对象,arg1:表示当前的动作,arg2:异常信息
        }
        public void onComplete(Platform arg0, int arg1, HashMap<String, Object> arg2) {
            //分享成功的回调
        }
        public void onCancel(Platform arg0, int arg1) {
            //取消分享的回调
        }
    });
    

    相关文章

      网友评论

        本文标题:ShareSDK分享到指定平台攻略

        本文链接:https://www.haomeiwen.com/subject/tqwwsxtx.html