Android进阶之路 - 解决友盟无法QQ分享纯文本的问题

不知道,你是否和我遇到的问题一致,我只知道我用了半天解决了这个问题,那么此时此刻请静下心来,细读此文,或许就能轻松解决你的问题。

所遇问题:

  • 文字表达

    Umeng不支持纯文本信息在QQ分享,会报出该平台不支持纯文本分享的错误

  • 图片叙述(下面的文字或图都可以在网上找到)

    • 问题出现时间 1:2016年的博文告诉我们 “不能纯文本分享”
      这里写图片描述
    • 问题出现时间 2:2017年的博文告诉我们,依旧“不能纯文本分享”
      这里写图片描述

解决思路:

因为在集成分享之前,我的项目已经使用了Umeng的统计管理,抱着全家桶的心思,我尽可能的找了很多种方式去达到我的目的,所幸最后结果还凑乎~

  • 方式1:首先我去了腾讯的开发者平台查看相关处理方式,但是客服久问无果,根据百度查的结果,发现是有的朋友使用的是导入Jar包的方式,也就是 使用官方的API分享内容到QQ

    个人想法:
    这样的固然可以实现我们分享的功能,但是相对而言所需成本提升,需要导入腾讯的三方jar包并进行另外配置

    注意:
    如果用的是Umeng三方自带的分享UI模板,那么你就需要在错误回调里进行判断,然后调用腾讯的QQ分享方法,因为它的UI模板你无法修改,只可增删某些分享渠道,所以务必记得前面说的错误回调里判断执行~

  • 方式2:如果没有使用全家桶的习惯和限制,可以考虑换个三方平台集成分享的功能,例如极光,Mob也蛮不错的,何必一棵树上吊死?

    扫描二维码关注公众号,回复: 1870801 查看本文章
  • 方式3(我目前项目中使用的此方法):不想改变Umeng三方平台!也不想集成QQ本身的分享!那么我们就写一个弱化了一点点的功能,使用Android原生的api跳转QQ,同时进行数据携带!~

使用方式(方式3):

  • 步骤1 :把此方法Copy到你当前类中!
   /**
     * @param mContext 上下文
     * @param content 要分享的文本
     * */
    public static void shareQQ(Context mContext, String content) {
        if (PlatformUtil.isQQClientAvailable(mContext)) {
            Intent intent = new Intent("android.intent.action.SEND");
            intent.setType("text/plain");
            intent.putExtra(Intent.EXTRA_SUBJECT, "分享");
            intent.putExtra(Intent.EXTRA_TEXT, content);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            intent.setComponent(new ComponentName("com.tencent.mobileqq", "com.tencent.mobileqq.activity.JumpActivity"));
            mContext.startActivity(intent);
        } else {
            Toast.makeText(mContext, "您需要安装QQ客户端", Toast.LENGTH_LONG).show();
        }
    }
  • 步骤2 :错误回调执行此方法!
    这里写图片描述

  • 注意(因为有少部分机型在使用此方法分享时可能会出现无法分享的问题,所以我 加了一个复制功能,这样即使跳转QQ后无法分享,也可以让用户直接粘贴)

//复制功能
 ClipboardManager cbm = (ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE);
 cbm.setText(mVinCode.getText().toString().trim());
  • 缺点

    携带数据传递后,无法进行自动返回,需要用户手动返回我们当前的app~我感觉和产品好好交流一下是可以交工的,毕竟其他成本需要一定的时间嘛 > <

猜你喜欢

转载自blog.csdn.net/qq_20451879/article/details/80586821