• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    我要點爆”微信小程序云開發之項目建立與我的頁面功能實現

    來源:懂視網 責編:小采 時間:2020-11-27 21:56:10
    文檔

    我要點爆”微信小程序云開發之項目建立與我的頁面功能實現

    我要點爆微信小程序云開發之項目建立與我的頁面功能實現:開發環境搭建 使用自己的AppID新建小程序項目,后端服務選擇小程序·云開發,點擊新建,完成項目新建。 新建成功后跳轉到開發者工具界面 新建后,微信端為我們提供了一個參考的模板程序,這里我們自己來創建各個所需的文件與代碼,所以刪除所有不需要
    推薦度:
    導讀我要點爆微信小程序云開發之項目建立與我的頁面功能實現:開發環境搭建 使用自己的AppID新建小程序項目,后端服務選擇小程序·云開發,點擊新建,完成項目新建。 新建成功后跳轉到開發者工具界面 新建后,微信端為我們提供了一個參考的模板程序,這里我們自己來創建各個所需的文件與代碼,所以刪除所有不需要

    開發環境搭建

    使用自己的AppID新建小程序項目,后端服務選擇小程序·云開發,點擊新建,完成項目新建。





    新建成功后跳轉到開發者工具界面


    新建后,微信端為我們提供了一個參考的模板程序,這里我們自己來創建各個所需的文件與代碼,所以刪除所有不需要的文件,刪除cloudfunctions、miniprogram/images、miniprogram/pages文件下所有文件,同時也刪除style文件和刪除app.json中原始的頁面配置。

    此時編譯下方控制臺會報“VM8100:5 appJSON["pages"] 需至少存在一項”錯誤,因為app.json中未配置任何頁面路徑,下面我們來對app.json進行配置。

    {
     "cloud": true,
     "pages": [
     "pages/index/index",
     "pages/detonation/detonation",
     "pages/user/user"
     ],

    “cloud”: true表示讓云能力可以在所有基礎庫中使用,在頁面路徑列表pages下加入三個Tab頁面路徑,在window中設置全局的默認窗口樣式,通過tabBar設置底部tab欄的樣式,配置完成后點擊編譯,開發工具會自動生成三個頁面的文件夾以及相關文件。

    "window": {
     "backgroundTextStyle": "light",
     "navigationBarBackgroundColor": "#FF3333",
     "navigationBarTitleText": "我要點爆",
     "navigationBarTextStyle": "white",
     "backgroundColor": "#FF3333"
     },
     "tabBar": {
     "backgroundColor": "#F2F2F2",
     "color": "#6B6B6B",
     "selectedColor": "#FF0000",
     "list": [
     {
     "pagePath": "pages/index/index",
     "text": "世界",
     "iconPath": "/images/shi.png",
     "selectedIconPath": "/images/shi1.png"
     },
     {
     "pagePath": "pages/detonation/detonation",
     "text": "點爆",
     "iconPath": "/images/bao2.png",
     "selectedIconPath": "/images/bao1.png"
     },
     {
     "pagePath": "pages/user/user",
     "text": "我的",
     "iconPath": "/images/wo1.png",
     "selectedIconPath": "/images/wo.png"
     }
     ]
     },
     "sitemapLocation": "sitemap.json"
    }

    配置成功后頁面結構與效果

    創建數據庫環境

    設置環境名稱,環境名稱可以根據自己需求設置,這里設置與項目名相同dbx,下方的環境ID會自動生成,無需修改,點擊確定完成創建。

    創建成功后跳轉云開發控制臺頁面

    配置app.js文件,在調用云開發各 API 前,需先調用初始化方法 init 一次(全局只需一次),在wx.cloud.init中設置程序所讀環境的數據庫位置,剛才創建的數據庫環境的ID


    實現我的頁面布局制作與用戶授權登錄功能

    首先對頁面進行布局,頭部使用一個button按鈕來進行授權登錄獲取用戶信息的操作,設置button的open-type為getUserInfo,使得按鈕可以從bindgetuserinfo回調中獲取到用戶信息,設置回調方法為getUserInfoHandler。為了讓用戶授權后實時更新用戶頭像與用戶名,這里使用數據綁定與判斷的方法。

    <!-- pages/user/user.wxml -->
    <view class="user_header">
     <view class="header_box">
     <image src="{{userTx || defaultUrl}}"></image>
     <button class="{{username == '點擊登錄' ? 'usernameDe' : 'username'}}" open-type="getUserInfo" bindgetuserinfo="getUserInfoHandler">{{username}}</button>
     <view class="qiandao">
     <text>糖果</text>
     </view>
     </view>
    </view>
    <view class="user_main">
     <view class="main_box">
     <view class="box_item">
     <image src="https://www.gxlcms.com/images/jilu.png"></image>
     <text>點爆記錄</text>
     </view>
     <view class="box_item">
     <image src="https://www.gxlcms.com/images/zhudian.png"></image>
     <text>最近助點</text>
     </view>
     </view>
     <view class="main_box">
     <view class="box_item">
     <image src="https://www.gxlcms.com/images/fengcun.png"></image>
     <text>我的封存</text>
     </view>
     <view class="box_item">
     <image src="https://www.gxlcms.com/images/usercang.png"></image>
     <text>我的收藏</text>
     </view>
     </view>
    </view>


    頁面布局完成后進行user.js的編寫,data中設置頁面初始數據,username用于控制授權按鈕用戶名變換,defaultUrl設置默認頭像,userTx記錄用戶頭像,userInfo記錄用戶授權后所獲取的信息,gender用與用戶性別判斷,province用于記錄地區信息。

    // pages/user/user.js
    Page({
     data: {
     username: '點擊登錄',
     defaultUrl: '/images/yuyin5.png',
     userTx: '',
     userInfo: {},
     gender: 1,
     province: '',
     },

    在onLoad中對頁面進行初始化設置和用戶是否登錄的初始化設置,在用戶授權登錄后直接使用本地的用戶信息,如果本地信息不存在則通過wx.getSetting獲取用戶設置,看用戶是否授權過,如果授權過,則wx.getUserInfo直接獲取用戶信息。

    onLoad: function () {
     wx.setNavigationBarTitle({
     title: '我的'
     })
     //當重新加載這個頁面時,查看是否有已經登錄的信息
     let username = wx.getStorageSync('username'),
     avater = wx.getStorageSync('avatar');
     if (username) {
     this.setData({
     username: username,
     userTx: avater
     })
     }
     wx.getSetting({
     success: res => {
     if (res.authSetting['scope.userInfo']) {
     wx.getUserInfo({
     success: res => {
     this.setData({
     userTx: res.userInfo.avatarUrl,
     userInfo: res.userInfo
     })
     }
     })
     }
     }
     })
     },

    getUserInfoHandler方法保存系統常用的用戶信息到本地和完成用戶信息數據庫注冊,**button組件中bindgetuserinfo方法回調的detail數據與wx.getUserInfo返回的一致**,通過detail將所需的用戶信息提取出來,將性別gender替換為‘男'和‘女',將頭像、用戶名、性別、地區保存在本地。然后使用云數據庫API進行數據庫操作。

    getUserInfoHandler: function (e) {
     let d = e.detail.userInfo
     var gen = d.gender == 1 ? '男' : '女'
     this.setData({
     userTx: d.avatarUrl,
     username: d.nickName
     })
     wx.setStorageSync('avater', d.avatarUrl)
     wx.setStorageSync('username', d.nickName)
     wx.setStorageSync('gender', gen)
     wx.setStorageSync('province', d.province)
     //獲取數據庫引用
     const db = wx.cloud.database()
     const _ = db.command
     //查看是否已有登錄,無,則獲取id
     var userId = wx.getStorageSync('userId')
     if (!userId) {
     userId = this.getUserId()
     }
     //查找數據庫
     db.collection('users').where({
     _openid: d.openid
     }).get({
     success(res) {
     // res.data 是包含以上定義的記錄的數組
     //如果查詢到數據,將數據記錄,否則去數據庫注冊
     if (res.data && res.data.length > 0) {
     wx.setStorageSync('openId', res.data[0]._openid)
     } else {
     //定時器
     setTimeout(() => {
     //寫入數據庫
     db.collection('users').add({
     data: {
     userId: userId,
     userSweet: 10,
     voice: 0,
     baovoice: 0,
     iv: d.iv
     },
     success: function () {
     console.log('用戶id新增成功')
     db.collection('users').where({
     userId: userId
     }).get({
     success: res => {
     wx.setStorageSync('openId', res.data[0]._openid)
     },
     fail: err => {
     console.log('用戶_openId設置失敗')
     }
     })
     },
     fail: function (e) {
     console.log('用戶id新增失敗')
     }
     })
     }, 100)
     }
     },
     fail: err => {
    
     }
     })
     },
     getUserId: function () {
     //生產唯一id,采用一個字母或數字+1970年到現在的毫秒數+10w的一個隨機數組成
     var w = "abcdefghijklmnopqrstuvwxyz0123456789",
     firstW = w[parseInt(Math.random() * (w.length))];
     var userId = firstW + (Date.now()) + (Math.random() * 100000).toFixed(0)
     wx.setStorageSync('userId', userId)
     return userId;
     },
    })

    在云開發控制臺中創建數據庫集合,我們新建一個users集合,我們只需新建集合,通過js中使用云開發API可自動創建集合中的屬性和數據。

    該users集合為用戶信息表,記錄用戶信息,表users的結構如下:



    集合創建成功后,點擊將出現進行編譯,此時頁面效果如下:

    我們點擊“點擊登錄”按鈕,然后對程序進行授權,授權后可以看到我們的頭像和用戶名都顯示出來了,同時,打開云開發控制臺,查看users集合,可以看到我們信息已經成功保存在了集合中。

    至此,我們就完成了

    1、云端控制臺數據庫的創建
    2、我的頁面的樣式制作
    3、用戶授權登錄功能制作
    4、云數據庫的用戶數據存儲的實現

    項目源碼:https://github.com/xiedong2016/dbx

    總結

    以上所述是小編給大家介紹的我要點爆”微信小程序云開發之項目建立與我的頁面功能實現,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    我要點爆”微信小程序云開發之項目建立與我的頁面功能實現

    我要點爆微信小程序云開發之項目建立與我的頁面功能實現:開發環境搭建 使用自己的AppID新建小程序項目,后端服務選擇小程序·云開發,點擊新建,完成項目新建。 新建成功后跳轉到開發者工具界面 新建后,微信端為我們提供了一個參考的模板程序,這里我們自己來創建各個所需的文件與代碼,所以刪除所有不需要
    推薦度:
    標簽: 微信 小程序 項目
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 91麻豆精品视频在线观看| 四虎国产精品永久地址49| 99久久精品国产麻豆| 日韩精品电影一区亚洲| 亚洲国产精品久久久久久| 国产精品亚洲а∨无码播放| 亚洲国产精品无码久久九九| 国产福利电影一区二区三区,亚洲国模精品一区 | 91精品国产乱码久久久久久| 中文无码久久精品| 精品人妻无码专区中文字幕 | 日韩一区二区精品观看| 99精品国产成人一区二区| 国产精品视频网站你懂得| 日产精品久久久久久久| 自拍偷自拍亚洲精品被多人伦好爽| 精品国产一级在线观看| 国产精品美女免费视频观看| 91麻精品国产91久久久久| 四虎影永久在线观看精品| 国产精品电影网| 国产精品岛国久久久久| 国产精品91av| 国产成人精品综合网站| 91麻豆精品视频| 2021精品国产综合久久| 99精品一区二区三区无码吞精 | 久久久久99精品成人片| 国产日韩精品无码区免费专区国产 | 正在播放酒店精品少妇约| 久久无码精品一区二区三区| 国内精品久久久久久久涩爱| 国产精品制服丝袜亚洲欧美| 成人精品一区二区久久| 成人国产精品一区二区视频 | 亚洲人成亚洲精品| 99久久国产综合精品网成人影院| 国产在线拍揄自揄视精品不卡| 精品视频在线免费观看| 亚洲国产精品自在在线观看| 99热成人精品免费久久|