小程序开发遇到的问题(小程序开发中遇到的问题)

小程序开发 2273
今天给各位分享小程序开发遇到的问题的知识,其中也会对小程序开发中遇到的问题进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!小程序开发经验总结 最近一直在做小程序,工作中也遇到了一些问题,踩了一些坑,所以想着写篇文章记录下来,并借此将小程序开发的相关知识进行梳理,方便以后参考,也为刚刚接触小程序的人提供一些思路方法,互相学习,共同进步。 1、微信小程序的目录结构及配置说明 app.json是小程序的全局配置文件,所有配置项key必须使用 双引号括起来 ,value值为字符串类型的也必须使用双引号, 不支持单引号 。

今天给各位分享小程序开发遇到的问题的知识,其中也会对小程序开发中遇到的问题进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

小程序开发经验总结

最近一直在做小程序,工作中也遇到了一些问题,踩了一些坑,所以想着写篇文章记录下来,并借此将小程序开发的相关知识进行梳理,方便以后参考,也为刚刚接触小程序的人提供一些思路方法,互相学习,共同进步。

1、微信小程序的目录结构及配置说明

app.json是小程序的全局配置文件,所有配置项key必须使用 双引号括起来 ,value值为字符串类型的也必须使用双引号, 不支持单引号 。

1.1 pages

pages选项是必须配置的。该配置项注册了小程序所有页面的地址,其中每一项都是页面的 路径+文件名 。每一个页面都是由.json、.js、.wxml、.wxss四个文件组成,并且 四个文件的名字必须要一致 。

1.2   tabBar

tabBar 配置项指定 tab 栏的表现,以及 tab 切换时显示的对应页面。其中 list 接受一个数组,只能配置最少 2 个、最多 5 个 tab

1.3 usingComponents

使用自定义组件或者插件提供的组件前,必须先在这里声明

2、开发微信小程序遇到的问题及解决办法

2.1 双向绑定

微信小程序不支持通过v-model的方式实现自动双向绑定,需要给表单元素通过绑定事件,并使用this.setData来赋值实现。

2.2 computed和watch

微信小程序默认是不支持computed和watch的,如需要使用这两项功能,需要安装miniprogram-computed ,安装方法见 官方文档

2.3 对象赋值

如果给对象的属性赋值,可以使用this.setData({'obj.key':value})来赋值,但是如果给某个属性名是变量的属性赋值,通过这种方法是会报错的,经过多次尝试,发现使用如下的方式赋值成功。

let newObj = `obj.${key}`

this.setData({

[newObj]: value

})

2.4 scroll-view

当页面存在弹框容器,并且弹框里的内容是需要滚动条滚动展示时,如果弹框下面那层的容器使用view元素的话,会导致滚动弹框内容时,同时会触发弹框下面那层的页面容器也会一起滚动,解决此问题可以将弹框下面的容器使用scroll-view元素替代view元素

3、小程序测试和发布

由于服务器域名request合法域名每个月 只能修改5次 ,因此在本地开发小程序时,需要在微信调试工具中设置不校验合法域名。等小程序上线前再一次性将所有域名添加到小程序管理后台。

以上便是此次小程序开发中积累的一些经验,希望能给刚刚接触小程序的人提供一些思路方法,在以后的开发中,如果遇到新的问题,继续更新文档......

websocket小程序开发测试环境可以,但是真机模式失败的原因解答

环境:消息推送需要使用长联讯,所以采用websocket

遇见问题:微信开发者工具可以使用websocket,但是使用手机真机调试websocket无响应

解决思路:

一.确保websocket调用api的正确使用顺序

二.服务器环境的搭建以及合法域名的校验

三.开发者后台要配置wss和ip白名单

第一步:确保API的正确调用

二.服务器搭建以及合法域名的校验以及wss的配置

1.这里提到的服务器搭建,主要是因为在微信小程序中,websocket支持的一定是wss的通信协议,当然也不是说你用ws不行,但是我感觉测试可以,如果要配置上线的话,还是需要使用wss的!可以在后台管理界面进行配置

---开发---开发设置---服务器域名设置

切记:一个月只有五次的修改机会!慎重哦

修改成功后,可以打开开发工具的详情页面进行查看,来查看是否配置成功

2.合法域名的校验

众所周知,小程序在开发过程中,只要你点击不校验合法域名,就可以不进行跨域处理,但是如果要求上线,一定要进行配置,防止出现跨域问题。然后合法域名也是要求https,需要携带证书!

三.会遇到的问题!

当你配置完所有以后,你会发现在开发环境下,你是可以使用websocket的,但是当你选择真机测试的时候,你会发现你的websocket失效了,你如果打开两个管理控制台,你会发现,开发工具的上面, 长联讯 的 属性type :为websocket,但是真机环境下的 长联讯 的 属性type :为xhr!

