尝试撸一个微信小程序demo(未完)

232 阅读4分钟

也许是公司下一个项目需求可能是需要做一个微信小程序,所以先踩一踩雷。

本篇不具备任何专业性和指导性,仅为自己做小程序demo做一个简单的记录,如果有不正确的地方,还希望各位大佬指正,感谢!

在网站上随便搜到一个demo,决定照着样子去做,网站来源:blog.csdn.net/samrtian/ar…

这个人做的还是非常不错的,决定模仿一下。

确定了方向,就开始着手去做。首先

mp.weixin.qq.com/

微信公众平台,用你的微信扫进去确认一下授权登陆,当然了,如果之前没有注册过的小伙伴好像是需要注册一下的。

进入小程序首页,完成小程序信息的填写。注册及填写信息部分省略。

接下来需要在里面找到“开发者工具下载”,把开发小程序的工具下载下来,登录。

默认会看到这些文件。

其中:app.js是用来写小程序的一些全局配置的,pages里面放的全部都是整个项目涉及到的页面,如果新建一个页面也要记得把该页面的路径添加进去。这里再附加一个小程序生命周期的对应方法。

window中放置的是一些公共配置,项目背景色,字体大小,项目标题等等。

app.js作为项目的入口文件,用于创建应用程序对象。

app.wxss就不用多说啦,配置全局样式。

然后就看到了小程序给我们提供的默认页面,他的文件放置在pages文件夹下的index文件夹中,其中index.wxml就是首页页面文件了,可以在里面进行结构的书写。

小程序为我们提供了很多不同于h5的标签,但是功能比较相似,在网上找了比较图,如下图:

接下来就可以进行项目的布局,样式及一些简单的逻辑操作了。我的首页完成后呈现出下面的样子(样式没有调的很仔细)。

首页

此页面的需求,图片轮播,当前位置的准确定位,切换城市跳转页面,时间获取,天气情况等。

图片轮播:使用小程序自带的swiper标签就可以达成了。

当前位置的准确定位:这里需要引入地图api,百度地图/腾讯地图/高德地图这三大地图巨头都有可开发地图接口,看个人喜好来决定是否哪个就好,我个人使用的是百度地图和腾讯地图。

百度地图开放平台 :

lbsyun.baidu.com/

腾讯地图开放平台 :

lbs.qq.com/

高德地图开放平台 :

lbs.amap.com/

三个地图开放平台页面大体一致,找到“开发支持”一类的选项,然后找到微信小程序api,或者web端地图api。首先要注册账号申请key,我选择百度和腾讯的原因就是我有百度账号和微信QQ(这几个我相信大家都有),就可以省去注册的步骤,直接登陆填写信息获取key,按照它给你的提示操作就可以了,找到你想要使用的地图需求,下载一个参考demo,留下libs引入的js文件,然后使用他们自己提供的属性和方法来实现。(记得要把自己生成的key复制进去)

其中,天气情况我选择使用百度地图开发平台提供的数据。

设置数据的时候使用:

this.setData({

        数据属性名:数据值

})

如果写在事件里,那么this要在之前使用保存下来,这里就不可以直接使用this了。(注:小知识点:设置数据的时候,如果直接用定义在data中的数据名获取数据,那么拿到的是一个静态数据,需要把该数据名['数据名']写成这种形式就可以拿到动态数据了,[]内可以识别变量。)循环数据,渲染数据的方式与vue相同。(注:这里还有个小知识点,如果想获取页面上某个view或其他标签内渲染来的文本数据,需要在该标签行内同时加上一个wx:key="index"就能拿到文本了。)

点击“切换城市”跳转页面使用wx.navigateTo({ url:'' })方法来填写跳转即可。

选择,搜索城市页

需求:搜索框,模糊搜索内容列表,当前城市定位和全部城市。

我都采用了腾讯地图开放平台接口,搜索部分可以使用bindtap绑定一个输入抬起事件,

获取输入框内容,同时循环所有城市(所有城市数据来自api中,然后我push到本地的空数组里了),用街区字符串的方式筛选出前几个字相同的数据,放在一个新数组中,然后数据渲染展示。但是这个地方我认为我的方法不合理,每次抬起键盘都会做一次全面的城市循环,非常耗损性能,这个地方不知道怎么优化改进。

未完...