1. 程式人生 > >微信小程式入門(1):簡單介面的實現

微信小程式入門(1):簡單介面的實現

原始碼我已經放在GitHub上了https://github.com/A666AHL/pupil

1.安裝 微信web開發者工具

不多BB,直接從安裝IDE開始

首先,你得進入微信公眾平臺官網(https://mp.weixin.qq.com)

點選底部的小程式檢視詳情

然後選擇開發者工具

在這裡插入圖片描述

在這裡插入圖片描述

根據你的作業系統選擇不同的版本進行下載安裝

2. 獲取AppID

你註冊好微信小程式後選擇登入,之後進入到這個介面

在這裡插入圖片描述

然後選擇在這裡插入圖片描述

在這裡插入圖片描述

這個東東還是比較重要滴

3.編寫簡單介面

在這裡插入圖片描述

注意我這quickstart(建立XXX快速啟動模板)是一個都勾選的。個人覺得這樣比較好,因為對於我這個小白來說,它為我建立的一些檔案是看不動滴(無奈),一個一個琢磨太糾結了。所以我索性沒選,這個看你本人的需求了

在這裡插入圖片描述

這就是全部檔案了,首先呢?project.config.json這個檔案是它本身就帶的一個配置檔案,就是一些關於你這個專案的一些資訊,例如建立這個檔案所用的AppID,這個專案的名字之類的東東,所以在我的GitHub上就沒有上傳這個檔案。

好了,開始擼程式碼了

  • app.js

    App({
      onLaunch: function () {
        //小程式初始化完成只執行一次
        //呼叫API從本地快取中獲取資料
        var logs = wx.getStorageSync('logs') || []
        logs.unshift(Date.now())
        wx.
    setStorageSync('logs', logs)//setStorageSync個人理解是將開始本地資料logs換成了logs }, onShow: function () { //啟動小程式或者從後臺進入前臺 }, onHide: function () { //從前臺進入後臺 }, getUserInfo: function (cb) { var that = this if (this.globalData.userInfo) { typeof cb == "function" && cb(this.globalData.
    userInfo) } else { //呼叫登入介面 wx.login({ success: function () { wx.getUserInfo({ success: function (res) { that.globalData.userInfo = res.userInfo, typeof cb == "function" && cb(that.globalData.userInfo) } }) } }) } }, globalData: { //全域性資訊 userInfo: null } })

這些其實呢?說重要也還行吧!這些一般IDE都幫你碼好了,不過我還是動手敲了一遍,大概意思明白,留下印象對自己還是有好處滴。這部分程式碼就不細講了,怕帶偏你們,全靠自己細細琢磨了。

App()函式用來註冊一個小程式。接受一個Object引數,其指定小程式的生命週期回撥等。

App()必須在app.js中呼叫,必須呼叫且只能呼叫一次。不然會出現無法預期的後果

這兩句原話還是比較有用的

  • app.json

    {
      "pages":[
        "pages/index/index"
      ],
      "window":{
        "navigationBarTextStyle": "white",
        "navigationBarBackgroundColor": "#6699ff",
        "navigationBarTitleText": "explore幣乎",
        "backgroundTextStyle":"light"
      },
      "networkTimeout": {
        "request": 30000
      }
    }
    

這個配置檔案是不允許寫註釋的,寫的話好像有點麻煩,這就不演示了。首先需要在pages寫上你要寫的介面的路徑,這裡面的內容可以等你建完pages相關介面來寫了,windows寫的一些關於手機導航的樣式,追究細節的話可以去看官方文件。最後的networkTimeout,從英文字面可以看出關於網路請求時間超時的東東,沒錯,就那意思。

  • app.wxss

    這裡可以寫就是有關整個小程式的頁面的樣式,當然可以具體到每個頁面的wxss檔案裡去寫,而且具體頁面的wxss檔案級別要高於app.wxss檔案了,就類似於app.wxss是父級,而具體到每個頁面的wxss檔案相當於是子級,而我這個app.wxss檔案啥也沒有

  • <view class="weui-search-bar">
      <view class="weui-search-bar_form">
        <view class="weui-search-bar_box">
          <icon class="weui-icon-search_in-box" type="search" size="14"></icon>
          <input type="text" class="weui-search-bar_input" placeholder="{{searchtextbegin}}" bindinput="inputSearch" value='{{searchtext}}'/>
          <!--試著把clear圖示變成按鈕實現清除效果-->
          <button class="search-btn" wx:if="{{showsearch}}" bindtap="clearbtn">搜尋</button>
          <icon class="weui-icon-clear_in-box" type="clear" size="14" wx:if="{{showsearch}}"></icon>
        </view>
      </view>
    </view>
    <view class="weui-slide-picture">
      <swiper class="index-banner" indicator-dots="{{true}}" autoplay="{{true}}" interval="{{4000}}" duration="{{1000}}" circular="true">
        <block wx:for="{{imgUrls}}" wx:key="*this">
          <swiper-item>
            <image class="slide-image" src="{{item}}" mode="widthFix"/>
          </swiper-item>
        </block>
      </swiper>
    </view>
    <view class="article-list">
      <navigator class="article-item">
        <view class="article-img">
          <image src="../../images/1.png" mode="aspectFill"></image>
        </view>
        <view class="article-text">
          <view class="article-title">
            <text>【2018年第37周EOS資訊週報】\t一週重要資訊均在於此\t|From:EOS Cannon|</text>
          </view>
          <view class="article-abstract">
            <text>1\tEOS賬戶建立成本現在已經降低25%。21個出塊節點中有超過15個同意並實施了Block</text>
          </view>
        </view>
      </navigator>
       <navigator class="article-item">
        <view class="article-img">
          <image src="../../images/2.png" mode="aspectFill"></image>
        </view>
         <view class="article-text">
          <view class="article-title">
            <text>幣走遠:9.17行情展望|From:幣走遠|</text>
          </view>
          <view class="article-abstract">
            <text>首先提醒大家不要去玩期貨,炒幣加槓桿只是放大了出錯的機率,珍愛錢錢原離尷尬。據cryptoglobe訊息,近日Trybe</text>
          </view>
        </view>
      </navigator>
       <navigator class="article-item">
        <view class="article-img">
          <image src="../../images/3.png" mode="aspectFill"></image>
        </view>
         <view class="article-text">
          <view class="article-title">
            <text>幣圈資訊觀察員用資料說話20180917|From:幣圈觀察|</text>
          </view>
          <view class="article-abstract">
            <text>市值前20種資料變化詳情(資料取自非小號早上10點):上面資料紅(^V^)漲,綠(T-T)跌...</text>
          </view>
        </view>
      </navigator>
       <navigator class="article-item">
        <view class="article-img">
          <image src="../../images/4.png" mode="aspectFill"></image>
        </view>
         <view class="article-text">
          <view class="article-title">
            <text>辛巴威新任財政部長:加密貨幣可以解決辛巴威的現金短缺問題|From:幣圈訊息小達人|</text>
          </view>
          <view class="article-abstract">
            <text>據CCN訊息, 根據辛巴威新任財政部長Mthuli Ncube的說法,加密貨幣可以幫助南部非洲國家解決</text>
          </view>
        </view>
      </navigator>
       <navigator class="article-item">
        <view class="article-img">
          <image src="../../images/5.png" mode="aspectFill"></image>
        </view>
        <view class="article-text">
          <view class="article-title">
            <text>網際網路思維與區塊鏈思維|From:哪吒|</text>
          </view>
          <view class="article-abstract">
            <text>上週,聽一位資深的網際網路圈內人士在講近些年網際網路大企業的發展和變遷。他特意跟我們強調了一個概念,網際網路不是一個行業,不是</text>
          </view>
        </view>
      </navigator>
       <navigator class="article-item">
        <view class="article-img">
          <image src="../../images/6.png" mode="aspectFill"></image>
        </view>
        <view class="article-text">
          <view class="article-title">
            <text>區塊鏈是否代表網際網路的未來?|From:魚頑主|</text>
          </view>
          <view class="article-abstract">
            <text>過去這幾年,隨著網際網路的成長,它變成了某些社會問題的替罪羊。今天的網路確實有很多問題,有虛假資訊...</text>
          </view>
        </view>
      </navigator>
    </view>
    

這些跟HTML應該差不多了,唯一新的wx:if和wx:for,其實理解成if和for的意思也差不多了,如果說有些程式碼有問題可以直接百度,這些程式碼應該比較常見啦~

  • index.wxss

    .weui-search-bar{
      position:relative;
      padding:8px 10px;
      display:-webkit-box;
      display:-webkit-flex;
      display:flex;
      box-sizing:border-box;
      background-color:#efeff4;
      border-top:1rpx solid #d7d6dc;
      border-bottom:1rpx soid #d7d6dc;
    }
    .weui-icon-search_in-box{
      position: absolute;
      left:10px;
      top:7px;
    }
    .weui-icon-clear_in-box{
      position: absolute;
      right: 2px;
      top:7px;
    }
    .weui-search-bar_form{
      position:relative;
      -webkit-box-flex:1;
      -webkit-flex:auto;
      flex:auto;
      border-radius:5px;
      background: #fff;
      border:1rpx solid #e6e6ea;
    }
    .weui-search-bar_box{
      position: relative;
      padding-left:30px;
      padding-right:30px;
      width:100%;
      box-sizing: border-box;
      z-index:1;
    }
    .weui-search-bar_input{
      height: 28px;
      line-height: 28px;
      font-size: 14px;
    }
    .search-btn::after{
      border: none;
      background-color:#fff; 
    }
    .search-btn{
      position: absolute;
      right:6px;
      top:2px;
      height: 24px;
      width: 58px;
      line-height: 24px;
      font-size: 14px;
      color:#777; 
    }
    .slide-image{
      width: 100%;
    }
    .article-item{
      display: flex;
      padding: 20rpx 0;
      border-bottom: 2rpx solid #e8e8e8;
    }
    .article-img{
      margin-left: 5px;
      width: 235rpx;
      height: 150rpx;
    }
    .article-img image{
      width:235rpx;
      height:150rpx;
    }
    .article-text{
      flex: 1;
      margin-left:20rpx;
      width:100%;
    }
    .article-title{
      font-size: 30rpx;
       margin-right:12rpx; 
      font-family: "Times New Roman";
    }
    .article-abstract{
      margin-top:20rpx; 
      margin-right:16rpx; 
      font-size:20rpx; 
      color: #777;
      font-family: "Times New Roman";
    }
    

    這些類似於css檔案的格式

  • index.json

    這個檔案我就加了倆花括號

  • index.js

    Page({
      data:{
        searchtextbegin:"區塊鏈是否代表網際網路的未來?",
        searchtext:'',
        imgUrls:[
          "../../images/1.png",
          "../../images/2.png",
          "../../images/3.png",
          "../../images/4.png",
          "../../images/5.png",
          "../../images/6.png"
        ],
        showsearch: false
      },
      inputSearch: function (e) {  //輸入搜尋文字,e為輸入的詳細資料
        this.setData({
          showsearch: e.detail.cursor > 0,
          searchtext: e.detail.value
        })
      },
      clearbtn:function(e){
        this.setData({
          showsearch: e.detail.cursor > 0,
          searchtext:''
        })
      }
    })
    
    

    我覺得關鍵是先設定showsearch不可見,通過inputSearch事件改動showsearch的值使btn可見

    還有我程式碼有一個部分有點小坑~

    以上是我現階段學習全部的分享啦~

    ![Screenshot_2018-09-25-20-57-05-774_com.tencent.mm](F:\TIM資料\2564337870\FileRecv\MobileFile

    附上一截圖
    具體資料來自於幣乎