问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

apicloud 怎么更新NVNavigationBar模板的子选项

发布网友 发布时间:2022-04-27 00:36

我来回答

2个回答

热心网友 时间:2022-04-22 22:19

开发环境搭建

使用自己的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="qian"> <text>糖果</text> </view> </view> </view> <view class="user_main"> <view class="main_box"> <view class="box_item"> <image src="/images/jilu.png"></image> <text>点爆记录</text> </view> <view class="box_item"> <image src="/images/zhudian.png"></image> <text>最近助点</text> </view> </view> <view class="main_box"> <view class="box_item"> <image src="/images/fengcun.png"></image> <text>我的封存</text> </view> <view class="box_item"> <image src="/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

总结

以上所述是小编给大家介绍的我要点爆”微信小程序云开发之项目建立与我的页面功能实现,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章:详解如何在微信小程序开发中正确的使用vant ui组件微信小程序开发之自定义tabBar的实现微信小程序开发背景图显示功能微信小程序开发之改变data中数组或对象的某一属性值C#开发之微信小程序发送模板消息功能微信小程序开发之IOS和Android兼容的问题微信小程序开发之好友列表字母列表跳转对应位置微信小程序开发animation心跳动画效果

热心网友 时间:2022-04-22 23:37

大气压大约是0.1MPa,所以进出油口压差为17.4MPa; 排量为入口流量/输出转速=12/700 L/r = 17.14 ml/r 输入扭矩=500/3.14 X 17.4 X 17.14 X 10^(-3)=47.49 NM 总效率=输出转矩/输入扭矩 X 100%=40/47.49 X 100%=84.2%
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
弱弱的问一句R9 270X显卡怎么样~ 能带得起我的AMD 240CPU么?_百度知 ... i54570cpu华硕z87a主板要配多少的内存条和显卡 i5 3570k配R9 270X显卡,用什么主板和电源? 很容易上火是什么原因 口干舌燥五心烦热失眠多梦夜不能寐请问是什么原因,吃什么能有效... 想问看大家对老妻少夫的问题有何看法? ...战记第十三章第6关打法 山海战记13-6攻略-手游攻略-游戏鸟手游网 ...战记第十七章第1关打法 山海战记17-1攻略-手游攻略-游戏鸟手游网 ...山海战记9-6图文攻略-手游攻略-游戏鸟手游网 ...战记第十二章第2关打法 山海战记12-2攻略-手游攻略-游戏鸟手游网 自动空调什么意思 深林人不知,明月来相照,保岗林,猜一动物 鼻涕很浓,又是黄色的,是怎么回事? 成语:倦鸟()(),小鸟()(),鸟尽()(),鸟入()(),笼鸟()()。 深林横行迷昏旦栈道奇峰凌空虚飞雪卧龙缩寒毛烈风萧萧擘体肤打一动物迷底 格力空调遥控上的自动表示什么意思? 鼻涕粘黄是怎么回事 深林横行迷昏旦猜一动物 ()鸟知返,鸟尽()() 飞鸟尽,良弓藏,狡兔死,走狗烹 鸟尽( ) ( ) 格力空调自动模式是什么功能? 四字词语《鸟尽 什么》 空调里的模式选项里的&quot;自动&quot;是什么意思? 华为nove7的余额享权益在支付宝怎样找? &quot;自动&quot;在空调中这是什么功能 华为手机nova7里面为什么没有200元的权益礼包? “飞鸟尽良弓藏”全诗是什么? 鼻子长期流黄鼻涕,有点黏,有时候额头会闷痛,是什么病啊?怎么治? 空调自动是什么意思? “飞鸟尽,良弓藏.狡兔死,走狗烹.”啥意思 飞鸟尽良弓藏全诗是什么? 详解mpvue中使用vant时需要注意的onChange事件的坑 12生肖出没在深林处的动物是什么 我最近鼻子,里面老有鼻涕特别粘稠还是黄颜色,什么症状! 鸟尽弓藏近义是什么 气垫bb霜正装和替换装什么意思啊 掌管一片深树林代表什么动物 空调自动关机是什么原因啊! 目前有机肥在多少钱一公斤左右。 深林之王是什么生肖 有字在头深林王,夕阳西落满天红打一个生肖是什么 痰和鼻涕都是又黄又粘的怎么办? 云隐天际识通灵,深林风尘怀佳秀,高人仙逝杨州城,指点江山兴国荣.打一动物 鼻涕又黄又浓是怎么回事 欲钱买深林之王的生肖? 目前市场上牛黄的价格在多少钱一公斤?? 怎样正确使用气垫BB霜? 青山白云金太阳,深林遇上姜娇娘。大汉霸占吕布妻。只留珠宝和良驹。打一动物 今天的废铜价格是多少钱一公斤