精华内容
下载资源
问答
  • 如何向小朋友介绍自己
    千次阅读
    2019-03-08 15:45:32

    小程序实现分享

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

    分享步骤:

    一、通过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 表单提交。

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

     

    更多相关内容
  • 寒假的时候,我带着自己的小孩学 Scratch,希望通过这种图形化的语言来训练他的编程思维。开学之后,很多事情需要处理,所以拖到现在才写总结。希望对大家有所启发。 在介绍如何做这件事情之前,先介绍一个学习方面...

    寒假的时候,我带着自己的小孩学 Scratch,希望通过这种图形化的语言来训练他的编程思维。开学之后,很多事情需要处理,所以拖到现在才写总结。希望对大家有所启发。

    在介绍如何做这件事情之前,先介绍一个学习方面的基本认知“库伯学习圈”。

    库伯学习圈

    这个理论,是由心理学家、教育专家大卫·库伯,在综合了杜威、皮亚杰等人的思维模式之后,所提出的学习基本结构。

    他认为,学习的起点,首先来自于 经验,亦即体验。通过经验,我们积累了大量的原始素材,下一步,再对这些素材进行 「反思性观察」 —— 回想,思考,反省,整合,从中抽象出有价值的收获和心得。

    接着,再把这些心得进行 抽象概括,上升到理论的层次,使之形成一个系统,这就是「概念化」的过程。

    最后,再把这些已经成型的理论,用来指导实践,把知识进行巩固和迁移,检验自己是否真的学以致用。

    在这个巩固和迁移的过程中,势必会遇到新的问题,发现新的情境,获得新的经验,那么,再对这些新的经验,进行反思观察、抽象概括,不断向上总结,这就构成了一个循环。

    这就是 —— 整个学习的循环过程。

    这个理论,奠定了整个「体验学习」和「行动学习」流派的基础,也是迄今为止广受认同的学习模式。


    有了以上的认知,我们首先要做的就是让小朋友有充分的体验,通过一个个案例来教他们,而非传统的上来就介绍变量、常量、运算符、表达式、赋值语句、条件语句、循环语句、开关语句、数组、函数、链表、栈、队列、树、图、排序、搜索、事件、消息映射、广播等等。

    以下是我当时用的一些案例:

    我们其次要做的就是,在每个案例中设置一些问题,引导小朋友去拆解、去模仿想办法去解决。比如小齐踢足球,怎样让足球动起来?海底世界的鱼儿们怎样来来回回的游动?小猴子在跳跃的过程中如何检测到是否碰到了火焰等等。在解决这些问题的过程中,让小朋友们明白一个复杂的问题,看起来千头万绪没有思路,但可以把它拆解成一个个简单的问题,再进行逐个击破。

    我们接着要做的就是,和小朋友们一起复盘,把所做案例中涉及的概念整理出来。比如针对哪些经常被重复使用到的运算过程,就可以写成一个函数,需要时直接调用,根据调用的场景、前提条件不同相应地改动输入参数即可,不用每次都重新编写。

    等做的案例多了,小朋友们就会发现,在做下一个案例的时候,需要先做设计,搭架构,而非想到哪里做到哪里,不行了在重新来。慢慢的他们也会提出一些问题,想办法去解决。这样完整的库伯学习圈就建立起来了,这个时候,我们就可以放手让小朋友们自己去发挥了。

    培养小朋友编程思维的步骤看起来简单,但让这个学习圈转起来考验的是家长们的耐心。做任何事情都不会一蹴而就的,更何况培养人呢!希望我的方法能够给大家以启发。就这样吧,See You!

    对了,我把上面的案例打包了,大家可以下载下来结合上面的图文来培养自己的小孩。


    Scratch 是一款由麻省理工学院(MIT) 设计开发的少儿编程工具。其特点是:使用者可以不认识英文单词,也可以不使用键盘,就可以进行编程。构成程序的命令和参数通过积木形状的模块来实现。用鼠标拖动指令模块到脚本区就可以了。

    Scratch下载地址:

    https://scratch.mit.edu

    Scratch主页


    下载《教小朋友编程思维 - Scratch案例》

    关注公众号,后台回复

    20190406

    展开全文
  • 现在生活中很多人因为单身而通过相亲来解决个人问题,但是朋友介绍对象加微信后,却不见对方搭理自己,对比感到很是困惑。有朋友和我聊过,说:”相亲对象加了我的微信后,从不主动联系我,甚至我去找她聊天,她也是...

    朋友介绍对象加微信后,对方不搭理你的真实原因都在这里面。

    现在生活中很多人因为单身而通过相亲来解决个人问题,但是朋友介绍对象加微信后,却不见对方搭理自己,对比感到很是困惑。有朋友和我聊过,说:”相亲对象加了我的微信后,从不主动联系我,甚至我去找她聊天,她也是不冷不热的回一两句,之后就慢慢地不理我了,我也不知道怎么处理这种情况……”

    其实,加了相亲对象微信后就没有下文的情况是常有的,在这里,我们为大家分析了经朋友介绍对象后不回微信的三种可能性。

    朋友介绍对象加微信后第一种情况:对象并非自己情愿相亲,加微信也是被迫所为。

    平时很多人对相亲都不是自己的意愿,觉得自己年龄还没到非要相亲不可的时候,或者目前还没有谈恋爱的打算,想要享受一个人的自由生活。但是由于父母的安排,不断向自己介绍对象,以多交朋友为由,要自己加对方微信,后来,耐不住父母的念叨而加了相亲对象的微信。

    但事实上,加微信本就是被逼行为,所以有了微信以后也不可能去找对方聊天,一般采取爱答不理的态度,久而久之,双方也就不再联系了。

    朋友介绍对象加微信后第二种情况:不喜欢以相亲的形式来找对象,所以不搭理对方。

    虽说现如今社会上的单身男女众多,有些甚至年龄不小了还是孤身一人,找对象这种想法当然也是有的,但是她们不喜欢以相亲的形式来结束单身生活,甚至是排斥这种方式。

    在她们看来,通过相亲认识的对象,都是到了年龄而不得不来解决个人问题的人,这样即使相互看对了眼,之后的相处也缺钱激情。觉得这种被安排的相遇的不对的。

    有这种想法的她们,理所当然的对相亲对象不上心,甚至敷衍。从不会主动去找对方聊天,更不会对对方有好感,所以当相亲对象来找自己聊天时,也只是三言两语就打发了,只有做到基本的尊重,面子上过的去就可以了,那么识趣的自然也就不会再来找她了。

    朋友介绍对象加微信后第三种情况:通过了解后觉得不适合自己,所以就不理你了。

    有些人在找对象时,也会认真的对待,会去了解相亲对象的信息,也想真正的找个人相处。她们不排斥相亲,会去加对方的微信,但是,当通过了解发现自己并不喜欢对方,或者觉得两人不合适,认为再接触下去也是浪费时间,就果断放弃,以后就不想再来往了。

    通过相亲来找对象,本来就是看缘分的事情,双方加了微信之后,无论对方对你是热情还是冷淡,都应该保持一颗随遇而安的心。倘若相亲对象对你爱答不理,发消息我不回,她可能是觉得你们不适合,没有再继续发展下去的可能,所以就冷淡处理了。

    另一半是会陪我们走过平生的人,我们应该保持真心,相信总会一个人在等着你的!

    展开全文
  • 我花了一夜用数据结构给女朋友写个H5走迷宫游戏

    万次阅读 多人点赞 2019-09-10 23:27:18
    而女朋友时常埋怨,认为数据结构这么抽象难懂的东西没啥作用,常会问道:天天写这玩意,有啥作用。而我答道:能干事情多了,比如写个迷宫游戏啥的! 当我码完字准备睡觉时:写不好别睡觉! 分析 如果用数据...

    先看效果图(在线电脑尝试地址http://biggsai.com/maze.html):
    在这里插入图片描述

    起因

    在这里插入图片描述
    又到深夜了,我按照以往在公众号写着数据结构!这占用了我大量的时间!我的超越妹妹严重缺乏陪伴而 怨气满满!
    在这里插入图片描述
    超越妹妹时常埋怨,认为数据结构这么抽象难懂的东西没啥作用,常会问道:天天写这玩意,有啥作用。而我答道:能干事情多了,比如写个小游戏啥的!
    在这里插入图片描述
    当我码完字准备睡觉时:写不好别睡觉!
    在这里插入图片描述

    分析

    如果用数据结构与算法造出东西来呢?

    • 什么东西简单容易呢?我百度一下,我靠,这个鸟游戏原来不好搞啊,得接触一堆不熟悉的东西,搞不来搞不来。

    有了(灵光一闪),写个猜数字游戏,问他加减乘除等于几。

    • 超越妹妹又不是小孩子,糊弄不过去。

    经过一番折腾,终于在半夜12点确定写迷宫小游戏了。大概弄清楚其中的几个步骤。

    大概是

    • 画线—>画迷宫(擦线)—>方块移动、移动约束(不出界不穿墙)—>完成游戏

    画线(棋盘)

    对于html+js(canvas)画的东西,之前学过javaswing应该有点映像。在html中有个canvas 的画布,可以在上面画一些东西和声明一些监听(键盘监听)。

    对于迷宫来说,那些线条是没有属性的,只有位置x,y,你操作这个画布时候,可能和我们习惯的面相对象思维不一样。所以,在你设计的线或者点的时候,记得那个点、线在什么位置,在后续划线还是擦线还是移动的时候根据这个位置进行操作。

     <!DOCTYPE html>
    <html>
      <head>
        <title>MyHtml.html</title>	
      </head> 
      <body>
      <canvas id="mycanvas" width="600px" height="600px"></canvas>
        
      </body>
      <script type="text/javascript">
    
    var aa=14;
        var chess = document.getElementById("mycanvas");
        var context = chess.getContext('2d');
    
        //  var context2 = chess.getContext('2d');
        //      context.strokeStyle = 'yellow';
        var tree = [];//存放是否联通
        var isling=[];//判断是否相连
        for(var i=0;i<aa;i++){
            tree[i]=[];
            for(var j=0;j<aa;j++){
                tree[i][j]=-1;//初始值为0
            }
        }  for(var i=0;i<aa*aa;i++){
            isling[i]=[];
            for(var j=0;j<aa*aa;j++){
                isling[i][j]=-1;//初始值为0
            }
        }
        
        function drawChessBoard(){//绘画
            for(var i=0;i<aa+1;i++){
                context.strokeStyle='gray';//可选区域
                context.moveTo(15+i*30,15);//垂直方向画15根线,相距30px;
                context.lineTo(15+i*30,15+30*aa);
                context.stroke();
                context.moveTo(15,15+i*30);//水平方向画15根线,相距30px;棋盘为14*14;
                context.lineTo(15+30*aa,15+i*30);
                context.stroke();
            }
        }
        drawChessBoard();//绘制棋盘
       
        //      var mymap=new Array(36);
        //      for(var i=0;i<36;i++)
        //     {mymap[i]=-1;}
    
    
      </script>
    </html>
    

    实现效果
    在这里插入图片描述

    画迷宫

    随机迷宫怎么生成?怎么搞?一脸懵逼。

    • 因为我们想要迷宫,那么就需要这个迷宫出口和入口有连通路径,你可能压根不知道迷宫改怎么生成,用的什么算法。小声BB:并查集(不相交集合)

    迷宫和不相交集合有什么联系呢?(规则)

    • 之前笔者在前面数据结构与算法系列中曾经介绍过并查集(不相交集合),它的主要功能是森林的合并,不联通的通过并查集能够快速将两个森林合并,并且能够快速查询两个节点是否在同一个森林中!

    我们的随机迷宫:在每个方格都不联通的情况下,是一个棋盘方格,这也是它的初始状态。而这个节点可以跟邻居可能相连,也可能不相连。我们可以通过并查集实现。

    具体思路为:(主要理解并查集)

    • 1:定义好不想交集合的基本类和方法(search,union等)
      2:数组初始化,每一个数组元素都是一个集合,值为-1
      3:随机查找一个格子(一维数据要转换成二维,有点麻烦),在随机找一面墙(也就是找这个格子的上下左右),还要判断找的格子出没出界。
      具体在格子中找个随机数m——>随机数m在二维中的位置[m/长,m%长]——>这个二维的上下左右随机找一个位置p[m/长+1,m%长][m/长-1,m%长][m/长,m%长+1][m/长,m%长-1]——>判断是否越界
      4:判断两个格子(一维数组编号)是否在一个集合(并查集查找)。如果在,则重新找,如果不在,那么把墙挖去
      5:把墙挖去有点繁琐,需要考虑奇偶判断它那种墙(上下还是左右,还要考虑位置),然后擦掉。(根据数组转换成真实距离)。具体为找一个节点,根据位置关系找到一维数组的号位用并查集判断是否在一个集合中。
      6:最终得到一个完整的迷宫。直到第一个(1,1)和(n,n)联通停止。虽然采用随机数找墙,但是效果并不是特别差。其中要搞清一维二维数组的关系。一维是真实数据,并查集操作。二维是位置。要搞懂转化!

    注意:避免混淆,搞清数组的地址和逻辑矩阵位置。数组从0开始的,逻辑上你自己判断。别搞混淆!
    在这里插入图片描述
    主要逻辑为:

    while(search(0)!=search(aa*aa-1))//主要思路
        {
            var num = parseInt(Math.random() * aa*aa );//产生一个小于196的随机数
            var neihbour=getnei(num);
            if(search(num)==search(neihbour)){continue;}
            else//不在一个上
            {
               isling[num][neihbour]=1;isling[neihbour][num]=1;
                drawline(num,neihbour);//划线
                union(num,neihbour);
             
            }
        }
    

    那么在前面的代码为

    <!DOCTYPE html>
    <html>
      <head>
        <title>MyHtml.html</title>	
      </head> 
      <body>
      <canvas id="mycanvas" width="600px" height="600px"></canvas>
        
      </body>
      <script type="text/javascript">
    //自行添加上面代码
        //      var mymap=new Array(36);
        //      for(var i=0;i<36;i++)
        //     {mymap[i]=-1;}
        function getnei(a)//获得邻居号  random
        {
            var x=parseInt(a/aa);//要精确成整数
            var y=a%aa;
            var mynei=new Array();//储存邻居
            if(x-1>=0){mynei.push((x-1)*aa+y);}//上节点
            if(x+1<14){mynei.push((x+1)*aa+y);}//下节点
            if(y+1<14){mynei.push(x*aa+y+1);}//有节点
            if(y-1>=0){mynei.push(x*aa+y-1);}//下节点
            var ran=parseInt(Math.random() * mynei.length );
            return mynei[ran];
    
        }
        function search(a)//找到根节点
        {
            if(tree[parseInt(a/aa)][a%aa]>0)//说明是子节点
            {
                return search(tree[parseInt(a/aa)][a%aa]);//不能压缩路径路径压缩
            }
            else
                return a;
        }
        function value(a)//找到树的大小
        {
            if(tree[parseInt(a/aa)][a%aa]>0)//说明是子节点
            {
                return tree[parseInt(a/aa)][a%aa]=value(tree[parseInt(a/aa)][a%aa]);//不能路径压缩
            }
            else
                return -tree[parseInt(a/aa)][a%aa];
        }
        function union(a,b)//合并
        {
            var a1=search(a);//a根
            var b1=search(b);//b根
            if(a1==b1){}
            else
            {
                if(tree[parseInt(a1/aa)][a1%aa]<tree[parseInt(b1/aa)][b1%aa])//这个是负数(),为了简单减少计算,不在调用value函数
                {
                    tree[parseInt(a1/aa)][a1%aa]+=tree[parseInt(b1/aa)][b1%aa];//个数相加  注意是负数相加
                    tree[parseInt(b1/aa)][b1%aa]=a1;       //b树成为a树的子树,b的根b1直接指向a;
                }
                else
                {
                    tree[parseInt(b1/aa)][b1%aa]+=tree[parseInt(a1/aa)][a1%aa];
                    tree[parseInt(a1/aa)][a1%aa]=b1;//a所在树成为b所在树的子树
                }
            }
        }
    
        function drawline(a,b)//划线,要判断是上下还是左右
        {
    
            var x1=parseInt(a/aa);
            var y1=a%aa;
            var x2=parseInt(b/aa);
            var y2=b%aa;        
            var x3=(x1+x2)/2;
            var y3=(y1+y2)/2;
            if(x1-x2==1||x1-x2==-1)//左右方向的点  需要上下划线
            {
                //alert(x1);
                //  context.beginPath();
                context.strokeStyle = 'white';
                //    context.moveTo(30+x3*30,y3*30+15);//
                //   context.lineTo(30+x3*30,y3*30+45);
                context.clearRect(29+x3*30, y3*30+16,2,28);
                //    context.stroke();
            }
            else
            {
                //   context.beginPath();
                context.strokeStyle = 'white';
                //  context.moveTo(x3*30+15,30+y3*30);//
                //    context.lineTo(45+x3*30,30+y3*30);
                context.clearRect(x3*30+16, 29+y3*30,28,2);
                //      context.stroke();
            }
        }
         
        while(search(0)!=search(aa*aa-1))//主要思路
        {
            var num = parseInt(Math.random() * aa*aa );//产生一个小于196的随机数
            var neihbour=getnei(num);
            if(search(num)==search(neihbour)){continue;}
            else//不在一个上
            {
               isling[num][neihbour]=1;isling[neihbour][num]=1;
                drawline(num,neihbour);//划线
                union(num,neihbour);
             
            }
        }
      </script>
    </html>
    

    实现效果:
    在这里插入图片描述
    在这里插入图片描述

    方块移动

    这部分我采用的方法不是动态真的移动,而是一格一格的跳跃。也就是当走到下一个格子将当前格子的方块擦掉,在移动的那个格子中再画一个方块。选择方块是因为方块更方便擦除,可以根据像素大小精准擦除。

    另外,再移动中要注意不能穿墙、越界。那么怎么判断呢?很好办,我们再前面会判断两个格子是否联通,如果不连通我们将把这个墙拆开。再拆的时候把这个墙的时候记录这两点拆墙可走即可(数组)

    另外,事件的监听上下左右查一查就可以得到,添加按钮对一些事件监听,这些不是最主要的。

    为了丰富游戏可玩性,将方法封装,可以设置关卡(只需改变迷宫大小)。这样就可以实现通关了。另外,如果写成动态存库那就更好了。
    在这里插入图片描述

    结语

    在线尝试地址,代码直接查看网页源代码即可!

    笔者前端能力和算法能力有限,写的可能不是特别好,还请见谅!当然,笔者欢迎和一起热爱学习的人共同进步、学习!欢迎关注笔者公众号:bigsai,后台回复java、数据结构、爬虫、springboot等有精心准备资料一份。如果感觉不错,欢迎关注、点赞!蟹蟹!

    在这里插入图片描述

    展开全文
  • 简介 截止我写这篇文章的时候,程序应该是还没有能够直接分享到朋友圈的api,...那么既然程序没有分享到朋友圈的api,我们怎么实现分享到朋友圈呢,下面我介绍一下实现思路。 既然没有捷径,那就走复杂一点的...
  • 可以自己编写出抽奖程序功能代码,也可以找程序制作公制作程序抽奖功能。抽奖程序功能的展示类型有哪些? 1、大转盘 大转盘是比较常见的抽奖玩法,即将奖品按比例放置在圆盘分栏,用户点击按钮随机抽奖,抽到...
  • 2020,是时候介绍一下自己

    千次阅读 多人点赞 2020-01-12 23:17:20
    我觉得是时候和大家碰个面,介绍一下和总结一下自己吧,也算是给这个时间刻下一个标记吧。我觉得这个时间点是挺重要的! 还是很感谢各位的关注和认可,也很感激在这个过程中和我一起交流过,给过所有支持和认可的...
  • 零基础入门微信程序开发

    万次阅读 多人点赞 2018-07-03 02:45:07
    本课程是一个系列入门教程,目标是从 0 开始带领读者上手实战,课程以微信程序的核心概念作为主线,介绍配置文件、页面样式文件、JavaScript 的基本知识并以指南针为例对基本知识进行扩展,另外加上开发工具的安装...
  • 基于微信程序的培训机构系统 前言:该系统作为本科毕业设计,可能还有...写这篇博客只是为了帮助需要后台使用java语言来实现的朋友。 一、项目介绍 微信程序端: 程序端管理员实现对信息模块的管理,包含课程...
  • 这篇博客介绍父子组件的传值
  • 给女朋友写一个微信程序

    千次阅读 热门讨论 2021-04-22 08:59:37
    一、背景 女朋友生日快来临,除了送口红,拍纪念照写真这些传统的礼物之外。...注:由于时间紧迫,在CSDN搜到的此类程序并不多,于是还是进行了自己的构思,毕竟是专属的程序,一定需要自己的想法
  • 微信程序-05-详解介绍.js 逻辑层文件 宝典官方文档: https://developers.weixin.qq.com/miniprogram/dev/framework/MINA.html 今天开始深度学习编程语法,虽然大部分是拷贝官方文档,代码类都是我自己敲的,...
  • 微信程序简称程序,张小龙在微信公开课 Pro 上发布的程序正式上线,时间是2017年1月9日。 微信程序这个词可以分解为“微信”和“程序”两部分。 其中“微信”可以理解为“微信中的”,指的是程序的执行...
  • 我认识的一些朋友,比如说 JavaGuide、江南一点雨、macrozheng,他们工作之余的时间大部分都花在做自媒体上了,要维护 GitHub,根本就没时间和精力考虑外包。 洛阳属于三线城市,有不少技术功底很不错、开发经验也...
  • 要说朋友圈最热的话题,数字化转型与低碳必须榜上有名。如何背靠东风,迈入下一站工业市场?\t如何抓住机遇,成为各工业大厂的“御用团队”!\t想抢占先机却遭遇“最后一公里”的难题,也让一众以领先数字化技术见长...
  • 1、首先,先在朋友圈中查看视频,也就是将视频通过文件助手发送到电脑上: 2、打开电脑上\WeChat Files\你的微信ID\Video文件夹,会发现有两个文件,一个视频文件和一个缩略图jpg文件,名字挺长的,把这两个...
  • 关键是觉得自己没什么好介绍的,除了一个名字之外,感觉就没有什么值得外人介绍的内容 在学校的时候,基本上大家的自我介绍都是平白无奇,大多数人只是说一下自己的名字,自然也就没人在乎自我介绍的内容,交朋友...
  • CSDN 的各位新博主们,交个朋友吧~

    万次阅读 多人点赞 2021-04-11 22:07:22
    如果你正在写文章,也想出现在这个小小的推荐博文上,可以在评论区写上自己的 ID,博客地址,擅长内容哦~ 没准下一期我们就成为朋友了呢。 推荐标准 博客文章数量不多,30 篇以内; 博客中不包含任何公众号,微信号...
  • 精选面试自我介绍

    万次阅读 多人点赞 2018-09-05 12:44:47
    面试自我介绍优秀范文 (一) 各位考官好,今天能够站在这里参加面试,有机会各位考官请教和学习,我感到非常的荣幸.希望通过这次面试能够把自己展示给大家,希望大家记住我.我叫....,今年..岁.汉族,法 学本科.我平时...
  • 此外,应广大朋友要求,我写了 一本学习python3学习书籍&lt;小白学Python3实战搭建量化投资平台&gt;. &lt;小白学Python3实战搭建量化投资平台&gt;内容提要 python3是2018年最热门的计算机语言,也将...
  • 阿里P6+面试:介绍下观察者模式?

    万次阅读 多人点赞 2021-06-03 00:03:19
    // 输出结果:FriendOne 知道了你发动态了第二个朋友圈消息 } } 最后就是看测试结果了,通过ConcreteSubject 维护了一个订阅关系,在通过notifyObservers 方法通知订阅者之后,观察者都获取到消息从而处理自己的...
  • 本系列文章另辟蹊径,借助于将 FinClip 程序 SDK 集成到移动应用中的方式进行实践,即使是初学开发的读者朋友,也可以在自己的移动应用中从零到一嵌入一个自己编写的程序。 本系列文章描述的内容简单易懂,可以...
  • 教女朋友学会用win10+yolov3+python训练自己的模型

    万次阅读 多人点赞 2020-03-23 22:17:44
    因为我之前把所有内容写在一篇文章里非常的乱,所以本文主线是训练自己的 yolo.h5 去识别图像中的人,所有细节的操作,我都在文中添加了链接,新手的话需要注意看一下。 // 有任何的问题都可以直接评论,还有资料...
  • Android新特性介绍,ConstraintLayout完全解析

    万次阅读 多人点赞 2017-02-03 09:14:39
    这些功能都非常简单,我就不再进行详细介绍,大家自己点一点就会操作了。 需要我们重点掌握的是Properties区域的上半部分,这部分也被称为Inspector。 首先可以看到,在Inspector中有一个纵向的轴和一个...
  • 软件测试面试中项目介绍宝典

    千次阅读 多人点赞 2021-11-08 20:55:43
    面对“面试造飞机,...0、项目名称、周期: 项目开展了多久,在简历中描述,自己也要记住 1、项目的类型:这是一个什么类型的软件(b/s,c/s,web网站、app) 2、项目的作用:用来干什么的?提供了什么便利等 3、项
  • 辅导了近1400名大学生的自我介绍,发现应届生朋友们都有一个无法避免的问题,因为经历、技巧和模板都差不多,所以面试的时候特别容易雷同,尤其是群面,就不容易出圈。 就会面临这种情况——辛辛苦苦准备了那么久,...
  • 黑苹果小兵clover目录及驱动介绍

    万次阅读 2020-02-09 12:35:25
    其他朋友请根据自己CPU型号选择,注意,机型选择很重要,务必请认真。 选好机型后如下图所示: 如上图中所示: 请随意用鼠标点击几下红色圈所勾选按钮。 作用是随机生成新的电脑序列号和SMUUID。 点击左侧...
  • 17年最火的游戏脚本,想试着做的可以自己动手试试了!
  • 经过多次重大更新,微信始终没有开放程序直接分享到朋友圈的相关api。 曲线救国 我们直接开门见山,用间接的方式来实现微信程序分享到朋友圈 这里先来罗列一下实现思路 通过微信api申请程序二维码 获取...
  • 零基础入门微信程序开发 (2020 版)

    万次阅读 多人点赞 2020-02-19 23:30:02
    涵盖开发全周期,助你尽快完成自己程序: 麻雀虽小,五脏俱全。专栏通过 9 篇文章覆盖从开发账号注册、开发工具安装、程序开发,到发布的全过程。 基于最新环境,让你不走弯路 程序作为新兴技术,无论是开发...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 277,502
精华内容 111,000
关键字:

如何向小朋友介绍自己

友情链接: pinctrl-xway.rar