微信小程序开发—项目实战之聊天机器人

我参加CSDN博客之星评选啦,感谢大家前往投票支持!

投票地址:http://blog.csdn.net/vote/list.html?keyword=anda0109#search

项目功能介绍

人工智能虚拟机器人“微软小冰”大家玩过吧,很酷的一个应用。发送文字、语音和图片都能得到智能的回复。

那现在我们就用小程序做一个模拟的应用,智能聊天机器人。发送文字它可以回复一段话,或一张图片,是不是有点小酷!

下面是小程序开发的一个智能聊天机器人的应用界面:

当然,这种智能回复的算法和数据库我们自己肯定是没有的,所以我们借助于图灵机器人的开放API接口来完成我们的功能。

图灵机器人接口:http://apistore.baidu.com/apiworks/servicedetail/736.html,在百度API store注册获取appkey就可以免费使用了。

智能聊天机器人的开发步骤

1、整体框架

很简单,两个页面。两个tab,并修改window标题栏和tabBar的颜色等属性就好。这个全部在app.json中完成。

2、image组件的使用

image组件介绍:https://mp.weixin.qq.com/debug/wxadoc/dev/component/image.html?t=20161122

image组件的使用与web开发的image标签的用法类似。这里主要关注image的mode属性,它指定图片的缩放以及裁剪模式,共提供了3种缩放、9种裁剪模式。

3、form表单的使用

表单,将组件内的用户输入的<switch/> <input/> <checkbox/> <slider/> <radio/> <picker/> 提交。

属性名 类型 说明
report-submit Boolean 是否返回formId用于发送模板消息
bindsubmit EventHandle 携带form中的数据触发submit事件,event.detail = {value : {‘name’: ‘value’} , formId: ”}
bindreset EventHandle 表单重置时会触发reset事件

当点击 表单中 formType 为 submit 的 <button/> 组件时,会将表单组件中的 value 值进行提交,需要在表单组件中加上 name 来作为 key

表单提交的要点:

  • 在form内的表单组件必须有name属性。
  • 在form内的button的 formType 属性为 submit 。
  • form的属性bindsubmit即为数据提交事件绑定的响应函数。

4、wx.request接口的使用

wx.request发起的是 HTTPS 请求。一个微信小程序,同时只能有5个网络请求连接。

在开发调试模式开发工具没有做安全检查,因此是可以请求http的

wx.request({
  url: ‘test.php‘, //仅为示例,并非真实的接口地址
  data: {
     x: ‘‘ ,
     y: ‘‘
  },
  header: {
      ‘content-type‘: ‘application/json‘
  },
  method: ‘GET‘,
  success: function(res) {
    console.log(res.data)
  }
})

了解http的对这个接口参数应该不陌生,首先url为接口地址,data为请求的参数,header为请求的头,header中不能设置header 中不能设置 Referer。method为请求的方法,包括:OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT

5、scroll-view组件的使用

scroll-view为可滚动视图容器。这个主要用于聊天界面在有新的消息时需要自动滚动到最新聊天的位置。它的属性还是比较多的,参看文档:https://mp.weixin.qq.com/debug/wxadoc/dev/component/scroll-view.html?t=20161122

属性名 类型 默认值 说明
scroll-x Boolean false
scroll-y Boolean false 允许纵向滚动
upper-threshold Number 50 距顶部/左边多远时(单位px),触发 scrolltoupper 事件
lower-threshold Number 50 距底部/右边多远时(单位px),触发 scrolltolower 事件
scroll-top Number 设置竖向滚动条位置
scroll-left Number 设置横向滚动条位置
scroll-into-view String 值应为某子元素id,则滚动到该元素,元素顶部对齐滚动区域顶部
bindscrolltoupper EventHandle 滚动到顶部/左边,会触发 scrolltoupper 事件
bindscrolltolower EventHandle 滚动到底部/右边,会触发 scrolltolower 事件
bindscroll EventHandle 滚动时触发,event.detail = {scrollLeft, scrollTop, scrollHeight, scrollWidth, deltaX, deltaY}

这里我们主要用到scroll-y(允许纵几滚动)和scroll-top(设置竖向滚动条位置)属性,以完成聊天内容的自动下翻。

6、两个坑

a、更新数据同时更新scrollTop,无法达到效果

需要先更新数据,然后更新scrollTop

    要这样写才可以更新聊天页面内容并将滚动条置于正确的位置
    this.setData({content:newContent});
    this.setData({scrollTop:newScrollTop});
    而不能写为下面这样
    this.setData({
        content:newContent,
        scrollTop:newScrollTop
    });

b、textarea的value属性绑定逻辑层的data数据段

在逻辑层调用setData({text:”“}),textarea中数据并不会被清空。这个问题还没找出解决方案,等研究出方法再更新。

关于这个小程序的开发过程我录制了视频教程,教程是收费的,有需要的可以购买。

我的视频教程地址:http://edu.csdn.net/course/detail/3370

时间: 2024-12-10 15:02:07

微信小程序开发—项目实战之聊天机器人的相关文章

微信小程序开发—项目实战之计算器开发

