uni-app中 uni.share() 支持分享到企业微信

发布于 1周前 作者 h691938207 来自 Uni-App

uni-app中 uni.share() 支持分享到企业微信

需求描述

uni.share()已经可以分享到qq、微博、微信。但是目前还没有支持分享到企业微信,现在企业微信的需求越来越多,很多企业的运营都把重心从微信转移到了企业微信。希望有人能支持一下,做个插件。

(PS: 内置的plus.share.sendWithSystem()可以分享,但是不像uni-share那样可以直接跳转到企业微信,而且最原始的需求是可以发送小程序卡片,希望可以使用sdk的方式跳转企业微信分享而不是app内置的sendWithSystem)

4 回复

https://ext.dcloud.net.cn/plugin?id=15755
如果能接受付费插件的话,可以看看我这个


感谢,公司不允许云打包

回复 4***@qq.com: 那如果需要的话,可以找我购买离线插件

在uni-app中,uni.share() 方法确实可以用来触发分享功能,不过对于特定的平台(如企业微信),需要确保已经在企业微信开发者后台进行了相关配置,并且使用企业微信提供的SDK或者相关API来实现更细粒度的控制和自定义分享内容。由于uni.share()原生支持的平台可能不包括企业微信的全部自定义分享功能,这里提供一个结合企业微信JSSDK来实现分享功能的代码示例。

首先,确保你的应用已经在企业微信后台配置为小程序,并获取了相应的AppID和Secret。然后,在小程序端引入企业微信JSSDK。

步骤一:引入企业微信JSSDK

在你的uni-app项目中,通常会在main.js或者页面脚本中引入企业微信JSSDK。由于企业微信JSSDK是通过script标签引入的,你可能需要在manifest.json中配置或者通过条件编译的方式动态引入。

// 在页面或组件的onLoad生命周期中动态引入企业微信JSSDK
if (process.env.PLATFORM === 'mp-weixin-qy') {
    const script = document.createElement('script');
    script.src = 'https://res.wx.qq.com/open/js/jweixin-1.6.0.js';
    script.onload = function () {
        // 初始化企业微信JSSDK
        wx.config({
            beta: true, // 必须这么写,否则wx.invoke无效
            debug: false, // 开启调试模式
            appId: 'YOUR_CORP_ID', // 必填,企业微信的corpID
            timestamp: TIMESTAMP, // 必填,生成签名的时间戳
            nonceStr: NONCE_STR, // 必填,生成签名的随机串
            signature: SIGNATURE, // 必填,签名
            jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage'] // 必填,需要使用的JS接口列表
        });

        wx.ready(function () {
            // 分享到朋友圈
            wx.onMenuShareTimeline({
                title: '分享标题', // 分享标题
                link: 'https://example.com', // 分享链接
                imgUrl: 'https://example.com/image.jpg', // 分享图标
                success: function () {
                    // 用户确认分享后执行的回调函数
                },
                cancel: function () {
                    // 用户取消分享后执行的回调函数
                }
            });

            // 分享给朋友
            wx.onMenuShareAppMessage({
                title: '分享标题', // 分享标题
                desc: '分享描述', // 分享描述
                link: 'https://example.com', // 分享链接
                imgUrl: 'https://example.com/image.jpg', // 分享图标
                type: '', // 分享类型,music、video或link,不填默认为link
                dataUrl: '', // 如果type是music或者video,则要提供数据链接,默认为空
                success: function () {
                    // 用户确认分享后执行的回调函数
                },
                cancel: function () {
                    // 用户取消分享后执行的回调函数
                }
            });
        });
    };
    document.head.appendChild(script);
}

注意

  1. 上面的代码示例中,TIMESTAMP, NONCE_STR, SIGNATURE等参数需要你在服务端生成,并确保它们的时效性和正确性。
  2. 企业微信小程序的分享配置可能有所不同,具体请参考企业微信官方文档。
  3. process.env.PLATFORM是uni-app的条件编译变量,用于判断当前平台。

通过这种方式,你可以在企业微信小程序中实现自定义分享功能。

回到顶部