给楼主一个建议,对于微信小程序的ui界面布局,可以参考微信官方的ui库,weui,可以在github上面下载到,网址链接如下:https://github.com/Tencent/weui-wxss,可以多看看官方提供的这些组件,就知道怎么实现了
小程序能做这种布局吗?[图片]
2019-08-25学习云开发模式,就不用太关心后端和数据库了,小程序开发做到后面都会涉及到后端以及数据库的,如果是个人学习的话,还是先把重心放在前端上面,不然到后面不仅要懂前端,还要知道后端,以及数据库,一个人的精力是有限的。别问我为什么知道这么多,因为刚开始学习的时候也不懂,网上找的教程就是从基础的小程序开发开始的,后来到后面接触到后端和数据库的时候,由于视频课程的老师感觉也不是很懂后端和数据库这一块,很多这方面的知识都一笔带过,导致我遇到问题的时候,很难解决,很打击学习的积极性,还好后来一直在论坛潜水看帖子,知道了云开发,现在下来感觉压力真的小了很多
是否可以直接学习云开发模式,不学传统的开发模式?请问是否可以直接选择学习云开发模式呢?
2019-08-25可以个人注册并且个人开发的,不过个人注册的话,可以选择的服务类目有限
个人开发者不能直接注册?非要填写一个企业,也没选择的余地![图片]
2019-08-25我之前也是遇到了一个同样的问题,一直没解决,后来想着不能再这个问题上卡住,就没有实现这样的方式
scroll-view组件滑动问题?[图片] 这里无法滑动,把以下代码放在一个新的测试页面就可以。求教大神这是什么问题引起的。 [图片] [图片][图片]
2019-08-22如果使用的是微信云开发,调用的接口是微信小程序云函数,它会弹出来让用户选择授权还是取消授权的,是不是就没有这个影响
关于「小程序内用户帐号登录规范调整和优化建议」,我可以这样做吗?本周来上班刚登上小程序后台就看到了微信官方发布的「小程序内用户帐号登录规范调整和优化建议」(链接:https://developers.weixin.qq.com/community/operate/doc/000640bb8441b82900e89f48351401),很多小程序开发/维护者表示???!!!~~~ 现实: 我现在正在维护的小程序(商品售卖类)属于第一种情形,目前小程序内关于授权登录的做法是:对于新用户/已删除授权的老用户,进入小程序后,将首先跳转至登录授权页面,如果用户未允许授权,那么将无法继续使用小程序。该做法确实:1.比较霸道;2.对少数想先浏览商品再决定是否进行购买的用户来说,有点使他们无法接受,如果直接离开,将导致我们丢失一部分用户。 痛点: 目前这种情况下,如果按照「规范调整和优化建议」里的“建议”去做修改的话,成本将会不小,因为前后端经过几番改造后,目前几乎所有的接口都需要用户验证,所以如果修改成先让用户体验再让用户进行登录的话,一来将使得我们过去几个月所做的努力白费,二来也将大规模调整我们的业务逻辑,成本太高,而且不稳定性也将增加,这对我们开发者来讲特别不划算。 个人期望折中的方法: 这两天思考了一下,我们再进行接口升级改造时,旧版本的用于获取首页商品列表不需要验证的接口并未废弃仍可使用,鉴于此,如果我继续保持之前的未授权用户进入小程序即跳转至授权登录页面要求授权,但在该页面增加「暂不登录」的选项,此时: 1. 用户若不介意登录授权,那可以直接点击「授权登录」进行授权,授权后将前往首页,此时首页将采用新版的需要验证的接口 2.对于介意的用户来说,点击「暂不登录」,将前往首页,此时使用旧接口进行体验以及商品浏览,当该用户有意向购买时,比如点击了购物车的购买按钮,再行授权登录 期望回答: 这种比较折中的方法,将能在保留我们目前业务逻辑的情况下,使得开发者尽量少的对代码进行改动,希望官方同学能够回答下:对于这种修改,仍然会受到“代码审核环节进行规则提示和修改要求反馈”的惩罚🐎?真心求问啊! [图片] 2019/08/08 更新: 我们公司小程序的登录授权流程已经修改,其实就是微信提供的那套小程序登录,在这里统一说一下: 小程序登录/注册情形:我们的登录于注册不依赖于用户的个人信息以及UnionId,新用户在我们这里注册后会根据用户的OpenId生成一个userId然后根据这个userId生成对应的session进行后续业务接口的验证,所以如果你们依赖于UnionId的话,请慎重考虑~~~ 修改之前:新用户进入小程序后会立即跳转至「登录授权」页面,用户允许授权后会调用登录接口(v1.0.0)完成注册,生成用户userId以及cookie返回,前台将cookie进行保存以供后续业务接口使用 修改之后:将用户注册于授权保存用户信息分离开来,用户进入小程序后会首先调用wx.login()获取code,将code传给后台以获取OpenId,后台拿到OpenId后直接进行查询:未查询到则为新用户,注册生成新的UserId,查询到则为老用户,得到之前已经生成的UserId,随后将cookie返回,前台保存;用户浏览后进行购买操作或者进入「我的」页面时,才会提示授权,允许授权后才会保存用户信息以及获取其UnionId
2019-08-21经过调试之后,现在想到了一个解决策略,等待多张图片都存放到腾讯云之后,再将这些图片的云存储路径存放到的数据库中,代码如下 [代码]release(e){[代码][代码] [代码][代码]//console.log('I am here', e)[代码][代码] [代码][代码]var[代码] [代码]imageUrl = [];[代码][代码] [代码][代码]var[代码] [代码]temp = [];[代码][代码] [代码][代码]var[代码] [代码]uploadSuccessCnt = 0;[代码][代码] [代码][代码]for[代码] [代码]([代码][代码]var[代码] [代码]i = 0; i < [代码][代码]this[代码][代码].data.filepath.length; i++) {[代码][代码] [代码][代码]wx.cloud.uploadFile({[代码][代码] [代码][代码]cloudPath: [代码][代码]this[代码][代码].data.cloudpath[i], [代码][代码]// 上传至云端的路径[代码][代码] [代码][代码]filePath: [代码][代码]this[代码][代码].data.filepath[i], [代码][代码]// 小程序临时文件路径[代码][代码] [代码][代码]success: res => {[代码][代码] [代码][代码]//console.log('I am here', res)[代码][代码] [代码][代码]imageUrl = imageUrl.concat(res.fileID)[代码][代码] [代码][代码]temp = res.fileID[代码][代码] [代码][代码]//console.log('imageUrl', imageUrl)[代码][代码] [代码][代码]uploadSuccessCnt++;[代码][代码] [代码][代码]//console.log('uploadSuccessCnt', uploadSuccessCnt)[代码][代码] [代码][代码]if[代码] [代码](uploadSuccessCnt == i){[代码][代码] [代码][代码]db.collection([代码][代码]'emall'[代码][代码]).add({[代码][代码] [代码][代码]data: {[代码][代码] [代码][代码]title: [代码][代码]this[代码][代码].data.location + [代码][代码]'出租'[代码][代码],[代码][代码] [代码][代码]price: [代码][代码]this[代码][代码].data.price + [代码][代码]'/月'[代码][代码],[代码][代码] [代码][代码]image: imageUrl,[代码][代码] [代码][代码]inDate: [代码][代码]this[代码][代码].data.date,[代码][代码] [代码][代码]pictureCnt: i,[代码][代码] [代码][代码]},[代码][代码] [代码][代码]success: res2 => {[代码][代码] [代码][代码]console.log([代码][代码]'文件上传成功'[代码][代码], res2)[代码][代码] [代码][代码]wx.showToast({[代码][代码] [代码][代码]title: [代码][代码]'新增成功'[代码][代码],[代码][代码] [代码][代码]})[代码][代码] [代码][代码]},[代码][代码] [代码][代码]fail: err => {[代码][代码] [代码][代码]console.error([代码][代码]'error'[代码][代码], err)[代码][代码] [代码][代码]}[代码][代码] [代码][代码]})[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码][代码] [代码][代码]})[代码][代码] [代码][代码]}[代码][代码]},[代码]但是帖子中的几个疑惑的地方还是不是很明白
wx.cloud.uploadFile何时返回调用成功?遇到一个很奇怪的问题首先,上代码片段 [代码]release(e){[代码][代码] [代码][代码]var[代码] [代码]imageUrl = [];[代码][代码] [代码][代码]var[代码] [代码]temp = [];[代码][代码] [代码][代码]for[代码] [代码]([代码][代码]var[代码] [代码]i = 0; i < [代码][代码]this[代码][代码].data.filepath.length; i++) {[代码][代码] [代码][代码]wx.cloud.uploadFile({[代码][代码] [代码][代码]cloudPath: [代码][代码]this[代码][代码].data.cloudpath[i], [代码][代码]// 上传至云端的路径[代码][代码] [代码][代码]filePath: [代码][代码]this[代码][代码].data.filepath[i], [代码][代码]// 小程序临时文件路径[代码][代码] [代码][代码]success: res => {[代码][代码] [代码][代码]imageUrl = imageUrl.concat(res.fileID)[代码][代码] [代码][代码]temp = res.fileID[代码][代码] [代码][代码]console.log([代码][代码]'imageUrl'[代码][代码], imageUrl)[代码][代码] [代码][代码]}[代码][代码] [代码][代码]})[代码][代码] [代码][代码]}[代码][代码] [代码][代码]console.log([代码][代码]'imageUrl aaaa'[代码][代码], imageUrl)[代码][代码] [代码][代码]console.log([代码][代码]'temp bbbb'[代码][代码], temp)[代码] [代码] [代码][代码]db.collection([代码][代码]'emall'[代码][代码]).add({[代码][代码] [代码][代码]data: {[代码][代码] [代码][代码]title: [代码][代码]this[代码][代码].data.location + [代码][代码]'出租'[代码][代码],[代码][代码] [代码][代码]price: [代码][代码]this[代码][代码].data.price + [代码][代码]'/月'[代码][代码],[代码][代码] [代码][代码]image: imageUrl,[代码][代码] [代码][代码]inDate: [代码][代码]this[代码][代码].data.date,[代码][代码] [代码][代码]pictureCnt: i,[代码][代码] [代码][代码]},[代码][代码] [代码][代码]success: res2 => {[代码][代码] [代码][代码]console.log([代码][代码]'文件上传成功'[代码][代码], res2)[代码][代码] [代码][代码]wx.showToast({[代码][代码] [代码][代码]title: [代码][代码]'新增成功'[代码][代码],[代码][代码] [代码][代码]})[代码][代码] [代码][代码]},[代码][代码] [代码][代码]fail: err => {[代码][代码] [代码][代码]console.error([代码][代码]'error'[代码][代码], err)[代码][代码] [代码][代码]}[代码][代码] [代码][代码]})[代码][代码]},[代码]背景介绍: 我有一个商品信息需要上传到数据库,这个商品有多张图片来描述; 在上面的release接口中,有一个for循环,实现上传多张图片到腾讯云,把上传成功的fileid用一个数组记录下来 所有图片上传成功后,将这些腾讯云的图片路径和商品信息保存在一个数据库记录中 遇到的问题 实际调试时,发现程序执行到wx.cloud.uploadFile时,并没有等待这个数据是否上传成功,而是继续向下执行了,因此会发现先打印了 [代码]imageUrl aaaa[代码][代码]temp bbbb[代码]然后会接着打印,以及真正的云端路劲地址 [代码]imageUrl[代码]疑惑的地方 在函数release中调用wx.cloud.uploadFile的时候,它并不知道什么时候上传成功,就会直接跳转到后面的函数执行,那有什么办法能够确认wx.cloud.uploadFile函数执行成功后再继续执行release函数后面的语句吗? 因为我是嵌入式C语言出生,小程序以及js语言完全属于自学,这样的用法感觉好奇怪,一个函数里面像是发生了线程调度,被打断后,继续执行这个函数后面的操作,这是什么逻辑操作?还是很多前端部分的语言都是这个德行?按照C语言的执行流程,这个时候release函数就应该block在这边,等待wx.cloud.uploadFile执行完成之后,再继续执行;或者你也可以引发一次线程调度,执行其他的部分,但是release函数肯定是被block住的。 等图片上传成功后,又返回到wx.cloud.uploadFile的success中继续执行,可是给我感觉在图片上传成功之前,release整个函数都应该执行结束了,然后微信小程序还会继续自行跳转到这个函数中来执行,这个又是什么神操作?那么release这个函数的生命周期究竟是多少? 难怪之前在网上看到有人用了递归的方法来做wx.cloud.uploadFile,当时还没完全理解别人这样做的意义何在,今天调试下来感觉应该就是现在反馈的问题带来的处理,可是循环比递归理解起来简单多了呀
2019-08-19