我参加CSDN博客之星评选啦,感谢大家前往投票支持! 投票地址:http://blog.csdn.net/vote/list.html?keyword=anda0109#search 就像学习一门开发语言首先会写出"Hello World"一样,学习开发一个应用首先得写出一个"计算器",这也是开发者的入门必经之路.想当年我学习C/C++也是从一个计算器入门而后一往无前的. 小程序的第一个应用,我也选择了开发计算器,入门神器嘛.首先,它的界面相对简单,适合入门:其次,

腾讯工程师教你9小时搞定微信小程序开发

下载地址:百度网盘下载 课程介绍本课程从最基础的微信小程序开发工具使用开始讲起,带你走完从写出第一个 HelloWorld 到构建出第一款属于自己的微信小程序的完整学习路线.课程共有八大模块:模块一:微信小程序介绍与开发准备模块二:上手第一个微信小程序模块三:微信小程序开发框架模块四:微信小程序开发之原生组件模块五:微信小程序开发之原生 API模块六:微信小程序开发进阶之核心技能模块七:微信小程序开发项目实战案例模块八:微信小程序开发实战注意事项与进阶指导 课程详细大纲 原文地址:https:/

CK2020微信小程序入门与实战 常用组件API开发技巧项目实战

新年伊始,学习要趁早,点滴记录,学习就是进步! 随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到程序开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了.对于学习有困难不知道如何提升自己可以加扣:1225462853  获取资料. 下载地址:https://pan.baidu.com/s/1hsU5EIS 微信小程序入门与实战 常用组件API开发技巧项目实战 小程序官方正式公告,开放了更多的入口,个人开发者可以申请

微信小程序开发视频+项目实战

视频课程包含: 微信小程序入门视频.pages页面启动顺序配置.App实战开发视频教程.demo真机演示视频集锦.开发视频教程.源码+PPT.微信小程序五部入门+实战视频 等等 共9G! 这里给大家按照一定思路整理了微信小程序视频和项目实战,涵盖微信小程序全部知识点. 本视频属于作者原创搜集整理!下载方式:翻阅到文章底部 目录 1.微信小程序入门视频 2.微信小程序开发视频教程 3.微信小程pages页面启动顺序配置 4.微信小程序demo真机演示视频集锦 5.微信小程序五部入门+实战视频 6.

微信小程序开发实战视频教程

微信小程序开发实战视频教程发布 腾讯终于发布了没有APPid,无需申请也可以进行微信小程序开发的视频教程了,我在在第一时间尝试并发布了这7个小视频教程,入门足够了.... 各位免费拿去,慢慢享用: 链接: https://pan.baidu.com/s/1o7DX7q6 密码: ztzq 也可以添加 微信小程序开发者交流QQ群:434276993,只欢迎对微信小程序开发有兴趣的朋友,其他勿加,感谢.

微信小程序开发实战视频教程发布

昨日(9月23),腾讯终于发布了没有APPid,无需申请也可以进行微信小程序开发的视频教程了,我在在第一时间尝试并发布了这7个小视频教程,入门足够了.... 各位免费拿去,慢慢享用: 链接: https://pan.baidu.com/s/1o7DX7q6 密码: ztzq 也可以添加 微信小程序开发者交流QQ群:434276993,只欢迎对微信小程序开发有兴趣的朋友,其他勿加,感谢.

微信小程序开发交流与推广

一.请加微信群: 请扫描下方的二维码加“微信小程序交流推广群”,由于微信群的限制,超过 100 人就不能扫码加群,大家可以先添加微信号:us9488 并备注“微信小程序”,然后拉你入群. 二.官方文档: 微信小程序介绍 微信小程序设计指南 微信小程序开发文档 微信小程序运营规范 微信小程序开发者社区 三.微信小程序解决方案: 微信小程序会话管理场景 微信小程序文件上传下载应用场景 微信小程序WebSocket长连接应用场景 微信小程序视频应用场景 四.代码: 会话管理场景 文件上传下载应用场景

微信小程序开发优秀教程及文章合集第一期

我会不定期的选取一些优质教程,整理成辑,以便大家集中阅读: 新手向!微信小程序开发手记系列:微信小程序开发手记<一>:项目的代码结构微信小程序开发手记<二>:属性display微信小程序开发手记<三>:backgroud和border属性微信小程序开发手记<四>:视图容器微信小程序开发手记<五>:组件微信小程序开发手记<六>:API 艺龙系列:精品!艺龙小程序:开发项目遇到的问题以及解决方案:http://www.wxapp-unio

微信小程序开发心得

微信小程序也已出来有一段时间了,最近写了几款微信小程序项目,今天来说说感受. 首先开发一款微信小程序,最主要的就是针对于公司来运营的,因为,在申请appid(微信小程序ID号)时候,需要填写相关的公司认证信息如,营业执照等 再次就是用一个未曾开通过公众号的QQ号或微信号来注册一个微信小程序号. 最后,下载微信小程序开发工具. 由于这里,我们更多的关注如何去开发一些app,而不是科谱微信小程序,故在此不在过多的解释,详细的说明,可以去官网帮助文档. 首先,我们拿自己的项目在一步一步的说明并开发吧,