zoukankan      html  css  js  c++  java
  • 小程序初接触

    1.获取微信小程序的AppID

    登录 https://mp.weixin.qq.com ,可以在网站的 “设置”-“开发者设置”中,查看微信小程序的AppID了,注意不可直接使用服务号或者订阅号的AppID

    2.创建项目

    我们需要通过开发者工具,来完成小程序的创建和代码编辑

    开发者工具安装完成后,打开并使用微信扫码登录。选择创建“项目”,填入上文获取到的 AppID ,设置一个本地项目的名称(非小程序名称),比如“我的第一个项目”,并选择一个本地的文件夹作为代码存储的目录,点击“新建项目”就可以了。

    为方便初学者了解微信小程序的基本代码结构,在创建过程中,如果选择的本地文件夹是个空文件夹,开发者工具会提示,是否需要创建一个 quick start 项目。选择“是”,开发者工具会帮助我们在开发目录里生成一个简单的 demo。

    项目创建成功后,我们就可以点击该项目,进入并看到完整的开发者工具界面,点击左侧导航,在“编辑”里可以查看和编辑我们的代码,在“调试”里可以测试代码并模拟小程序在微信客户端效果,在“项目”里可以发送到手机里预览实际效果。(项目里面。预览就可以在手机上查看了)

    3.编写代码

    创建小程序实例

    点击开发者工具左侧导航栏的“编辑”,我们可以看到项目包含的文件。app.js,app.json,app.wxss是必不可少的。其中.js后缀是脚本文件,.json后缀文件是配置文件,.wxss后缀是样式表文件,微信小程序会读取这些文件生成小程序实列

     app.js是小程序的脚本代码,我们可以在这个文件中监听并处理小程序的生命周期、生命全局变量。调用框架丰富的API,如本例的同步存储同步读取本地数据。更多可参考 API 文档

    //app.js
    App({
      onLaunch(){
        //展示本地存储的能力
        const logs = wx.getStorageSync('logs') || []
        log.unshift(Date.now())
        wx.setStorageSync('logs',logs)
        //登录
        wx.login({
          success:res()=>{
            
    // 发送 res.code 到后台换取 openId, sessionKey, unionId
          }
        })
        //获取用户信息
        wx.getSetting({
          success:res=>{
            if(res.authSetting['scope.userInfo']){
              
    // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
                wx.getUserInfo({
                  success:res=>{
                    //可以将res发送给后台解码出unionId
                    this.globalData.userInfo=res.userInfo
                  }
                })
            }
          }
        })
      },
      globalData:{
        userInfo:null
      }
    })

    app.json 是对整个小程序的全局配置。我们可以在这个文件中配置小程序是由哪些页面组成,配置小程序的窗口背景色,配置导航条样式,配置默认标题。注意该文件不可添加任何注释。更多可配置项可参考配置详解

    {
      "pages":[
        "pages/index/index",
        "pages/logs/logs"
      ],
      "window":{
        "backgroundTextStyle":"light",
        "navigationBarBackgroundColor": "#fff",
        "navigationBarTitleText": "WeChat",
        "navigationBarTextStyle":"black"
      }
    }

    app.wxss是整个小程序的公共样式表。我们可以在页面组件的class属性上直接使用app.wxss中声明的样式规则。

    /**app.wxss**/
    .container {
      height: 100%;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: space-between;
      padding: 200rpx 0;
      box-sizing: border-box;
    }

    创建页面

    默认生成的有两个页面,index页面和logs页面,即欢迎页和小程序启动日志的展示页,他们在pages中,

     且pages中的第一个页面是小程序的首页。

    每个小程序页面有路径下4个不同的后缀文件组成,如:index.js、index.wxml、index.wxss、index.json。.js后缀的文件是脚本文件,.json后缀的文件是配置文件,.wxss后缀的是样式表文件,.wxml后缀的文件是页面结构文件。

    index.wxml是页面的结构文件

    <!--index.wxml-->
    <view class="container">
      <view class="userinfo">
        <block wx:if="{{hasUserInfo}}">
          <image bindtap="bindViewTap" class="userinfo-avatar" src="{{userInfo.avatarUrl}}"
          background-size="cover"></image>
          <text class="userinfo-nickname">{{userInfo.nickName}}</text>
        </block>
        <button wx:else open-type="getUserInfo" bindgetuserinfo="getUserInfo">获取头像昵称</button>
      </view>
      <view class="usermotto">
        <text class="user-motto">{{motto}}</text>
      </view>
    </view>

    本例中使用了<view/> <image/> <text/>来搭建页面结构,绑定数据和交互处理函数。

    index.js是页面的脚本文件,在这个文件中我们可以监听并处理页面的生命周期函数、获取小程序的实例,生命处理数据响应页面交互事件等。

    //index.js
    //获取应用实例
    const app = getApp()
    
    Page({
      data: {
        motto: 'Hello World',
        userInfo: {},
        hasUserInfo: false
      },
      //事件处理函数
      bindViewTap: function() {
        wx.navigateTo({
          url: '../logs/logs'
        })
      },
      onLoad: function () {
        if (app.globalData.userInfo) {
          this.setData({
            userInfo: app.globalData.userInfo,
            hasUserInfo: true
          })
        } else {
          // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
          // 所以此处加入 callback 以防止这种情况
          app.userInfoReadyCallback = res => {
            this.setData({
              userInfo: res.userInfo,
              hasUserInfo: true
            })
          }
        }
      },
      getUserInfo: function(e) {
        this.setData({
          userInfo: e.detail.userInfo,
          hasUserInfo: true
        })
      }
    })

    index.wxss页面的样式表

    /**index.wxss**/
    .userinfo {
      display: flex;
      flex-direction: column;
      align-items: center;
    }
    
    .userinfo-avatar {
       128rpx;
      height: 128rpx;
      margin: 20rpx;
      border-radius: 50%;
    }
    
    .userinfo-nickname {
      color: #aaa;
    }
    
    .usermotto {
      margin-top: 200px;
    }

    index.json 是页面的配置文件:

    页面的配置文件是非必要的。当有页面的配置文件时,配置项在该页面会覆盖 app.json 的 window 中相同的配置项。

    如果没有指定的页面配置文件,则在该页面直接使用 app.json 中的默认配置。

     

        

    参考地址:https://mp.weixin.qq.com/debug/wxadoc/dev/

    日常所遇,随手而记。
  • 相关阅读:
    C#之设计模式
    C#之索引器
    C#基础强化-继承与多态
    C#基础强化-进程操作
    WKWebView与JavaScript交互基础
    HTML之JS学习
    HTML之CSS学习
    HTML学习
    玩诈欺的小杉
    最大异或和
  • 原文地址:https://www.cnblogs.com/zhihou/p/7778057.html
Copyright © 2011-2022 走看看