热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

微信小程序<每日查看>开发总结

之前一直在做iOS平台的App和SDK开发,发现微信小程序还蛮有意思的,花了将近几天的时间,从看书学习到萌发想法,最后开发出一款小应用,现在花点时间总结一番!作为自我勉励和后续继续学习动力~先上效

之前一直在做iOS平台的App和SDK开发,发现微信小程序还蛮有意思的,花了将近几天的时间,从看书学习到萌发想法,最后开发出一款小应用,现在花点时间总结一番!作为自我勉励和后续继续学习动力~

先上效果图:                                                                 

 

 

小程序码如下,用户打开微信使用扫一扫,即可启动; 或者在小程序列表里搜索关键字"DCL每日查看",即可搜索到,启动即可!

 

 

1.0.2 新版本

 

附上最近开发的另一个小程序:

 

功能和交互简单描述:

针对微信使用用户每天的零碎时间来进行天气,新闻要点等查看,免去了打开其他App来查看,同时还可以跟图灵小机器人进行各种话题闲聊来打发时间,针对每一天,对历史上的今天发生的大事进行随机展示,告知用户时间的重要性,珍惜当下~

技术要点:

1.基本包含了基本的微信小程序开发所需要使用的技术要点; 一些代码可复制用来开发其他微信小程序!

2.自定义组件开发,小程序提供的组件和API使用

3.第三方小程序组件的使用

4.一些第三方js库如何使用

5.界面布局,样式和动画

6.第三方网页数据解析和api服务数据请求,解析和展示

 

 

一些要点详解:

自定义组件开发,小程序提供的组件和API使用

组件:

view: 用来布局的主要组件,可用来控制子项伸缩布局,有点类似RN的View和前端开发的DIV; 

icon: 小程序提供的默认图标,不需要开发者额外开发; 这里页面的今日要点子项点击弹出标题详情页面后,进行返回用;可以控制颜色跟背景色相融;

text:文字展示用组件;

navigator: 导航组件,这里页面的今日要点子项用来点击弹出新页面用的;

其他组件使用参考官方文档: https://developers.weixin.qq.com/miniprogram/dev/component/

组件使用总结:查看官方文档,看提供哪些特性,跟自己的项目功能有没有结合的地方,没有的话看下有没有第三方提供开发好的组件; 注意: 版本兼容,微信App版本和对应的基础库版本!我这里使用到了一个第三方组件库:WeUI, 项目里用到了searchbar和loading组件,对样式控制和事件触发进行修改和增加来适应功能需要,把这两个组件放入自己的自定义组件库里,进行改造

 

如何建立自定义组件,参考官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/

 

api:

网络

wx.request: 基本的GET和POST请求, 必须是HTTPS请求,建议在开发功能初期把所有即将用到的域名在小程序后台都进行配置,因为一个月只有5次修改机会! 在项目里主要用来(第三方网页数据和api服务)数据请求,拿到结果!这里跟移动平台原生开发有点不一样的是,不需要库来解析对应的结构,这里返回的数据就已经是一个对象了,开发者按照结构进行点语法就能拿到对应的结果了

参考官方文档:https://developers.weixin.qq.com/miniprogram/dev/api/network-request.html#wxrequestobject

数据缓存

wx.setStorage,wx.getStorage: 用来缓存一些key-value数据的,在项目里用来缓存历史的今天数据集,当天有网络的时候,只需解析一次网页数据,拿到结果,缓存下来,下次不需要再次解析网页数据了,我这里选用的网页,下发数据量比较大,每次进入小程序都去解析,对数据请求量会大,所以需要进行缓存;

参考官方文档:https://developers.weixin.qq.com/miniprogram/dev/api/data.html#wxsetstorageobject

位置

wx.getLocation: 用来获取用户位置经纬度的,项目里需要获取到实际的位置,比如城市名称,为了简化开发,我这里用了高德地图的微信小程序SDK,按照官方文档加入项目即可,注意对包体增量大小进行考量,现在是程序包体不能超过4M

 

第三方小程序组件的使用

1.目前发布上线的小程序功能有限,UI和UE设计的还有些瑕疵,暂时用到了WeUI

 

一些第三方js库如何使用

1 前端开发使用的一些第三方JS库,如果涉及到DOM和BOM操作,是不能直接拿来用的, 可以使用的库,建议用压缩后的js库,这样对包体体积增量会有所缓解; 这里项目使用的网页数据解析库改造自: https://github.com/Jxck/html2json ,来源于: https://github.com/icindy/wxParse; Github上有很多"轮子"可以用,时间不足的开发者,可以按需选用配合自己的创意,做出好用好玩的小程序!

