微信小程序开发(随机课堂点名系统)

2022-11-20 13:11:10 浏览数 (1)

前言

随着移动端的不断发展,人们大部分的办公及生活应用都开始趋向于移动端。然而在2017年“微信之父”张小龙带领团队,开发了一款叫做微信小程序的东西,它的出现打破了人们认识移动端的隔膜,由以前的需要先下载app然后在开始工作的老式模式,逐渐的趋向于小程序app(无需下载)的形式。

一、微信小程序是什么?

微信小程序是一种不需要下载安装即可使用的应用,它实现了应用的随开随用,用户只需要用微信扫一扫或者通过微信搜一下即可打开应用,使用完即可关闭,还可以把小程序添加到桌面,真正的做到了便捷方便,用完就走。

第一个机会是更廉价的流量获取方式,目前主要的玩法有四种,像拼多多的拼团,云集的分销,薄荷阅读的裂变(也就是人拉人的模式),享物说的砍价,也许还有更创新的玩法,我们也在持续观察。

第二个机会是更下沉的渠道,覆盖了增量人群。微信覆盖10亿月活用户,已经成为一个覆盖不同层级用户的App Store,通过微信的传播,应用可以更容易触达下沉的人群,再通过微信群的运营,来养成他们的使用习惯。

2017开始,微信开始推小程序。最早一波微信的机会是公众号带来的,公众号带来了一批新内容,替代的是原来的老媒体。其实最早受益于小程序的是公众号,公众号+小程序电商成为一个很好的变现形式,很多公众号在接了小程序后实现了一波变现;之后小程序带来的才是工具、社区和游戏的机会。工具起量往往比较快,但在工具转社区,或者工具转电商里,似乎还没有看到特别跑出来的选手。

小程序吸引了太多目光,其实小程序的机会不等于微信的机会。小程序只是一种载体,单纯讨论小程序本身是没有意义的,比起已经进入成熟阶段的电商类小程序,新兴的小游戏或许会成为市场流量的一个新突破口,通过适当的运营手段将为市场带来更多影响。

1.自带推广

小程序自带的附近的小程序功能,帮助商家被五公里范围内的微信用户搜索到,解决当下商家广告无处可打的尴尬。店铺根据距离来排名,与品牌大小无关,也就是说,用户离你越近,你就排得越前。

2. 触手可及,用完即走

小程序是一种无需下载安装即可使用的应用,能以最低成本触达用户。随着小程序市场的打开,在未来两年内,80%的App都将会被取代,而且小程序还可以将图标生成到手机桌面,不占内存,不会在后台偷跑,入口很多,无处不在。

3. 搜索

微信开放小程序关键字搜索,提高了企业商家的被搜索到的机会。同时微信搜索页面还有小程序的快捷入口,为常用的小程序带来更多的曝光和开启机会。

4.小程序码

再小的店也有自己的品牌!一张小程序码可以让消费者看到你店里的详细经营情况和折扣优惠券,非常方便!小程序码长得也跟二维码不一样,在场景中推广打开率更高。

5. 成本更低

对于这两类人来说,小程序可以大大降低开发运营成本:

大众创业者:对于大众创业者而言,很多人的启动资金并不多,因此,小程序也成了许许多多互联网创业者的首选,毕竟开发一款App成本太高,运营维护以及推广成本更高。

零售商家:一般的线下零售商家,除了每年要交给平台固定的套餐费用之外,还需要被平台从流水里抽出几个点,一年下来被平台抽去的利润惊人。O2O平台已经走到了和淘宝天猫一样的十字路口,那就是通过流量绑架商户,每年吃掉商家大量的利润。

对于这两类人来说,从开发成本到运营推广成本,小程序的花费仅为APP的十分之一,无论是对创业者还是传统商家来说都是一大优势。

6.更流畅的使用体验

小程序的流畅度几乎可以媲美App了,在微信生态里,小程序在功能和体验上是可以秒杀掉H5页面的,H5页面经常出现卡顿、延时、加载慢、权限不足等原因,而这些问题在小程序里都不会出现。

小程序重在用户体验和线上线下的打通,逐渐的将微信公众号和H5的功能进行融合,进而补充其不足点,从根本上代替和秒杀。

7. 更多的曝光机会

程序自上线以来不断释放新能力,对于商家来说,这简直就是福音,他们可以通过更多的渠道来推广自己的小程序,进而实现店铺及商品的推广交易。

8. 使用即是用户

用户只要使用过小程序,就会成为小程序的用户,该小程序会自动进入用户的发现栏小程序列表中,小程序实现了用最低的成本,让产品出现在用户的微信中。

9. 在微信中打开率更高

同样的一个广告链接,在公众号图文中插入外链、阅读原文、文末广告和小程序广告位所获得的打开率完全不用,小程序和阅读原文的打开率差了20倍左右。

10. 公众号 小程序完美结合

朋友圈、公众号和小程序,分别对应着社交、内容和服务,这三者加起来正好是小程序目前最火爆的变现方案——社交电商。

公众号提供优质的内容为小程序进行导购,小程序负责展现商品交易及提供相关服务,这就是公众号 小程序模式。

先展示效果:

wxml:

代码语言:javascript复制
<!--pages/Second/Second.wxml-->
<view class="userinfo">  
    <view class="namel">   
      <text class="userinfo-avatar">{{Path}}</text>  
    </view> 
  <view class="name"bindtap='guess'>   
     <text class="gu">{{title}}</text>  
  </view>
  <image src="/images/3.png" style="  width: 100%;height: 100%;position:fixed; background-size:100% 100%;z-index: -1;"></image>
 </view>

wxss:

代码语言:javascript复制
/* pages/Second/Second.wxss */
   .userinfo{ 
       z-index: 1;
    flex-direction: column; 
    align-items: center; 
    display: flex; 
    }
   .namel{ 
       z-index: 1;
    margin-top: 0rpx;  
   }
   .userinfo-avatar{   
       z-index: 1;
       color: rgb(13, 56, 245);
    font-weight:620;   
    font-size: 170rpx;  
      }
   .name{ 
    margin-top: 500rpx; 
     border: 2rpx solid #405f80;
     width:400rpx; 
     height:100rpx;  
     border-radius:5rpx; 
     text-align:center;  
      }
   .gu{ 
    font-size: 90rpx;
    font-weight:620;              /*字体粗细*/ 
    line-height: 80rpx; 
    color: #405f80; 
      }

js:

代码语言:javascript复制
// pages/shouye/shouye.js
// var app = getApp()
var Paths = ['别害怕','张三','李四','王五','小二','小四'];   
var Index = 0; 
Page({

    /**
     * 页面的初始数据
     */
    data: {
        Path:Paths[0],  
        title:'开始',      
        isRunning:false,  
        userInfo:{},    
    },
      change:function(e){
        let Index =  Math.ceil(Math.random()*5)//运用random随机数自动随机生成index的下标
       this.setData( {   
            Path:Paths[Index]   
               }
               )  
           },  
        guess:function(e){   
         let isRunning = this.data.isRunning;  
         if(!isRunning){     
          this.setData( {        
            title:'停',      
             isRunning:true    
              } );    
           this.timer=setInterval((function(){
               this.change()    
              }).bind(this),50 ); 
            }   
            else{ this.setData(    
                {       
                   title:'开始',              //按钮上的字变为StART
                   isRunning:false   
                  } 
                  );     
            this.timer&&clearInterval(this.timer);    
           } 
          },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {

    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    }
})

其实逻辑很简单,就是用了一个随机数来选定数组中数据的下标!

0 人点赞