前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >简单实现微信分享(不集成SDK)

简单实现微信分享(不集成SDK)

作者头像
longzeqiu
发布2020-04-02 09:48:22
2K1
发布2020-04-02 09:48:22
举报
文章被收录于专栏:Android小知识Android小知识

微信分享

  • 说到微信分享,你的第一想法是什么?
    • 集成三方库(ShareSdk、友盟分享)
    • 集成微信官方的Sdk

NO NO NO

  • 如果仅仅是分享给朋友完全不需要这么费事,有更简单更减少包体积的方法,那就是使用Android系统自带Intent
  • 原理:我们可以解压apk,你将会在微信的AndroidManifest.xml文件中,看到微信可以接受android.intent.action.SEND的Intent,mimeType可以是图片"image/*"、视频“video/*”、音频"audio/*"、文本"text/*"、各种二进制文件"application/*"
  • 有了上面的intent,接下来介绍一下ComponentName
  • 我们可以通过new ComponentName("包名","类名");来创建ComponentName
  • 最后通过Intent.setComponent(ComponentName)来启动其他应用的Activity

最后上代码

代码语言:javascript
复制
//微信的包名
 public static final String PACKAGE_WECHAT = "com.tencent.mm";
    // 判断是否安装指定app
    public static boolean isInstallApp(Context context, String app_package){
        final PackageManager packageManager = context.getPackageManager();
        List<PackageInfo> pInfo = packageManager.getInstalledPackages(0);
        if (pInfo != null) {
            for (int i = 0; i < pInfo.size(); i++) {
                String pn = pInfo.get(i).packageName;
                if (app_package.equals(pn)) {
                    return true;
                }
            }
        }
        return false;
    }

    /**
     * 直接分享文本到微信好友
     *
     * @param context 上下文
     */
    public static void shareText2WechatFriend(Context context, String content) {
        if (PlatformUtil.isInstallApp(context, PlatformUtil.PACKAGE_WECHAT)) {
            Intent intent = new Intent();
            ComponentName cop = new ComponentName("com.tencent.mm", "com.tencent.mm.ui.tools.ShareImgUI");
            intent.setComponent(cop);
            intent.setAction(Intent.ACTION_SEND);
            intent.putExtra("android.intent.extra.TEXT", content);
            intent.putExtra("Kdescription", !TextUtils.isEmpty(content) ? content : "");
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(intent);
        } else {
            Toast.makeText(context, "您需要安装微信客户端", Toast.LENGTH_LONG).show();
        }
    }

好啦,分享到QQ、微博等等平台也可以参考这种方法哦,完全没必要费时间申请集成三方SDK!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 微信分享
  • NO NO NO
  • 最后上代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档