H5 中能实现分享到微信的功能吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了H5 中能实现分享到微信的功能吗相关的知识,希望对你有一定的参考价值。

是可以的,两种方式
1、分享二维码,将二维码截图下来,分享到微信群或者朋友圈
2、复制链接,将谅解分享到微信群或者朋友圈
参考技术A

    如果H5页面不在微信浏览器或QQ浏览器中打开是无法实现分享的

    如果是在微信环境中可以直接分享,也可以使用微信的sdk修改分享参数,需要微信开放平台支持。

    微信开放平台也支持APP实现分享功能

    楼主问的应该是普通的浏览器中实现微信分享,目前是不支持的。

安卓,调用系统方法分享到微信

项目中有需求,要能一次性分享多张图片给微信好友,还要能带文字和多张图片跳转到微信的朋友圈的发布界面(这让我想到了微商最想要的微信一键转发功能)。如下图。

而分享的SDK,貌似做不到这样。但是安卓系统自带的方法能做到。实现功能后,整理封装如下。

public class SystemShareUtils 
    // 微信朋友圈发送界面
    public static final String NAME_ACTIVITY_WECHAT_CIRCLE_PUBLISH = "com.tencent.mm.ui.tools.ShareToTimeLineUI";
    // 微信好友发送界面
    public static final String NAME_ACTIVITY_WECHAT_FRIEND = "com.tencent.mm.ui.tools.ShareImgUI";

    /**
     * 分享
     * @param context
     * @param activityName 分享类别。
     *            NAME_ACTIVITY_WECHAT_CIRCLE_PUBLISH表示朋友圈发布界面;NAME_ACTIVITY_WECHAT_FRIEND表示发送给好友。
     * @param text      文字内容,只对朋友圈有效
     * @param files     本地图片全路径列表
     */
    public static void shareTextAndPicToWechat(Context context, String activityName, String text, List<String> files) 
        String packageName = "com.tencent.mm"; // 微信包名

        if (isWeixinAvilible(context)) 
            Intent intent = new Intent();
            ComponentName comp = new ComponentName(packageName, activityName);
            intent.setComponent(comp);
            intent.setAction(Intent.ACTION_SEND_MULTIPLE);
            intent.setType("image/*");

            ArrayList<Uri> imageUris = new ArrayList<>();
            if (null != files) 
                for (String f : files) 
                    // 7.0及以上需要使用MediaStore.Images.Media.insertImage()转化一下uri?
                    // 测试7.0  7.1 未发现这样有bug
                    imageUris.add(Uri.fromFile(new File(f)));
                
            
            intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, imageUris);
            intent.putExtra("Kdescription", text); // 作用于发朋友圈,对好友不会有影响
            context.startActivity(intent);
         else 
            ToastUtils.showToast("请先安装微信APP");
        
    

    // 判断手机内是否安装了微信APP
    private static boolean isWeixinAvilible(Context context) 
        PackageManager packageManager = context.getPackageManager();// 获取packagemanager
        List<PackageInfo> pinfo = packageManager.getInstalledPackages(0);// 获取所有已安装程序的包信息
        if (pinfo != null) 
            for (int i = 0; i < pinfo.size(); i++) 
                String pn = pinfo.get(i).packageName;
                if (pn.equals("com.tencent.mm")) 
                    return true;
                
            
        
        return false;
    

暂时测试未发现问题。

以上是关于H5 中能实现分享到微信的功能吗的主要内容,如果未能解决你的问题,请参考以下文章

vue实现将自己网站(h5链接)分享到微信中形成小卡片(超详细)

为啥之前分享到微信的音乐现在都不能听了,连接失败,

安卓,调用系统方法分享到微信

h5分享微信小程序到朋友圈

微信jssdk实现分享到微信

h5怎么做分享到QQ 朋友圈微信 微博等功能