欢迎来到258分享网,纯净的网络源码分享基地!

258资源分享网

全部作品
全部作品
网站源码
微信源码
素材特效
源码插件
视频教程
建站学院
热门搜索: 织梦  农业种植  农业  安全设置  官方
258资源分享 > 建站学院 > 微信开发 > 微信小程序实战——智能小秘“遥知之”源码分享(语义理解基于olami) ...

推荐下载

HTML5响应式自适应网咯设计

2020-05-12   浏览:789

HTML5自适应律师工作室类网

2020-04-04   浏览:654

高端HTML5响应式企业通用网

2020-05-06   浏览:560

html5响应式外贸网站英文版

2020-05-08   浏览:545

HTML5影视传媒文化公司类网

2020-05-12   浏览:543

微信小程序实战——智能小秘“遥知之”源码分享(语义理解基于olami) ...

发布时间:2020-11-14  
微信小程序智能生活小秘书开发详解 >>>>>>>>>>>>>>>>>>>>>>>> 欢迎转载 <<<<<<<<<<<<<<<<<<<<<<<<

本文原地址: 

“遥知之”微信小程序全部源码打包下载: 

实现功能

实现一个智能生活信息查询的小秘书功能,支持查天气、新闻、日历、汇率、笑话、故事、百科、诗词、邮编、区号、菜谱、股票、节目预告,还支持闲聊、算24点、数学计算、单位换算、购物、搜索等功能。

使用方式上支持摇一摇、点界面按钮、手动输入这三种方式。

扫码试用(左右皆可)

微信小程序实战——智能小秘“遥知之”源码分享(语义理解基于olami) ...

微信小程序实战——智能小秘“遥知之”源码分享(语义理解基于olami) ...

界面展示

微信小程序实战——智能小秘“遥知之”源码分享(语义理解基于olami) ...

开发资源

免费开放语义接口平台 olami.ai

微信小程序平台

js, css

源码分析

微信小程序实战——智能小秘“遥知之”源码分享(语义理解基于olami) ...

基本延用官方案例的目录结构和命名,index.xx是首页面相关代码,logs.xx是日志页相关代码。

比官方目录结构多了两个文件:

config.js

因为用到一些配置,放在.js里封装起来比较好。

pics/bg.jpg

小程序背景图片,开发环境上加载本地文件作为背景图片是生效的,预览体验时不生效,网上有人说不支持本地文件,因此这里这个图片其实没有用到,只是暂时留着。

小程序根目录文件:app.js, app.json, app.wxss, config.js app.js

提供获取用户微信账号昵称和所在地,获取当前地理位置这两个公共接口。

const corpusList = require('./config').corpus var UTIL = require('./utils/util.js'); App({ onShow: function () { UTIL.log('App Show') }, onHide: function () { UTIL.log('App Hide') }, onLaunch: function () { UTIL.log('App Launch') this.updateUserLocation() }, updateUserLocation: function() { var that = this wx.getLocation({ //type: 'wgs84', // gps原始坐标 type: 'gcj02', //国家标准加密坐标 success: function (res) { that.globalData.latitude = res.latitude that.globalData.longitude = res.longitude that.globalData.speed = res.speed //var accuracy = res.accuracy UTIL.log('REFRESH LOCATION: ' + that.globalData.latitude + ' | ' + that.globalData.longitude + ' , speed: ' + that.globalData.speed) }, fail: function(res) { UTIL.log('REFRESH LOCATION FAILED...') } }) }, getUserInfo:function(cb){ var that = this if(this.globalData.userInfo){ typeof cb == "function" && cb(this.globalData.userInfo) }else{ //调用登录接口 wx.login({ success: function () { wx.getUserInfo({ success: function (res) { that.globalData.userInfo = res.userInfo that.globalData.custId = UTIL.getUserUnique(that.globalData.userInfo); typeof cb == "function" && cb(that.globalData.userInfo) } }) }, fail: function () { UTIL.log('登录WX失败了!') } }) } }, clearUserInfo: function() { var that = this that.globalData.userInfo = null; that.globalData.hasLogin = false; }, globalData:{ userInfo:null, corpus: corpusList, custId: '', latitude: 0.0, longitude: 0.0, speed: 0, } }) app.json

配置小程序窗体相关属性:标题名称,背景色,网络超时等。

配置首页面为pages/index/index。

{ "pages": [ "pages/index/index", "pages/logs/logs" ], "window": { "backgroundTextStyle": "black", "navigationBarBackgroundColor": "#F8F8F8", "navigationBarTitleText": "遥知之 -- olami语义支持", "navigationBarTextStyle": "black", "backgroundColor": "#F8F8F8" }, "networkTimeout": { "request": 10000, "connectSocket": 10000, "uploadFile": 10000, "downloadFile": 10000 } } app.wxss

配置了“遥知之”小程序container全局样式

/**app.wxss**/ .container { height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; box-sizing: border-box; } 配置文件:config.js

保存一些配置信息,包括NLI的key和secret,还有小程序中预置的语料集合。

module.exports = { //NLI appkey appkey: `b4118cd178064b45b7c8f1242bcde31f`, //NLI appsecret appsecret: `7908028332a64e47b8336d71ad3ce9ab`, corpus: [ // '闲聊', // '天气', // '诗词', // '单位换算', // '新闻', // '算24点', // '菜谱', // '汇率', // '邮编', // '区号', // '股票', // '日历', // '节目预告', // '笑话', // '故事', // '购物', // '数学运算', // '百科', // '搜索', '你今年多大啦', '上海今天天气如何', '北京的呢', '李白写过什么诗', '我要听李白的静夜思', '背一首将进酒', '一公里等于多少英尺', '我要看体育新闻', '4567算24点', '红烧肉的做法', '1美元能换算多少人民币', '查一下南昌的邮编', '郑州的区号是多少', '中国石油的股价', '今年中秋节是哪一天', '明晚湖南卫视放什么节目', '来个笑话', '讲个故事听听', '我要买电脑', '1加到100等于多少', '黄山有多高', '百度搜一下薛之谦的照片', ] }; utils目录文件:GUID.js, MD5.js, NLI.js, util.js 获取随机GUID:GUID.js //表示全局唯一标识符 (GUID)。 function Guid(g) { var arr = new Array(); //存放32位数值的数组 if (typeof (g) == "string") { //如果构造函数的参数为字符串 InitByString(arr, g); } else { InitByOther(arr); } //返回一个值,该值指示 Guid 的两个实例是否表示同一个值。 this.Equals = function (o) { if (o && o.IsGuid) { return this.ToString() == o.ToString(); } else { return false; } } //Guid对象的标记 this.IsGuid = function () { } //返回 Guid 类的此实例值的 String 表示形式。 this.ToString = function (format) { if (typeof (format) == "string") { if (format == "N" || format == "D" || format == "B" || format == "P") { return ToStringWithFormat(arr, format); } else { return ToStringWithFormat(arr, "D"); } } else { return ToStringWithFormat(arr, "D"); } } //由字符串加载 function InitByString(arr, g) { g = g.replace(/\{|\(|\)|\}|-/g, ""); g = g.toLowerCase(); if (g.length != 32 || g.search(/[^0-9,a-f]/i) != -1) { InitByOther(arr); } else { for (var i = 0; i < g.length; i++) { arr.push(g[i]); }