Android应用如何实现分享到企业微信

之前项目中顾客模块改版时,产品提到想要做一个分享信息到企业微信的功能,正常的方案应该是到企业微信开发者中心查看文档确定分享的API 调用,然后集成到项目中,但是我们找了半天并没有在企业微信文档中找到相应的API, 于是只能另辟蹊径。

一开始我们想到的是跟踪企业微信的页面套转的栈信息,拿到了企微的包名以及分享后跳转的Activity 全路径,然后通过Intent.setComponent() 后直接跳转到分享页面,但是企微内部做了某些校验,导致我们跳转一直失败,后来我们把思路拓展到系统分享的功能上来。

我们知道Android系统分享调用是如何调用的:

分享文本内容

Intent intent=new Intent(Intent.ACTION_SEND);

intent.putExtra(Intent.EXTRA_TEXT,"This is text to send");

intent.setType("text/plain");

startActivity(Intent.createChooser(intent,"share"));

这时候系统会给我们弹出一个分享到哪里的选择弹窗,其中企业微信就在这个弹窗的选择列表里,那么企微的分享页面肯定有设置action 为Intent.ACTION_SEND.那我们只需要找到设置了Intent.ACTION_SEND 的页面然后遍历找出包名为企微包名的Activity ,就可以直接跳转过去了。

具体实现的代码如下:

public static void shareToWeworkChat(String packageName,String message){

        boolean found = false;
        Intent share = new Intent(android.content.Intent.ACTION_SEND);
        share.setType("text/plain");

        List<ResolveInfo> resInfo = context.getPackageManager().queryIntentActivities(
                share, 0);
    
        if (!resInfo.isEmpty()) {
    Intent shareIntent = new Intent(Intent.ACTION_SEND);
            for (ResolveInfo info : resInfo) {
                if (info.activityInfo.packageName.toLowerCase().contains(packageName)
                        || info.activityInfo.name.toLowerCase().contains(packageName)) {

                    shareIntent.setComponent(new ComponentName(info.activityInfo.packageName, info.activityInfo.name));
                    shareIntent.setType("text/plain");
                    shareIntent.putExtra(Intent.EXTRA_TEXT, message);
                    shareIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    found = true;
                    break;
                }
            }
            if (!found) {
                ToastUtils.showToast(context, "您没有安装企业微信");
                return;
            }
            context.startActivityForResult(shareIntent, QUEST_CODE_SEND_WET_CHAT_TWO);
            startTime = System.currentTimeMillis();
        } else {
            ToastUtils.showToast(context, "您没有安装企业微信");
        }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值