欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android记一次ShareSDK 使用中的问题

程序员文章站 2024-03-19 12:25:52
...

概述


集成过程和第三方平台注册官网已经说的很详细了,具体请参考:

本文只是说明下楼主遇到的问题及解决方式。

问题描述


分享到QQ、微信、QQ空间会出现以下问题:

  • QQ出现红色感叹号

    Android记一次ShareSDK 使用中的问题

  • 微信,不能分享到朋友圈,分享给朋友时只能分享文字,如下图所示

    Android记一次ShareSDK 使用中的问题

    正确的分享形式如下图:

    Android记一次ShareSDK 使用中的问题

  • 分享到QQ空间,只能分享文字,具体如下图:

    Android记一次ShareSDK 使用中的问题

  • 正确的分享形式如下图:

    Android记一次ShareSDK 使用中的问题

以下是分享的代码

/**
     * 调用分享
     *
     * @param context         上下文内容
     * @param platformToShare 指定直接分享平台名称(一旦设置了平台名称,则九宫格将不会显示)
     * @param showContentEdit 是否显示编辑页
     * @param title           分享标题
     * @param text            分享内容
     * @param imgUrl          封面地址
     */
    public static void showShare(Context context,
                                 String platformToShare,
                                 boolean showContentEdit,
                                 String title,
                                 String text,
                                 String imgUrl) {
        OnekeyShare oks = new OnekeyShare();
        oks.setSilent(!showContentEdit);
        if (platformToShare != null) {
            oks.setPlatform(platformToShare);
        }
        //ShareSDK快捷分享提供两个界面第一个是九宫格 CLASSIC  第二个是SKYBLUE
        oks.setTheme(OnekeyShareTheme.CLASSIC);
        // 在自动授权时可以禁用SSO方式
        oks.disableSSOWhenAuthorize();
        //oks.setAddress("12345678901"); //分享短信的号码和邮件的地址
        oks.setTitle(title);
        oks.setTitleUrl("xxxx");
        oks.setText(text);
        oks.setImagePath(imgPath);  //分享sdcard目录下的图片
        //oks.setImageUrl(imgPath);
        oks.setUrl("xxxx"); //微信不绕过审核分享链接
        //oks.setFilePath("/sdcard/test-pic.jpg");  //filePath是待分享应用程序的本地路劲,仅在微信(易信)好友和Dropbox中使用,否则可以不提供
        oks.setComment("分享"); //我对这条分享的评论,仅在人人网和QQ空间使用,否则可以不提供
        oks.setSite(context.getString(R.string.app_name));  //QZone分享完之后返回应用时提示框上显示的名称
        oks.setSiteUrl("xxxx");//QZone分享参数
/*        oks.setVenueName("ShareSDK");
        oks.setVenueDescription("This is a beautiful place!");*/
        // 隐藏九宫格中的
        oks.addHiddenPlatform(WechatFavorite.NAME);
        // 启动分享
        oks.show(context);
    }

问题解决


在查看官网的详细说明后,发现可能是这一行代码的问题

        oks.setImagePath(imgPath);  //分享sdcard目录下的图片
        //oks.setImageUrl(imgPath);

于是更换为oks.setImageUrl(imgPath);后,问题解决了。

参考文档


不同平台分享内容的详细说明 | Mob文档中心
http://wiki.mob.com/%e4%b8%8d%e5%90%8c%e5%b9%b3%e5%8f%b0%e5%88%86%e4%ba%ab%e5%86%85%e5%ae%b9%e7%9a%84%e8%af%a6%e7%bb%86%e8%af%b4%e6%98%8e/