使用第三方js库,有很多风险,开发者最好有相当的JS语言基础,还要学习一些ES6语法,这样在用第三方JS库才有一点的心里有数,后续也可以自己开发出供别人使用的“轮子”

推荐一本介绍Javascript的书: 

ES6新语法:http://es6.ruanyifeng.com

 

界面布局,样式和动画

这三块很大一部分都是前端开发的东西,可以直接拿过来用

看的网站资料: https://www.w3cschool.cn

css书籍是:CSS揭秘

小程序开发官方文档: https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxml/

项目使用总结:

这里的动画控制比较简单,主要是两个交互,第一个是点击今日要点下的某一条目,上方绿色进度条加载到完成后,标题列表视图渐渐从透明到不透明; 第二个是点击底部搜索框,输入文字后完成,当图灵小机器人有回复的时候,根据文字内容生成一个视图,从搜索框顶部向上伸缩弹出,动画代码都用CSS来写,定义在.wxss文件里,在触发时机通过数据绑定来修改这个视图的样式

主要代码如下

//默认样式
.reviewText
{

  text-overflow: ellipsis;
  word-break: break-all;
  -moz-box-orient: vertical;
  overflow: hidden;
  /* //white-space: nowrap;   */
   max-height: 0;
   font-size: 14px;
   position:fixed; 
    bottom:50px; 
    left:0px; 
    width:98%; 
     height:auto; 
    text-align: left;
    padding-top: 3px;
    padding-right:12px;
    padding-left: 3px;
    z-index:9999;  
}

//弹出动画时候的样式
.displayReviewText
{
  border-left: 7px solid #343338; 
  background-color:burlywood;
  overflow: hidden;
  transition: max-height .55s;

  max-height: 2000px;
}

//文字自动隐藏时候的样式
.hideReviewText
{
  overflow: hidden;
  transition: max-height .35s;
  background-color:transparent;
  /* 
  transition: 0 .75s; */
  max-height: 0px;
}

//文字自动隐藏时候的样式
.hideReviewTextColor
{
  transition: background-color .35s;
} 
<view class='reviewText {{displayReviewText}} {{hideReviewText}} {{hideReviewTextColor}}'>
     <text style='width:90%;'>{{tulinText}}text>
view>

 

第三方网页数据解析和api服务数据请求,解析和展示

由于目前精力有限,没有自有数据的收集,有一些功能只能借助互联网上的一些数据(如果涉及到侵权,本人会下架该小程序,做此声明),目前使用到的技术是爬取一些静态网站内容,分析其html结构,解析出需要的数据,做小程序端逻辑处理,通过百度和google,用到的是html2json,参照其Github上的README基本可以知晓其使用,难点在于对html中DOM树结构的理解和预判,这段逻辑需要做很多容错处理!除了爬取网页数据外,还可以查找一些免费的API服务接口,比如阿凡达,京东云等,这里注意先测试下对应的Api服务域名是否符合小程序的请求规范,不然在小程序后台配置request请求域名的时候白白浪费一次配置机会,因为现在一个月只能配置5次,所以建议第一次修改的时候,把所有需要用到的域名都配置上,减少后续配置次数

项目使用总结:如下图所示,这里去爬取了一个网站的数据,解析出需要的列表数据,然后做随机展示,下拉刷新新一条随机展示

再比如如下图所示,这里使用了高德地图小程序SDK和京东云的天气API接口,使用并不复杂,只是会花费一些时间

这里的背景颜色会根据温度不同作不同的颜色填充

 

 

  

  该小程序当前正在开发新版本,敬请期待~ 等后续功能完善后,会把源码发布到Github,一起交流技术实现!

  [另: 该小程序对应的ReactNative版本也基本开发完成,正在提交Appstore审核! 功能基本一致,其中的代码重用率达到了90%,剩下的10%只是UI实现技术了,ReactNative使用的JSX跟传统的CSS有些许差别,其中有一些好用的部分还舍弃了,额外增加了一些新功能!]

  博客园的各位朋友,如果对该小程序有什么建议,欢迎留言!

 

 

 

 


推荐阅读
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 20211101CleverTap参与度和分析工具功能平台学习/实践
    1.应用场景主要用于学习CleverTap的使用,该平台主要用于客户保留与参与平台.为客户提供价值.这里接触到的原因,是目前公司用到该平台的服务~2.学习操作 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • ASP.NET2.0数据教程之十四:使用FormView的模板
    本文介绍了在ASP.NET 2.0中使用FormView控件来实现自定义的显示外观,与GridView和DetailsView不同,FormView使用模板来呈现,可以实现不规则的外观呈现。同时还介绍了TemplateField的用法和FormView与DetailsView的区别。 ... [详细]
author-avatar
发酵床养殖菌种
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有