<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      小程序基礎

       

      一、準備

      1. 開發小程序的第一步,你需要擁有一個小程序帳號,通過這個帳號你就可以管理你的小程序。
      2. 小程序的 AppID 相當于小程序平臺的一個身份證。
      3. 開發工具的使用 
        • 界面:模擬器(iphone6標準)、編輯器、調試器;
        • 編譯:普通編譯、添加編譯模式(調試某個頁面)、
        • 詳情(選擇開發版本、是否驗證合法域名)

      二、代碼構成

      最簡單的小程序

          ├── app.js
          ├── app.json
          ├── app.wxss
          ├── pages
          │   │── index
          │   │   ├── index.wxml
          │   │   ├── index.js
          │   │   ├── index.json
          │   │   └── index.wxss
          │   └── logs
          │       ├── logs.wxml
          │       └── logs.js
          └── utils
         |__project.config.json

       

       

      1、JSON 配置

       

       

      1.1小程序配置 app.json

       

        用來對微信小程序進行全局配置
        小程序配置 https://developers.weixin.qq.com/miniprogram/dev/framework/config.html

      {
       // pages 小程序所以頁面路徑列表
       // window 全局的默認窗口表現
       // tabBar 底部 tab 欄的表現
        "pages": [
          "pages/welcome/welcome",
          "pages/posts/post",
          "pages/movies/movies",
          "pages/movies/movie-detail/movie-detail",
          "pages/posts/post-detail/post-detail",
          "pages/movies/more-movie/more-movie"
        ],
        "window": {
          "navigationBarBackgroundColor": "#405f80"
        },
        "tabBar": {
          "borderStyle": "white",
          "position":"bottom",
          "list": [
            {
              "pagePath": "pages/posts/post",
              "text": "閱讀",
              "iconPath": "images/tab/yuedu.png",
              "selectedIconPath": "images/tab/yuedu_hl.png"
            },
            {
              "pagePath": "pages/movies/movies",
              "text": "電影",
              "iconPath": "images/tab/dianying.png",
              "selectedIconPath": "images/tab/dianying_hl.png"
            }
          ]
        }
      }

       

       

      1.2 工具配置 project.config.json

        小程序開發者工具個性化配置
        開發者工具的配置 https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html

      1.3 頁面配置 page.json

        頁面的配置只能設置 app.json 中部分 window 配置項的內容,頁面中配置項會覆蓋 app.json 的 window 中相同的配置項。
        頁面配置 https://developers.weixin.qq.com/miniprogram/dev/framework/config.html#%E9%A1%B5%E9%9D%A2%E9%85%8D%E7%BD%AE

       

      2.WXML

        框架設計的一套標簽語言,結合基礎組件、事件系統,可以構建出頁面的結構。

      數據綁定

      <view> {{message}} </view>

       

      列表渲染 

      <view wx:for="{{array}}"> {{item}} </view>

       

      條件渲染

      <view wx:if="{{view == 'WEBVIEW'}}"> WEBVIEW </view>
      <view wx:elif="{{view == 'APP'}}"> APP </view>
      <view wx:else="{{view == 'MINA'}}"> MINA </view>

       

      模板

      <template name="staffName">
      <view>
          FirstName: {{firstName}}, LastName: {{lastName}}
      </view>
      </template>

       

      事件

      <view bindtap="add"> {{count}} </view>

       

       

       

      在JS文件中聲明數據和事件

      Page({
          data: {
              message: 'Hello MINA!',
              array: [1, 2, 3, 4, 5],
              view: 'MINA',
              staffA: {firstName: 'Hulk', lastName: 'Hu'},
              staffB: {firstName: 'Shang', lastName: 'You'},
              staffC: {firstName: 'Gideon', lastName: 'Lin'}
          },
          add: function(e) {
              this.setData({
                      count: this.data.count + 1
              })
          }
      })

       

      3.WXSS

        一套樣式語言,用于描述 WXML 的組件樣式。具有 CSS 大部分特性,對 CSS 進行了擴充以及修改。
        app.wxss 中的樣式為全局樣式,被在 page 的 wxss 文件覆蓋。

       

      尺寸單位

        rpx(responsive pixel): 可以根據屏幕寬度進行自適應。規定屏幕寬為750rpx。
        iPhone6 1rpx = 0.5px
        iPhone6 作為視覺稿的標準。

      樣式導入

        @import語句可以導入外聯樣式表,@import后跟需要導入的外聯樣式表的相對路徑,用;表示語句結束。(.wxss)

      內聯樣式

        style:靜態的樣式統一寫到 class 中。style 接收動態的樣式,在運行時會進行解析,請盡量避免將靜態的樣式寫進 style 中,以免影響渲染速度。

      <view style="color:{{color}};" />
      <view class="normal_view" />

       

      支持部分CSS選擇器

      .class
      #id
      element
      element, element
      ::after
      ::before

       

       

      4.JS

       

      WXML - 事件 

        1.在組件中綁定一個事件處理函數。
        2.在相應的Page定義中寫上相應的事件處理函數,參數是event。
      <view id="tapTest" data-hi="WeChat" bindtap="tapName"> Click me! </view>
      Page({ tapName: function(event) { console.log(event) } })
        3.冒泡事件和非冒泡事件
        4.冒泡事件列表
      touchstart
      touchmove
      touchend
      tap
      ...

       

      除上表之外的其他組件自定義事件如無特殊聲明都是非冒泡事件

        5.事件綁定和冒泡
      • key 以bind或catch開頭
      • value 是一個字符串,對應 Page 中定義同名的函數。
      • bind事件綁定不會阻止冒泡事件向上冒泡,catch事件綁定可以阻止冒泡事件向上冒泡。
      • 事件對象
      • target 觸發事件的源組件。
      • currentTarget 事件綁定的當前組件。
      • dataset
      • 組件定義數據,以data-開頭,多個單詞由連字符-鏈接,event.currentTarget.dataset 中會將連字符轉成駝峰elementType。
        •   
          <view data-alpha-beta="1" data-alphaBeta="2" bindtap="bindViewTap"> DataSet Test </view>

           

      小程序的API(類型)

      事件監聽 API

        以 on 開頭
        接受一個回調函數作為參數

      wx.onCompassChange(function (res) {
          console.log(res.direction)
      })

       

      同步 API

        以 Sync 結尾
        執行結果可以通過函數返回值直接獲取

      try {
          wx.setStorageSync('key', 'value')
      } catch (e) {
          console.error(e)
      }

       

      異步 API

        大多數 API 都是異步 API
        都接受一個 Object 類型的參數

      wx.login({
          success(res) {
               console.log(res.code)
          },
          failFn,
          completeFn,
           Any
      })

       

      三、主要能力

       

      小程序的啟動

      1、小程序的代碼包下載到本地。

      2、app.json 的 pages 字段就可以知道你當前小程序的所有頁面路徑,寫在 pages 字段的第一個頁面就是這個小程序的首頁

      3、app.js 定義的 App 實例的 onLaunch 回調會被執行

      App()

        App() 函數用來注冊一個小程序。接受一個 Object 參數,其指定小程序的生命周期回調等。

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

      • onLaunch Function 生命周期回調—監聽小程序初始化 小程序初始化完成時(全局只觸發一次)
      • onShow Function 生命周期回調—監聽小程序顯示 小程序啟動,或從后臺進入前臺顯示時
      • onHide Function 生命周期回調—監聽小程序隱藏 小程序從前臺進入后臺時
      • onError Function 錯誤監聽函數 小程序發生腳本錯誤,或者 api 調用失敗時觸發,會帶上錯誤信息
      • onPageNotFound Function 頁面不存在監聽函數 小程序要打開的頁面不存在時觸發,會帶上頁面信息回調該函數
      App({
        onLaunch: function(options) {
          // Do something initial when launch.
        },
        onShow: function(options) {
          // Do something when show.
        },
        onHide: function() {
          // Do something when hide.
        },
        onError: function(msg) {
          console.log(msg)
        },
        globalData: 'I am global data'
      })

       

      全局的 getApp() 函數可以用來獲取到小程序 App 實例。

       

       

      程序與頁面

      1、logs.json 配置生成一個界面

      2、裝載這個頁面的 WXML 結構和 WXSS 樣式

      3、最后裝載 logs.js

      Page()

        Page 是一個頁面構造器,注冊一個頁面。接受一個 Object 類型參數,其指定頁面的初始數據、生命周期回調、事件處理函數等。

      data:

        data Object 頁面的初始數據,必須是可以轉成JSON的類型

      生命周期回調函數:
      • onLoad Function 生命周期回調—監聽頁面加載
      • onShow Function 生命周期回調—監聽頁面顯示
      • onReady Function 生命周期回調—監聽頁面初次渲染完成
      • onHide Function 生命周期回調—監聽頁面隱藏
      • onUnload Function 生命周期回調—監聽頁面卸載
      面頁事件處理函數:
      • onPullDownRefresh Function 監聽用戶下拉動作
      • onReachBottom Function 頁面上拉觸底事件的處理函數
      • onShareAppMessage Function 用戶點擊右上角轉發
      • onPageScroll Function 頁面滾動觸發事件的處理函數
      • onResize Function 頁面尺寸改變時觸發,詳見 響應顯示區域變化
      • onTabItemTap Function 當前是 tab 頁時,點擊 tab 時觸發
      組件事件處理函數

        在渲染層的組件中加入事件綁定,當事件被觸發時,就會執行 Page 中定義的事件處理函數。

      setData()

        直接修改 this.data 而不調用 this.setData 是無法改變頁面的狀態的,還會造成數據不一致。

      生命周期

       

      組件

      視圖容器

      view 視圖容器
      scroll-view 可滾動視圖容器
      swiper 滑塊視圖容器

      基礎內容

      icon 圖標
      text 文字

      導航

      navigator 頁面鏈接

      表單
      多媒體(Media)
      特殊

      block 提供控制邏輯

       

      API

      小程序常用API接口

      網絡請求
      wx.request https
      wx.request({
          url: ‘test.php‘, //僅為示例,并非真實的接口地址
          method:"GET",
          data: {
              x: ‘‘ ,
              y: ‘‘
          },
          header: {
              ‘content-type‘: ‘application/json‘ },
              success: function(res) {
              console.log(res.data)
          }
      })

       

       

      本地緩存
      通過key的形式添加緩存setStorage (異步接口)
      wx.setStorage({
          key:"key"
          data:"value"
      })

       

      通過key的形式獲取緩存getStorage (異步接口)
      wx.getStorage({
          key: ‘key‘,
          success: function(res) {
          console.log(res.data) }
      })

       

      從本地緩存中異步移除指定 key
      wx.removeStorage({
          key: ‘key‘,
          success: function(res) {
          console.log(res.data)
          }
      })

       

      清理本地數據緩存
      wx.clearStorage()

       

      顯示、隱藏消息提示框
      wx.showToast({
          title: ‘加載中‘,
          icon: ‘loading‘,
          duration: 10000 })
          setTimeout(function(){
          wx.hideToast()
      },2000)

       

      動態設置當前頁面的標題
      wx.setNavigationBarTitle({
          title: ‘當前頁面‘
      })

       

      導航
      保留當前頁面,跳轉到應用內的某個頁面
      wx.navigateTo({
          url: ‘test?id=1‘
      })

       

      關閉當前頁面,跳轉到應用內的某個頁面
      wx.redirectTo({
          url: ‘test?id=1‘
      })

       

      獲取用戶信息,需要先調用wx.login 接口
      wx.getUserInfo({
          success: function(res) {
          var userInfo = res.userInfo
          var nickName = userInfo.nickName
          var avatarUrl = userInfo.avatarUrl
          var gender = userInfo.gender //性別 0:未知、1:男、2:女
          var province = userInfo.province
          var city = userInfo.city
          var country = userInfo.country
          }
      })

       

      獲取系統信息(異步接口)
      wx.getSystemInfo({
          success: function(res) {
              console.log(res.model)
              console.log(res.pixelRatio)
              console.log(res.windowWidth)
              console.log(res.windowHeight)
              console.log(res.language)
             console.log(res.version)
          }
      })

       

      撥打電話
      wx.makePhoneCall({
          phoneNumber: ‘1340000‘ //僅為示例,并非真實的電話號碼
      })
      獲取當前的地理位置、速度
      wx.getLocation({
          type: ‘wgs84‘,
          success: function(res) {
          var latitude = res.latitude
          var longitude = res.longitude
          var speed = res.speed
          var accuracy = res.accuracy
          }
      })

      重要的 var that=this

      原來我們忘記了javascript 語言中 this關鍵字的用法了。在javascript語言中,this代表著當前的對象,它在程序中隨著執行的上下文隨時會變化。在本例中回調函數對象相對于showactionsheet點擊事件函數對象已經發生了變化。所以已經不是原來的頁面對象了。自然就沒有了data屬性,也沒有了data.itemLists屬性了。解決的辦法就是復制一份當前的對象。所以我們有了這個重要的語句:

      var that=this;//把this對象復制到臨時變量that.

      這時候我們使用that 就不會找不到原來的對象了。

      console.log(that.data.itemLists[res.tapIndex]);//使用that.data 屬性

       

      四、發布前準備和上線

      • 團隊身份管理
      • 預覽
      • 上傳
      • 版本
      • 提交審核
      • 發布
      • 運營數據

       

      posted @ 2018-11-20 15:32  bulvbuting1  閱讀(184)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产精品久久久久无码网站| 永久免费无码网站在线观看| 亚洲中文无码手机永久| 国产午夜福利一区二区三区| 久久国内精品自在自线91| 日韩精品中文字幕有码| 欧美videos粗暴| 亚洲 卡通 欧美 制服 中文| 临漳县| 国产粉嫩区一区二区三区| 亚洲午夜爱爱香蕉片| 婷婷亚洲综合五月天小说| 国产精品青青青高清在线| 国产精品免费中文字幕| 天天摸天天做天天爽水多| 久久精品久久黄色片看看| 性欧美VIDEOFREE高清大喷水| 精品久久久久久无码专区不卡| 亚洲精品综合网在线8050影院| 国产精品视频一品二区三| 亚洲鸥美日韩精品久久| 国产亚洲精品久久久久久久软件| 激情人妻自拍中文夜夜嗨| 亚洲精品无码成人aaa片| 成年女人黄小视频| 99久久国产成人免费网站| 国内少妇人妻丰满av| 亚洲熟女一区二区av| 国产综合有码无码中文字幕 | 精品免费看国产一区二区| 重庆市| 精品熟女日韩中文十区| 中文字幕无码免费久久| 奇米四色7777中文字幕| 国产中文99视频在线观看| 国产偷窥熟女高潮精品视频| 灵石县| 久久精品丝袜高跟鞋| 中文字幕亚洲无线码一区女同| 国产无人区码一区二区| 九九色这里只有精品国产|