精华内容
下载资源
问答
  • 如果小程序是你自己开发的,那么你可以...“扫普通链接二维码打开小程序”,然后点“添加”,根据提示进行操作即可。 网上看到的答案,但是个人开发的小程序无法进行授权,目前还未找到解决方法,等待后续更新。 ...

    如果小程序是你自己开发的,那么你可以进入小程序的后台管理页面,点击“开发”=>“开发设置”=>“扫普通链接二维码打开小程序”,然后点“添加”,根据提示进行操作即可。
    网上看到的答案,但是个人开发的小程序无法进行授权,目前还未找到解决方法,等待后续更新。
    在这里插入图片描述

    展开全文
  • 小程序如何做到分享生成小程序码,别人扫描后可绑定推荐人关系。 一、整个功能思路流程? 生成小程序码肯定是要携带分享人也就是推荐人标识id的. 用户扫描后可获取到小程序码携带的推荐人id. 获取带id后传后端...

    前言

    小程序如何做到分享生成小程序码,别人扫描后可绑定推荐人关系。

    一、整个功能思路流程?

    1. 生成小程序码肯定是要携带分享人也就是推荐人标识id的.
    2. 用户扫描后可获取到小程序码携带的推荐人id.
    3. 获取带id后传给后端实现绑定推荐人关系.

    二、使用步骤

    1.如何生成小程序码

    这个是服务器端的工作,我们只需要调接口把推荐人的id和要跳转的页面路径传过去就可以了。

    后端接口会给我们返回一个图片连接就是小程序码了。

    服务端生成方法可查看此链接:生成小程序码

    2.用户扫描后如何获取推荐人id

    通过小程序码进入小程序,小程序码参数会传入到onLoad()的option.scene中。但是被加密编码过,我们需要进行解密编码后在使用,方法可查看上面生成小程序码的方法。

    代码如下(示例):

    onLoad(option) {
    			if (option.scene) {
    				var scene = decodeURIComponent(option.scene);
    				let recommenderNo = this.getUrlParam('recommendNo', scene)
    				if (scene.indexOf('recommendNo') > -1) {
    					uni.setStorage({
    						key: 'recommenderNo',
    						data: recommenderNo
    					});
    					this.recommenderNo = recommenderNo;
    				}
    				let courseId = this.getUrlParam('courseId', scene)
    				if (scene.indexOf('courseId') > -1) {
    			
    					this.courseId = courseId;
    				}
    				return
    			}
    		},
    //---------------------------------------------------------------------------
    //这个是我解密编码的方法   大家可以参照
    getUrlParam(variable, query) {
    				var vars = query.split("&");
    				for (var i = 0; i < vars.length; i++) {
    					var pair = vars[i].split("=");
    					if (pair[0] == variable) {
    						return pair[1];
    					}
    				}
    				return (false);
    			},
    

    获取到后调取后端接口传入推荐人id。

    https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.createQRCode.html

    总结

    总之就是给后端传推荐人id获取到先程序码,扫描方逻辑就是在onLoad里获取到推荐人id后调取后端接口传入推荐人id实现绑定。

    就是没找到测试的方法,这一点很窝火;

    展开全文
  • 在写一个小程序,需要为每个人分配一个userId,通过分享统计每个人分享次数以及用户事通过哪个人分享链接成为新用户的。 小程序官方文档: onShareAppMessage: function (res) { if (res.from === 'button') {...

    原因:

    在写一个小程序,需要为每个人分配一个userId,通过分享统计每个人分享次数以及用户事通过哪个人分享链接成为新用户的。
    

    小程序官方文档:

    onShareAppMessage: function (res) {
        if (res.from === 'button') {
          // 来自页面内转发按钮
          console.log(res.target)
        }
        return {
          title: '自定义转发标题',
          path: '/page/user?id=123',
          success: function(res) {
            // 转发成功
          },
          fail: function(res) {
            // 转发失败
          }
        }
      }

    然后在Page.onLoad中通过参数options获取
    例如获取上述id的值

    console.log('onLoad-options.id:' + options.id);

    问题:根据文档做了个实验

    实验1.

    使用一台手机扫码预览打印null或者undefined,点击分享给另一个人,然后退出。
    
    使用同一台手机点开刚刚分享给别人的链接看到调试台正确打印分享参数。
    

    实验2.

    使用一台手机扫码预览打印null或者undefined,点击分享给另一个人,然后退出。
    
    使用另一台手机让你刚刚分享给那个人的微信点击链接,你会发现根本就没有任何log输出。
    

    注意:不要使用刚才的手机或者微信号了或者你可以在path后面加一个参数:

    path: '/page/user?id=123&password=123456'

    然后在Page.onLoad中打印一下

    console.log('onLoad-options.id:' + options.id + 'password:' + options.password);

    你会发现打印出来的只有options.id信息。

    实验3.

    使用一台手机扫码预览打印null或者undefined,点击分享某个群聊,然后退出。
    
    在群聊中让另外一个可以调试的人点击链接发现结果与实验2一致。
    

    结论:

    只有扫描过同一个预览版本的手机点击对方发送的分享链接才能把所有参数正确打印出来。否则打印的是上一次扫描的预览版本的字段。如果最后一次预览版本与上一次预览版本有相同字段,则内容可以正确打印最新值。否则打印内容是上一次为null或者undefined的字段。
    
    展开全文
  • 1. 小程序要做分销功能,即这个小程序是谁分享给你的,你使用TA分享过来的小程序买了东西后,双方都有优惠 2. 小程序要实现分销功能,就要获取分享者的openid和使用者的openid;使用者的openid很容易获取,但是分享...

    项目背景:

    1. 小程序要做分销功能,即这个小程序是谁分享给你的,你使用TA分享过来的小程序买了东西后,双方都有优惠

    2. 小程序要实现分销功能,就要获取分享者的openid和使用者的openid;使用者的openid很容易获取,但是分享者的openid怎么通过小程序码和转发带过来呢?这是本文主要解决的问题。

     

    最终实现的前端界面如下图所示,要实现 小程序码带参 和 “分享好友购票带参”

     

    一、生成带参小程序码

    1. 实现的大体逻辑:

    1.1  首先获取AccessToken(https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183);

    1.2  然后调用微信API:getWXACodeUnlimit(https://developers.weixin.qq.com/miniprogram/dev/api-backend/getWXACodeUnlimit.html);

    即可生成小程序码。

     

    2. 接口代码片段 CommonFunc.php (里面涉及到数据库操作和HTTP请求可以改成自己的)

    <?php
    
    class CommonFunc
    {
        /**
         * @Function: 获取小程序AccessToken
         * @param $appId
         * @return mixed
         * @throws LocalServiceException
         * @throws RemoteServiceException
         * 从数据库查询access_token 如果过期,则调用微信官方接口,获取新的
         * access_token,并更新新的access_token和过期时间到数据库
         */
        public function getAccessToken($appId)
        {
            $appIdModel = new AppIDModel();
            $row = $appIdModel->fetchByWxAppId($appId);#数据库操作
            if($row)
            {
                $token = empty($row['access_token']) ? null : json_decode($row['access_token'], true);
                if($token && $token['expire'] > time())
                {
                    return $token['access_token'];
                }else
                {
                    $appSecret = $row['wx_appsecret'];
                    $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appId}&secret={$appSecret}";
                    $curl = new CUrl(30);
                    $ret = $curl->get($url);#HTTP请求
                    $ret = json_decode($ret, true);
                    if(isset($ret['errcode']))
                    {
                        throw new RemoteServiceException("获取AccessToken失败:".$ret['errmsg'],98);
                    }else
                    {
                        $expire = time() + $ret['expires_in'] - 200; //过期时间
                        $accessToken = $ret['access_token'];
                        $updateData = array('access_token' => json_encode(array('access_token' => $accessToken, 'expire' => $expire)));
                        $params = array('wx_appid' => $appId);
                        $appIdModel->updateData($updateData, $params);#数据库操作
                        return $accessToken;
                    }
                }
            }else
            {
                throw new LocalServiceException("账户信息不存在或配置有误",99);
            }
        }
    
    
        /**
         * @Function 生成微信二维码
         * @param $scene String 最大32个可见字符,只支持数字,大小写英文以及部分特殊字符
         * @param string $page String 必须是已经发布的小程序存在的页面(否则报错),例如 pages/index/index
         * @param string $width String 二维码的宽度,单位 px,最小 280px,最大 1280px
         * @param bool $auto_color Bool 自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调,默认 false
         * @param string $line_color Bool auto_color为 false 时生效,使用 rgb 设置颜色 例如 {"r":"xxx","g":"xxx","b":"xxx"} 十进制表示
         * @param bool $is_hyaline Bool 是否需要透明底色,为 true 时,生成透明底色的小程序
         * @return mixed|string
         * @throws LocalServiceException
         * @throws RemoteServiceException
         */
        public function getWXACodeUnlimit($scene, $page='pages/index/index', $width='430',$auto_color=false,$line_color='{"r":0,"g":0,"b":0}',$is_hyaline=false)
        {
            //1.获取AccessToken
            $appId = \PhalApi\DI()->config->get('app.zc.wxAppId');#获取配置文件里的小程序appid
            $token = $this->getAccessToken($appId);
    
            //2.获取二维码
            $params = array(
                'scene'=>$scene,
                'page'          =>      $page,
                'width'         =>      $width,
                'auto_color'    =>      $auto_color,
                'line_color'    =>      $line_color,
                'is_hyaline'    =>      $is_hyaline,
                );
            $params = json_encode($params);
            $url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token={$token}";
            $curl = new CUrl(30);
            $curlRes = $curl->post($url,$params);#HTTP请求
            $ret = json_decode($curlRes, true);
    
            if(isset($ret['errcode'])) {
                throw new RemoteServiceException("获取二维码失败:".$ret['errmsg'],98);
    
            }else {
                return base64_encode($curlRes);
            }
        }
    }

    接口调用示例:

    <?php
    $commonFunc = new CommonFunc();
    $commonFunc->getWXACodeUnlimit($scene, $page, $width, $auto_color,$line_color, $is_hyaline);
        

     

     

    小程序前端wxacode.js

    Page({
    
      /**
       * 页面的初始数据
       */
      data: {
        openid: '',
        imgBase64: '',//小程序二维码base64值
      },
    
    
      /**
       * 生命周期函数--监听页面加载
       */
      onLoad: function (options) {
        var openid = wx.getStorageSync('openid');
        this.setData({ openid: openid });
        this.getWXACodeUnlimit();
      },
    
    
      //获取二维码数据
      getWXACodeUnlimit: function(){
        var that = this;
        var openid = that.data.openid;
        var imgBase64 = wx.getStorageSync(openid + '_imgBase64')
        if (imgBase64){
          that.setData({ imgBase64: imgBase64 })
    
        }else{
          var reqData = {
            scene: openid,
          }
          wx.request({
          url: 'www.example.com',
          data: {
            scene: reqData.scene,
            page: reqData.page,
            width: reqData.width,
            auto_color: reqData.auto_color,
            line_color: reqData.line_color,
            is_hyaline: reqData.is_hyaline,
          },
          header: {
            "content-type": "application/json"
          },
          method: "POST",
          success: function (e) {
            that.setData({imgBase64: e})
            wx.setStorageSync(openid + '_imgBase64', data)
          },
          fail: function (t) {
            
          }
        })
    
        }
      },
      
    
    
    })

     

    小程序前端wxacode.wxml

    <view>
         <image src='data:image/png;base64,{{imgBase64}}'></image>
    </view>

     

    经过以上步骤即可生成小程序码。

     

     

     

    二、“分享好友”按钮带参转发

    transfer.wxml

    <view class="queryBox">
         <button open-type="share">分享好友</button>
    </view>

    transfer.js

    
    Page({
    
      /**
       * 页面的初始数据
       */
      data: {
        openid: '',
      },
    
      /**
       * 生命周期函数--监听页面加载
       */
      onLoad: function (options) {
        var openid = wx.getStorageSync('openid');
        this.setData({ openid: openid });
      },
    
      /**
       * 生命周期函数--监听页面初次渲染完成
       */
      onReady: function () {
    
      },
    
      /**
       * 生命周期函数--监听页面显示
       */
      onShow: function () {
    
      },
    
      /**
       * 生命周期函数--监听页面隐藏
       */
      onHide: function () {
    
      },
    
      /**
       * 生命周期函数--监听页面卸载
       */
      onUnload: function () {
        
      },
    
      /**
       * 页面相关事件处理函数--监听用户下拉动作
       */
      onPullDownRefresh: function () {
    
      },
    
      /**
       * 页面上拉触底事件的处理函数
       */
      onReachBottom: function () {
    
      },
    
    
    //分享好友购票
    onShareAppMessage:function(){
      var that = this;
      var openid = that.data.openid;
      return {
        title:'专业城际巴士互联网订票平台,300万用户的首选!',
        path: '/pages/index/index?whoShareToMe=' + openid,
        success:function(res){
          console.log(res)
        }
      }
    },
      
    
    
    })

    至此,带参转发也可以了。

     

    三、最后如何获取到带过来的参数值呢?

    在app.js 的 onLaunch函数里捕获即可

    onLaunch: function (options) {
    console.log(JSON.stringfy(options))
    }

     

    展开全文
  • 但是小程序目前不支持直接分享到微信朋友圈,而对我们来说,微信朋友圈又是一个很重要的吸引别人关注的入口,所以,得想办法这个资源利用起来。 可能有的人已经知道,微信小程序支持通过扫描/长按识别二维码或...
  • 小程序分享有自己的机制,在页面点击右上角,或者页面中的button 采用open-type=share方式也可以触发onShareAppMessage方法。 文档里面明确说明,分享的图片可以采用网络图片,那么我们自定义图片之后将其保存,...
  • 小程序分享功能开发

    万次阅读 2018-03-17 14:58:18
    小程序分享功能开发 接触小程序不久,在第一次开发分享功能的过程中遇到了些许波折,此文介绍在小程序中,如何应对不同业务场景下的分享功能开发需求。 功能介绍 小程序转发分享功能,跟开发相关的内容并不多,...
  • onShareAppMessage(){ return{ title:'弹出时分享显示的标题', desc:'内容', path:'/page/index?id=123'//路径,传递参数到页面,可以判断是否为被分享的人打开该链接 } }
  •    微信小程序中使用得比较多的就是分享功能,基本上都会用到,尤其是对二维码图片,保存在本地或者将小程序分享给朋友,好在微信小程序提供的api中已经告诉了该怎么使用,下面就将所用到的分享出来。    首先...
  • 小程序分享群及信息追踪

    千次阅读 2018-05-04 12:19:45
    小程序分享群及信息追踪 需求 1.页面分享 ​ 小程序页面分享链接增加source参数,值为用户ID加密,分享出去的链接类似/pages/live/live?id=10109&amp;source=1ada812s ​ 分享时自定义分享文案、链接、封面...
  • //在页面的js中写 转发 onShareAppMessage: function () { return { title: '微诊断', path: '/pages/index/index' } },
  • 很多时候,我们都希望自己写的小程序能够分享给别人。目前微信小程序,如果你不做任何处理的话,你分享给别人的页面,别人打开了就只能停留在那个页面,无法返回到小程序首页。 而且,如果你的页面是通过点击其他...
  • 微信小程序 分享登录的问题

    千次阅读 2019-12-11 19:47:11
    大家好,在微信小程序实践项目开发过程中,遇到关于分享页面分享给别人 ,需要登录的问题。经过几天彻夜的研究啊,终于解决了。虽然走了很多的弯路,但是最后还是圆满的完成了任务。真的很开心~~~~ 分享给大家参考,...
  • 开发微信小程序的时候,经常要遇到如上图这样的,保存小程序二维码图片的分享功能。 网上找了很多都没有具体的写法,于是自己看官方文档写了一个,分享一下。 大致原理是: 1. 首先,需要在 wxml 中 创建一个 画板 ...
  • 小程序分享 发送好友功能

    千次阅读 2020-01-09 19:25:57
    小程序分享 onShareAppMessage(options) 在页面的js文件中定义了 onShareAppMessage 函数时,页面可以表示改页面可以转发。可以在函数中设置页面转发的信息。 1. 只有定义了该函数,小程序右上角的菜单中才会...
  • 现在许多应用都开发了相应小程序,而在小程序登录时大多数都会添加微信登录选项,微信登录是调用微信官方接口来做相应授权,问题就出在这一步,在调用微信授权时可以添加其他手机号,在添加手机号下方有可选按钮...
  • 小程序里通过wx.openDocument预览的文件 如果想要分享给好友的话 一般都是打不开的 因为只有一个微信随机生成的文件名 也没有后缀 要解决这个办法的话要先通过FileSystemManager.saveFile() 缓存文件保存下来 再...
  • 微信小程序 分享功能

    万次阅读 2018-01-10 13:52:56
    可以分享小程序的任何一个页面好友或群聊。注意是分享给好友或群聊,并没有分享到朋友圈。一方面微信在尝试流量分发方式,但同时又不愿意开放最大的流量入口。 开发文档:...
  • 微信小程序快速刷流量方法分享

    千次阅读 2020-09-22 14:41:37
    3、开发好小程序之后,自己要为自己的小程序做好宣传,前提小程序需要做的完美,小程序一定要做分享功能,将小程序分享到个人、微信群、朋友圈,这样估计很容易就达到几百了; 4、后续可以去各种论坛发帖,切记不要...
  • 用户进入小程序的方法有很多种,可以通过好友分享、群聊分享、微信聊天主页面下拉或者发现栏小程序等等多种途径。但如果通过好友分享或者群聊分享打开的是某一个小程序页面,其页面可能无论如何操作都不能返回主页面...
  • 微信小程序之生成图片分享朋友圈

    千次阅读 2018-08-31 11:36:08
    但是小程序目前不支持直接分享到微信朋友圈,而对我们来说,微信朋友圈又是一个很重要的吸引别人关注的入口,所以,得想办法这个资源利用起来。 可能有的人已经知道,微信小程序支持通过扫描/长按识别二维码或...
  • 首先先和你们说这是可以实现而且非常简单。 接下来我们就来看看如何实现这种需求的 首先我们需要配置分享链接 例如 detail.js页面 ... return { // 当打开分享链接的时候跳转到小程序首页,并设置参数 titl
  • 小程序自带的有数据分析功能,而且很详细:概况、昨日概况、实时统计、访问分析、来源分析、自定义分析、用户画像、累计访问人数、TOP受访页面等等,并且也提供了表格下载功能。 这里增加的分享统计日志功能主要是...
  • 微信小程序分享二维码生成

    千次阅读 2019-06-24 12:06:27
    生成微信小程序分享二维码 微信小程序官方开放的二维码的接口,其中有一个是生成小程序二维码的,还有一个是圆形的小程序码,我这里就用php生成二维码。 完整代码: public function share($product_id, $user_id) ...
  • 2020年7月8日。微信小程序推出分享朋友圈,所以笔者先来试一下,没想到一下搞成...onShareAppMessage、onShareTimeline两个api参数,自行查看小程序文档,想了想,还是你们来个链接 https://developers.weix...
  • 小程序页面内按钮实现分享

    千次阅读 2019-07-31 09:41:33
    小程序页面内按钮实现分享 ,优惠劵分享实例 在需要分享的页面添加一下代码 <button open-type="share" data-index="1">fenxiang </button>//data-index为分享后传入的参数(例如优惠劵的标识,在分享...
  • 先附上官方文档:微信小程序转发文档
  • 您好,您的小程序分享功能缺失,为了方便用户分享传播,小程序主要页面请设置showShareItems参数属性为null或4个,这样用户可以将小程序直接转发QQ好友、空间、微信好友和朋友圈。 解决这个问题,只需要在每个...
  • 垃圾分类小程序源码分享

    千次阅读 2019-07-21 16:27:09
    垃圾分类来了,可你真的知道怎么分吗?...来发布自己的小程序吧,帮助自己帮助他人。 垃圾分类已成为必然趋势,热点引流是关键,越早运营流量就越大。 获取方式:获取源码请点击 微信扫码体验 ...
  • 小程序推广换量经验分享

    千次阅读 2019-01-11 11:04:34
    各个小程序的出现,也带来了新问题,如何给小程序导量?尤其是流量获取越来越困难的今天,小程序也成了商家争抢流量的重要手段。今天,就从小程序的增长和小虎推平台相关,大家做几点分享: 其实,这套实操经验不...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 81,283
精华内容 32,513
关键字:

如何把小程序分享给别人