当时我以为是我api调用的问题,查阅了好多资料,都没得到解决!最后在微信开发社区里面找到了和我遇见一模一样问题的人!询问以后才得知解决办法!!!说实话,解决方法,让我有点哭笑不得

是不是和我遇到的一样!!!

四.解决办法!!!

直接上线就可以了,线上环境就可以成功了!如果觉得直接上线不好!你可以提交为体验版本即可

综上所述...websocket在真机上和开发工具上的不一致,就能得到解决了

开发微信小程序需要注意什么

 近几年小程序市场发展形势大好,很多商家在刚接触小程序开发时有很多疑惑,小程序开发的核心到底有哪些?我们需要注意哪些问题?

 

 1、定位

 

 不同的行业的定位自然不同。如果企业在开发前没有一个明确的定位,不仅会让开发过程变得麻烦复杂,也不方便后期运营。所以企业做好精准定位是必不可少的,考虑好制作小程序是为了展示还是营销、市场和用户定位是什么等等相关问题。

 

 2、功能需求

 

 小程序所具备的功能是制作小程序的核心要点,这要求企业在开发前就要想好自己希望这个小程序往哪方面发展、小程序的细分功能需求是什么、小程序的页面布局、是否需要配置各种营销功能,想要实现什么样的运营转化等等。不要等到后期运营的时候,才发现这个功能是有所缺失的。所以,在小程序开发的之前,企业必须充分考虑好每一个所需的功能。才能让开发效果更好,让小程序上线后更具同行竞争力。

 

 3、优化路径

 

 大家都知道小程序的“轻而美”是小程序的特点,正是因为小程序所具有无需下载安装、不占内存、即用即走的这些特点才让裂变式分享变得简单易实现,同时也让客户留存变得有难度,怎么样让用户走了再来常来也成了很多小程序运营者的新难题。所以建议无论是功能设计还是页面设计一定要简洁明了,不要企图做得和APP一样华丽复杂,让用户按照容易上手的路径往下走,通过最少的路径步骤去达成用户体验,才能提高流量转化和用户留存率。

 

 4、使用场景

 

 商家要结合自身的实际情况去尽可能的增加小程序的使用场景,以此来提高用户的使用频率。比如餐饮行业,除了提供堂食点餐/外卖的核心服务外,还可以增加会员充值、积分商城、会员暗号福利,团餐预定等多项服务,当用户第一次进入小程序完成浏览时就大概记住商家能够提供的服务内容,在下次有需求时自然会再次了解使用,这样就实现了提高复购和下单频率。

 

 以上就是商城小程序开发核心的内容分享,当然除了这些,选择有实力的服务商和选择合理的预算成本也是商家需要考虑的方面,以上内容希望对大家能够有所帮助。

微信小程序开发中遇到的坑及解决办法

taro单独为某个项目切换taro版本环境

单独为某一个项目升级#这样做的好处是全局的 Taro 版本还是 1.x 的,多个项目间的依赖不冲突,其余项目依然可以用旧版本开发。 如果你的项目里没有安装 Taro CLI,你需要先装一个:

# 如果你使用 NPM

$ npm install --save-dev @tarojs/cli@2.x

# 如果你使用 Yarn

$ yarn add -D @tarojs/cli@2.x

echarts在小程序中滑动卡顿

由于微信小程序中,echarts的层级最高,无论设置多大层级也无法遮住echarts。而且小程序中好像只能用echarts吧。所以为了解决这个bug,我只能委屈求全了。打开ec-canvas.wxml文件,将touchStart、touchMove和touchEnd去掉了,直接删除就好啦。这三个事件应该是做缩放的吧,我们也没有这个缩放的需求。所以就去掉了。虽然暂时满足的需求,还是没有真正的解决问题。

原:

bindinit="init"

bindtouchstart="{{ ec.disableTouch ? '' : 'touchStart' }}"

bindtouchmove="{{ ec.disableTouch ? '' : 'touchMove' }}"

bindtouchend="{{ ec.disableTouch ? '' : 'touchEnd' }}"

现:

bindinit="init"

echarts在小程序中无法跟随页面滑动

在卡顿问题中能与echarts交互少的,可以直接使用图片代替cannvas,即在echarts渲染完毕后将它替换为一张图片。

如果我更新了数据,那么就重新放出echarts,等它渲染完毕后,再次替换为一张图片。

chart.on('finished', () = {

getCurrentInstance().page.selectComponent(id).canvasToTempFilePath({

success: res = {

console.log('res.tempFilePath====',res.tempFilePath)

this.setState({

echartImgSrc: res.tempFilePath

      })

},

    fail: res =console.log('转换图片失败', res)

});

})

render:

this.state.echartImgSrc =='' ?

  ref={this.refChart}

id={this.state.id}

canvas-id="mychart-area"

  force-use-old-canvas="true"

  ec={this.state.ec}

/

:

CoverImage src={this.state.echartImgSrc}/CoverImage

关于小程序开发遇到的问题和小程序开发中遇到的问题的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

扫码二维码