小程序分享_小程序分享好友页面 - CSDN
  • 小程序分享功能

    2018-12-08 16:39:27
    小程序右上角自带的分享功能(…); 如果在当前页面调用wx.hideShareMenu()方法,那么右上角的分享功能将被隐藏,当然,隐藏方法与现实方法是承兑出现的,调用wx.showShareMenu()方法,可以显示该功能。 b.自定义...

    一、分享给好友

    1. 转发给好友/群:
      在小程序开发API中,发送给好友/群,可以有两种实现方式:
      1)入口
      a.小程序右上角自带的分享功能(…);
      如果在当前页面调用wx.hideShareMenu()方法,那么右上角的分享功能将被隐藏,当然,隐藏方法与现实方法是承兑出现的,调用wx.showShareMenu()方法,可以显示该功能。
      b.自定义分享按钮:
      <button open-type='share'>分享</button>
      c.不影响样式使用button:
      在小程序中使用button,button有他固有的样式,很难消去,严重影响美观。同时button内部也不好添加新的控件,那么如何在不影响样式的情况下实现分享功能。

    wxml代码:

          <view class='share_friend'>
            <button class='share_friend_button' open-type='share'></button>
            <image class='type_icon' src="/image/share/friend.png"></image>
            <view class='type_text'>分享给好友</view>
          </view>
    

    wxss代码:

    .share_friend {
      width: 278rpx;
      height: 64rpx;
      margin: 26rpx 0 0 44rpx;
      border-radius: 32rpx;
      border: 2rpx solid rgba(254, 107, 1, 1);
      display: flex;
      flex-direction: row;
    }
    
    .share_friend_button {
      width: 278rpx;
      height: 64rpx;
      opacity: 0;
      position: absolute;
      z-index: 4;
    }
    
    .type_icon {
      width: 42rpx;
      height: 42rpx;
      margin: 10rpx 0 12rpx 40rpx;
    }
    
    .type_text {
      height: 40rpx;
      margin: 12rpx 0 12rpx 12rpx;
      color: rgba(254, 107, 1, 1);
      font: normal 28rpx/40rpx PingFangSC-regular;
    }
    

    显示效果:
    在这里插入图片描述
    关键代码
    在这里插入图片描述
    放一个button去填充要触发分享控件,放在目标控件的第一个子控件位置,宽度、高度和目标控件相同显示用absolute或者fixed,z-index比目标控件高(以防挤原来的布局样式,并且可以触发button的点击事件),opacity设置为0;这样button不会影响原来的布局,并且可以点击。

    2)分享数据类型
    不管采用以上何种方法,转发给好友的数据总归有它的数据模型,该数据模型是通过onShareAppMessage(options)返回的,也就是return一个object即可。其中,options.from可以用来判断是从自定义button打开的转发页面,还是从右上角的打开的转发页面。
    在这里插入图片描述
    如上所示,如果开发人员在onShareAppMessage(options)不进行任何处理,那么微信将会有一个默认的数据转发出去,title为当前小程序名称,path为当前页面的路径,imageUrl为当前页面的截图。根据imageUrl的定义,开发人员可以上传自定义图片,那么这个口子给了运营人员一定的发挥空间。

    二、分享到朋友圈(待续)

    展开全文
  • 有过小程序基础的同学都应该知道,小程序是不能直接分享到朋友圈,起码是自从我写下这边文章起,小程序还没有提供分享朋友圈的api。 但是公司很多时候都会想要传播自己的小程序,从而获取更多的流量,从而分享朋友...

    有过小程序基础的同学都应该知道,小程序是不能直接分享到朋友圈,起码是自从我写下这边文章起,小程序还没有提供分享朋友圈的api。

    但是公司很多时候都会想要传播自己的小程序,从而获取更多的流量,从而分享朋友圈的功能就诞生了。

    老规矩,先说说我的实现思路:

    1、通过canvas组件把要分享出去的东西画出来

    2、通过saveImageToPhotosAlbum方法把canvas生成的画布转成图片保存到本地

    3、通过发朋友圈的方式把之前保存的图片发到朋友圈

    实现过程中要注意的点:

    1、如果是请求网络图片的话,绘制图片的方法一定要写在请求的回调方法里面。

    2、获取相册的授权scope.writePhotosAlbum

    3、如果发现绘制出来的图片很模糊,那一定是没有将deswidth和desheight乘2

    4、找准每一个元素在画布上的坐标,切记文字的Y轴坐标是文字的最底下

    好了,说了这么多,直接上干货。

    分享前的图片

     

    分享后的图片

     

    实现代码:

     

    /**

    * 生命周期函数--监听页面加载

    */

    onLoad: function (options) {

     

    var that=this;

    //获取用户设备信息,屏幕宽度

    wx.getSystemInfo({

    success: res => {

    console.log(res);

    that.setData({

    screenWidth: res.screenWidth,

    screenHeight: res.screenHeight,

    });

    }

    });

    var name = decodeURIComponent(options.queryString);

    that.setData({

    queryString:name

    });

    //请求后台数据

    wx.request({

    url: 'https://xxx.do',

    data: {

    'queryString': name,

    },

    method: 'POST',

    header: { 'content-type': 'application/x-www-form-urlencoded;charset=utf-8' },

    success: function (res) {

    var list = res.data.data;

    if (list != null && list.length>0){

    var obj1 = list[0];

    var obj2 = list[1];

    var obj3 = list[2];

    if (obj1 != null) {

    that.setData({

    guanname: obj1.name,

    guancount: obj1.displayPercent,

    imgpath: obj1.imgUrl,

    desc: obj1.description,

    txtone: true

    });

    }

    if (obj2 != null) {

    that.setData({

    yaname: obj2.name,

    yacount: obj2.displayPercent,

    txttwo: true

    });

    }

    if (obj3 != null) {

    that.setData({

    jiname: obj3.name,

    jicount: obj3.displayPercent,

    txtthree: true

    });

    }

    //制作要分享的图片

    const ctx = wx.createCanvasContext('sharecan')

    //主要就是计算好各个图文的位置

     

    //绘制红色背景

    ctx.setFillStyle('#FF5554')

    ctx.fillRect(0, 0, that.data.screenWidth, 528)

     

    //绘制文字

    ctx.setFontSize(25)

    ctx.setFillStyle("#ffffff")

    ctx.fillText("品牌鉴定", 12, 64)

     

    //绘制机器人

    ctx.drawImage('/pages/images/jqr.png', 115, 42, 29, 24);

     

    //绘制文字

    ctx.setFontSize(14)

    ctx.setFillStyle("#ffffff")

    var dsj = '经过商标大数据分析,最符合 ' + name + '™ 品牌的商品是';

    ctx.fillText(dsj, 12, 89)

     

    ctx.setFillStyle('#ffffff')//设置矩形的背景颜色

    ctx.fillRect(12, 96, 351, 244)

     

    //请求的网络图片路径

    wx.getImageInfo({

    src: that.data.imgpath,

    success: function (res) {

    //请求成功后将会生成一个本地路径即res.path,

    //然后将该路径缓存到storageKeyUrl关键字中

    wx.setStorageSync("imgUrl", res.path);

    var imgurl = wx.getStorageSync("imgUrl");

     

    ctx.drawImage(imgurl, 12, 96, 351, 173);

    ctx.setFillStyle('#E21917')//设置水印

    ctx.fillText(name + '™', 293, 145)

    var desc = name + '™牌' + that.data.guanname + ',' + that.data.desc;

    var descone = "";

    var desctwo = "";

    if (desc.length > 18) {

    descone = desc.substring(0, 18);

    desctwo = desc.substring(18, desc.length);

    console.log(descone);

    console.log(desctwo)

    ctx.setFillStyle("#222222")

    ctx.setFontSize(18)

    ctx.fillText(descone, 24, 302)

    ctx.setFillStyle("#222222")

    ctx.setFontSize(18)

    ctx.fillText(desctwo, 24, 326)

    } else {

    ctx.setFillStyle("#222222")

    ctx.setFontSize(18)

    ctx.fillText(desc, 24, 302)

    }

     

    ctx.setFontSize(12)

    ctx.setFillStyle('#FFAAA9')

    ctx.fillText("* 图源网络,非商业用途,如有侵权请联系删除",12,360);

    ctx.setFontSize(20)

    ctx.setFillStyle('#FFFFFF')

    var dds = '大多数注册 ' + name + '™ 相关商标品牌中'

    ctx.fillText(dds, 12, 390)

     

    if (that.data.txtone) {

    ctx.drawImage('/pages/images/guanjun.png', 12, 404.5, 9.5, 15);

     

    ctx.setFontSize(14)

    ctx.setFillStyle('#FFBFBF')

    var gn = that.data.guancount + ' 的人用做';

    ctx.fillText(gn, 27.5, 419.5)

     

    ctx.setFontSize(14)

    ctx.setFillStyle('#ffffff')

    ctx.fillText(that.data.guanname + ';', 120, 419.5);

    }

     

    if (that.data.txttwo) {

    ctx.drawImage('/pages/images/yajun.png', 12, 430.5, 9.5, 15);

     

    ctx.setFontSize(14)

    ctx.setFillStyle('#FFBFBF')

    var ya = that.data.yacount + ' 的人使用';

    ctx.fillText(ya, 27.5, 444)

     

    ctx.setFontSize(14)

    ctx.setFillStyle('#ffffff')

    ctx.fillText(that.data.yaname + ';', 120, 444);

    }

     

    if (that.data.txtthree) {

    ctx.drawImage('/pages/images/jijun.png', 12, 456.5, 9.5, 15);

     

    ctx.setFontSize(14)

    ctx.setFillStyle('#FFBFBF')

    var jn = that.data.jicount + ' 的人用来';

    ctx.fillText(jn, 27.5, 471)

     

    ctx.setFontSize(14)

    ctx.setFillStyle('#ffffff')

    ctx.fillText(that.data.jiname + ';', 120, 471);

    }

    //绘制底部的分享图片

    ctx.drawImage('/pages/images/botshare.png', 0, 528, that.data.screenWidth, 139);

    //绘制完成之后的回调方法

    ctx.draw(false, function (e) {

    that.data.isCompletedDraw = true

    });

     

    }

    });

    }else{

    wx.navigateTo({

    url: '/pages/ppblank/ppblank?name='+encodeURIComponent(that.data.queryString),

    })

    }

    }

    });

     

    }

     

    sharepyq:function(e){//点击分享朋友圈

     

    var that=this;

    if (!that.data.isCompletedDraw){

    wx.showToast({

    image: '/pages/images/tishi.png',

    title: '图片正在生成中',

    icon: 'none',

    });

    return ;

    }

    console.log("是否拒绝过授权:"+that.data.auth)

    if(that.data.auth==false){

    wx.showModal({

    content: 'T _ T 请打开保存相册的权限',

    showCancel: false,

    confirmText: '去打开',

    confirmColor: '#72B9C3',

    success: function (res) {

    //进入授权页面

    wx.openSetting({

    success: (res) => {

    res.authSetting = {

    "scope.writePhotosAlbum": true

    }

    that.setData({

    modaltwo: false,

    auth:true

    });

    }

    });

    }

    });

    return false;

    }

    var finwid = that.data.screenWidth*2;

    var finhei = that.data.screenHeight*2;

    wx.canvasToTempFilePath({

    x: 0,

    y: 0,

    width: that.data.screenWidth,

    height: that.data.screenHeight,

    destWidth: finwid,

    destHeight: finhei,

    canvasId: 'sharecan',

    success: function (res) {

    that.setData({

    preurl: res.tempFilePath,

    canvasHidden: false

    });

    //生产环境时 记得这里要加入获取相册授权的代码

    wx.getSetting({

    success(res) {

     

    if (!res.authSetting['scope.writePhotosAlbum']) {//未授权,则重新授权

    wx.authorize({

    scope: 'scope.writePhotosAlbum',

    success() {

    // 用户已经同意小程序使用保存相册功能,

    //后续调用 wx.saveImageToPhotosAlbum 接口不会弹窗询问

    wx.saveImageToPhotosAlbum({

    filePath: that.data.preurl,

    success(res) {

    wx.showModal({

    content: '图片已保存到相册,赶紧晒一下吧~',

    showCancel: false,

    confirmText: '好哒',

    confirmColor: '#72B9C3',

    success: function (res) {

    if (res.confirm) {

    console.log('用户点击确定');

    that.setData({

    canvasHidden: true

    });

    }

    that.setData({

    modaltwo: false,

    });

    }

    })

    }

    });

    }, fail: function (res) {

    console.log("拒绝授权");

    console.log(res);

    that.setData({

    canvasHidden: true,

    modaltwo: false,

    auth: false

    });

    }

    })

     

    } else {//已经授权,则保存图片

    wx.saveImageToPhotosAlbum({

    filePath: that.data.preurl,

    success(res) {

    wx.showModal({

    content: '图片已保存到相册,赶紧晒一下吧~',

    showCancel: false,

    confirmText: '好哒',

    confirmColor: '#72B9C3',

    success: function (res) {

    if (res.confirm) {

    console.log('用户点击确定');

    that.setData({

    canvasHidden: true

    });

    }

    that.setData({

    modaltwo: false

    });

    }

    })

    }

    });

    }

    }

    });

    },

    fail: function (res) {

    console.log("保存失败")

    }

    })

    }

     

    如果我的文章帮助到了大家,减少大家的弯路,愿意打赏的请扫下面的二维码,也可留言。

     

    展开全文
  • 小程序实现分享 公司很多时候都会想要传播自己的小程序,从而获取更多的流量,从而分享朋友圈的功能就诞生了。 分享步骤: 一、通过canvas组件把要分享出去的东西画出来 二、通过saveImageToPhotosAlbum方法把...

    小程序实现分享

    公司很多时候都会想要传播自己的小程序,从而获取更多的流量,从而分享朋友圈的功能就诞生了。

    分享步骤:

    一、通过canvas组件把要分享出去的东西画出来

    二、通过saveImageToPhotosAlbum方法把canvas生成的画布转成图片保存到本地

    三、通过发朋友圈的方式把之前保存的图片发到朋友圈

    下面上代码:

    一、通过canvas组件把要分享出去的东西画出来

    首先在wxml添加一个画布(canvas),画布上会绑定一个bindtap事件(用来预览图片的功能)

    要实现分享,最重要的是获取二维码:为满足不同需求和场景,这里提供了三个接口,开发者可挑选适合自己的接口。

    A接口,生成小程序码,可接受path参数较长,生成个数受限。

    B接口,生成小程序码,可接受页面参数较短,生成个数不受限。

    C接口,生成二维码,可接受path参数较长,生成个数受限。

    第一步:

    先通过AppId和AppSecret获取AccessToken(注意:调用接口时,请登录“微信公众平台-开发-基本配置”提前将服务器IP地址添加到IP白名单中,点击查看设置方法,否则将无法调用成功,token有效期为两小时)

    请求地址:https://api.weixin.qq.com/cgi-bin/token

    请求方式:GET

    请求参数:

    参数

    是否必须

    说明

    grant_type

    获取access_token填写client_credential

    appid

    第三方用户唯一凭证

    secret

    第三方用户唯一凭证密钥,即appsecret

    返回参数:

    参数

    说明

    access_token

    获取到的凭证

    expires_in

    凭证有效时间,单位:秒

    详细详细请看api文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183

    第二步:

    有了AccessToken,我们就可以获取不同的小程序二维码了。

    小程序码分两种:前面一种为菊花式小程序码(接口A和接口B),另一种是狗皮膏药式QR码(接口C)

     

    接口A:适用于需要的码数量较少的业务场景 接口地址:

    https://api.weixin.qq.com/wxa/getwxacode?access_token=ACCESS_TOKEN

    注意:通过该接口生成的小程序码,永久有效,数量限制见文末说明,请谨慎使用。用户扫描该码进入小程序后,将直接进入 path 对应的页面。

     

    接口B:适用于需要的码数量极多的业务场景

    接口地址:

    https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN

    注意:通过该接口生成的小程序码,永久有效,数量暂无限制。用户扫描该码进入小程序后,开发者需在对应页面获取的码中 scene 字段的值,再做处理逻辑。使用如下代码可以获取到二维码中的 scene 字段的值。调试阶段可以使用开发工具的条件编译自定义参数 scene=xxxx 进行模拟。首页onLoad的时候获取参数需var scene = decodeURIComponent(options.scene)

     

    接口C:适用于需要的码数量较少的业务场景

    接口地址:

    https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=ACCESS_TOKEN

    注意:通过该接口生成的小程序二维码,永久有效,数量限制见文末说明,请谨慎使用。用户扫描该码进入小程序后,将直接进入 path 对应的页面。

     

    // canvas生成图片地址

    return new Promise(function (resolve, reject) {

    wx.getSystemInfo({

           success: function (res) {

           var arr = [res.windowWidth, res.windowHeight];

           resolve(arr);

           }

    })

    }).then(function (value) {

           wx.canvasToTempFilePath({

           destWidth: value[0] * 6, // 这里将图片扩大6倍,是为了让保存的图片更清晰

           destHeight: value[1] * 6,

           fileType: "jpg",

           canvasId: 'shareCanvas',// 该id就是canvas组件的 canvas_id

           quality: 1,

           success: function (obj) {

                 console.log(obj.tempFilePath);

                 that.setData({

                 tempFilePath: obj.tempFilePath

                 })

           }

    })

    })

     

    二、最后通过saveImageToPhotosAlbum方法把canvas生成的画布转成图片保存到相册

    //保存至相册

    saveImageToPhotosAlbum: function () {

         var that = this

         var value = that.data.tempFilePath;// 该图片为你上面画出来的图片地址;

         wx.saveImageToPhotosAlbum({

              filePath: value,

              success: (res) => {

              // 保存成功

              },

         fail: function (res) {

               console.error("打开设置窗口");

               wx.openSetting({

                    success(settingdata) {

                           console.error(settingdata)

                           if (settingdata.authSetting["scope.writePhotosAlbum"]) {

                                console.error("获取权限成功,再次点击图片保存到相册")

                           } else {

                                console.error("获取权限失败")

                           }

                   }

              })

        }

    })

    },

    三、通过发朋友圈的方式把之前保存的图片发到朋友圈(相信这一步大家都懂,我就不介绍了)

     

    小程序的局限性

    1. tip:通过该接口,仅能生成已发布的小程序的二维码。

    2. tip:可以在开发者工具预览时生成开发版的带参二维码。

    3. tip:接口A加上接口C,总共生成的码数量限制为100,000,请谨慎调用。

    4. tip: POST 参数需要转成 json 字符串,不支持 form 表单提交。

    附:大家有不懂的可以一起探讨哦

     

    展开全文
  • 本篇文章的目标是实现分享小程序中的单张页面给其他用户,并且打开分享后的页面拥有返回按钮. 最终的效果: 1. 封装一个分享的组件 <view class='share'> <view class='like'> ...

      本篇文章的目标是实现分享小程序中的单张页面给其他用户,并且打开分享后的页面拥有返回按钮.

      最终的效果:

     

                                                                

     

     

    1. 封装一个分享的组件

    <view class='share'>
       <view class='like'>
          <view class='iconfont icon-aixin'></view>
       </view>
       <view class='weixin'>
           <button open-type="share" class='iconfont icon-weixin'></button>
       </view>
    </view>

    页面效果如下:

                                                

    说明:

       如果想在页面上实现点击按钮分享,那么这个点击的按钮必须使用button标签,并且open-type置为share

     

    2.在想要分享的页面中引入上面组件,并在页面的js中Page所包含的对象里增加一个方法onShareAppMessage

     

    Page({
    
      /**
       * 页面的初始数据
       */
      data: {
       news_id:12
      },
    
      /**
       * 生命周期函数--监听页面加载
       */
      onLoad: function (options) {
        
       
        
      },
    
      /**
       * 用户点击右上角分享
       */
      onShareAppMessage: function () {
    
        let url = encodeURIComponent('/packageNews/pages/news_detail/news_detail?news_id=' + this.data.news_id);
    
        return {
          title: "热点详情",
          path:`/pages/index/index?url=${url}` 
        }
    
      }
    })

     说明:

      将当前页面的路径包括参数使用encodeURIComponent进行编码并作为url的参数,path设置为小程序的首页.当我们将该页面

    分享给其他人时,他们打开的首先是首页,然后跳转到我们分享的这个页面.

     

    3.要想分享后的页面打开先进入首页再跳转到分享的页面,首页的js要做如下设置

     

    //index.js
    Page({
      data: {
      
      },
      onLoad: function (options) {
    
    
        if(options.url){
    
          let url = decodeURIComponent(options.url);
    
          wx.navigateTo({
            url
          })
    
        }
    
      }
    
    })
    

    说明:

      在onLoad的方法中先判断有没有url参数,如果有的话就使用decodeURIComponent对url解码然后跳转.由于小程序是先进入了首页然后跳转到分享页,这样便解决了分享页没有返回键的问题.

     

     

     

     

    展开全文
  • 小程序分享

    2019-04-25 13:59:25
    wxml添加标题 open-type设为‘share’ <button open-type="share"></button> 点击就会触发下边的事件了 //js onShareAppMessage: function () { //console.log('aaa');... retur...

    wxml添加标题 open-type设为‘share’

    <button open-type="share"></button>
    

    点击就会触发下边的事件了

    //js
        onShareAppMessage: function () {
            //console.log('aaa');
            let that = this;
            return {
                title: 请填写分享标题, // 转发后 所显示的title
                path: '请填写你要打开的路径', // 相对的路径
                success: (res) => {    // 成功后要做的事情
                    // console.log
    
                    wx.getShareInfo({
                        shareTicket: res.shareTickets[0],
                        success: (res) => {
                            that.setData({
                                isShow: true
                            })
                        },
                        fail: function (res) { console.log(res) },
                        complete: function (res) { console.log(res) }
                    })
                },
                fail: function (res) {
                    // 分享失败
                    console.log(res)
                }
            }
        },
    
    展开全文
  • 官网文档:... 第一种情况 点击小程序转发 不加入参数 //转发 onShareAppMessage: function() { let users = wx.getStorageSync('us...
  • 小程序 - 分享功能

    2018-12-19 16:56:44
    小程序分享至好友或者微信群,参考文档页面事件处理函数,小程序分享原来是可以监听成功分享的回调,但是该回调事件被微信禁用了,详情可查看分享功能调整   小程序分享,可通过右上角自带的分享按钮,也可以在...
  • 小程序分享功能开发

    2018-03-17 14:58:18
    小程序分享功能开发 接触小程序不久,在第一次开发分享功能的过程中遇到了些许波折,此文介绍在小程序中,如何应对不同业务场景下的分享功能开发需求。 功能介绍 小程序转发分享功能,跟开发相关的内容并不多,...
  • 以下是18年3月底在公司内部的分享,虽然小程序对于分享回调有所限制(下文会说明),但是整体方案依然是可行的 ...官方文档有,但是较分散,所以对这块知识作一个小结,能快速了解小程序分享至群获...
  • 小程序分享到朋友圈只能使用小程序码海报来实现,生成小程序码的方式有两种,一种是使用后端方式,一种是使用小程序自带的canvas生成;后端的方式开发难度大,由于生成图片耗用内存比较大对服务端也是不小的压力;...
  • 小程序分享参数问题

    2018-11-07 14:14:29
    小程序分享 微信小程序分享主要是使用自带的onShareAppMessage方法调起分享组件。 主要写法就是 onShareAppMessage:function(res){ if(res.from == 'button'){ //按钮授权 调用share } return { title: ...
  • 截止到2017年11月18号,微信小程序官方还尚未开放直接分享到朋友圈的能力,但是劳动人民的智慧是伟大的【狗头】 现在普遍的做法是,生成一张带有小程序码的图片,保存到用户相册,用户自行发布图片到朋友圈 我的...
  • 微信小程序分享 实现微信小程序分享和app内微信分享 小程序分享很简单,我们通过button的open-type属性 <!-- #ifdef MP-WEIXIN --> <button class="share-btn" open-type="share">立即分享</button&...
  • 小程序分享的时候,当别人打开分享的界面,分享上面不会有返回按钮,因为小程序默认分享界面是首页,所以不会有返回按钮。如果需要返回首页,一般有两种做法。 1,添加一个悬浮窗 &lt;image wx:if="{{is...
  • 微信小程序分享页面

    2017-09-26 15:14:16
    解决微信小程序分享页面到朋友圈
  • 调用微信小程序分享需要button标签 <button open-type="share">test</button> 然后在js的page里加一个函数 onShareAppMessage: function() { return { title: "小伙伴快来和我玩", ...
  • 重磅消息重磅消息重磅消息重磅消息重磅消息重磅消息重磅消息 ...目前小程序已经支持分享到朋友圈, 只有安卓机好使。 体验地址:扫码进入小程序 ---- 点击右上角三个点 1.先看案例 2.微信开发文档: ...
  • uni-app 微信小程序分享按钮 官方文档说明 在 manifest.json 的 App SDK 配置里,勾选微信消息及朋友圈,并填写相关 appkey,微信 appkey 在需要分享的页面填写: <!-- #ifdef MP-WEIXIN --> <button ...
  • 生成微信小程序分享二维码 微信小程序官方开放的二维码的接口,其中有一个是生成小程序二维码的,还有一个是圆形的小程序码,我这里就用php生成二维码。 完整代码: public function share($product_id, $user_id) ...
  • //此为微信小程序分享 onShareAppMessage: function(options) { //先写一个数组, var shareimg =[ ...
1 2 3 4 5 ... 20
收藏数 329,038
精华内容 131,615
关键字:

小程序分享