自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

白玉梁的专栏

不积跬步无以至千里

原创 用React实现小Q聊天机器人

前几篇讲过用Vue实现小Q聊天机器人,既然用了Vue,那React自然也是少不了的,本项目实现效果与vue实现的效果完全一样:GitHub源码:https://github.com/baiyuliang/Qrobot_React进入正题之前,我们来聊聊前端三剑客 angular,react,vue!这三种框架的面世时间:angular>react>vue,angular出世这么早,但是为什么我们在国内常见的前端开发基本都是用的react或者vue呢?主要是angular的版本升级出现了断

2020-08-06 17:45:44 58

转载 还分不清 Cookie、Session、Token、JWT?

原文链接:https://mp.weixin.qq.com/s/gfPmK2IL_E64sDMOEFtPuQ什么是认证(Authentication)通俗地讲就是验证当前用户的身份,证明“你是你自己”(比如:你每天上下班打卡,都需要通过指纹打卡,当你的指纹和系统里录入的指纹相匹配时,就打卡成功)互联网中的认证:用户名密码登录邮箱发送登录链接手机号接收验证码只要你能收到邮箱/验证码,就默认你是账号的主人什么是授权(Authorization)用户授予第三方应用访问该用户某些资源的权限你在安

2020-08-05 14:04:59 81

原创 用Vue实现小Q聊天机器人(四)

本项目所用的闲聊接口为腾讯开放平台提供,具体可参考:用Flutter实现小Q聊天机器人(五)或者官方文档:https://ai.qq.com/doc/nlpchat.shtml说到前端网络请求,就不得不说跨域问题了,本项目仍然会面临跨域问题而导致无法去直接请求接口,一般的跨域解决办法有这么几种:jsonp,后端允许跨域,代理。由于本项目环境无法使用jsonp,所以就剩下后端允许跨域和代理两种办法了,让腾讯去为我们允许跨域?显然是不可能的,那么就只能用代理了吗?其实还有一种解决办法就是proxy,网上

2020-07-02 09:22:07 475

原创 用Vue实现小Q聊天机器人(三)

布局大致是这样的:我们至少要定义三个组件:1.主界面组件:Chat.vue2.左侧对话框item组件:LeftItem.vue3.右侧对话框item组件:RightITem.vue可能有同学觉得,这个简单的小项目又不用路由,所以根本不需要去定义这么多组件,直接在App.vue里就可以全部搞定!这个确实是的,但这样做,会导致项目的可读性变差,而且给人一种非常粗鲁的感觉,一点也不优雅!Chat.vue:<template> <div class="container"&

2020-07-02 09:21:37 477 1

原创 用Vue实现小Q聊天机器人(二)

首先,我们可以先看一下本项目的最终实现效果:项目完整结构:接下来,开始着手修改刚刚创建完成的项目!打开main.js,引入相关插件,本项目的网络请求插件为axios,ui为vant。关于axios的使用,第一种办法可以结合vue-axios使用:import axios from "axios"import VueAxios from 'vue-axios'Vue.use(VueAxios, axios.create({ baseURL: 'http://xxx.xxx.xxx'

2020-07-02 09:20:38 1474

原创 用Vue实现小Q聊天机器人(一)

前面讲过使用Flutter实现小Q聊天机器人系列:用Flutter实现小Q聊天机器人(一)用Flutter实现小Q聊天机器人(二)用Flutter实现小Q聊天机器人(三)用Flutter实现小Q聊天机器人(四)用Flutter实现小Q聊天机器人(五)GitHub:https://github.com/baiyuliang/Qrobot_Flutter本篇则讲解如何使用Vue实现小Q聊天机器人!Vue:目前最流行的前端框架,注意,它仅仅是开发框架,而html、css、js则是前端基础,可以不懂

2020-07-02 09:20:17 505

原创 RxJava的并发实现

我们在开发App过程中,常常遇见这种需求,例如首页,仅一个界面就要请求3个甚至更多的接口,更变态的是这些接口必须按顺序请求,来以此展示返回结果,那么这样我们就无法用普通的并发去同时请求接口了,因为我们无法预知各个接口的请求完成时间,普通的也是最简单的办法就是依次请求接口了,A接口请求完成->B接口请求完成->C接口...简单粗暴有木有?那么有没有更优雅的办法去解决这种需求呢?那必须有:**RxJava**!

2020-06-28 15:30:43 191

原创 Linux部署Nodejs

首先,下载安装操作linux远程服务器的两大工具Xshell和Xftp,Xshell为linux命令行工具,Xftp为文件传输工具,用法自行搜索。步骤:1. 安装nodejs(linux版),官方地址:http://nodejs.cn/download/,下载压缩包node-v14.4.0-linux-x64.tar.xz2. 上传路径 /home/自定义文件夹名/node/node-v14.4.0-linux-x64.tar.xz3. #cd node目录下4. 解压:#xz -d node-v

2020-06-19 10:32:06 224

原创 Kotlin+MVVM+Retrofit+协程+ViewBinding+EventBus

MVVMhttps://github.com/baiyuliang/MVVMKotlin+MVVM+Retrofit+协程+ViewBinding+EventBus注意:使用ViewBinding需要AndroidStudio版本为4.0+项目框架整体架构图:本框架的特点:1.使用Kotlin语言2.使用MVVM+协程开发模式,相较于常用的MVP+RXJava开发模式,会减省大量的MvpView的创建,以及大量的接口回调,并且不再需要Presenter的注册和注销,减少内存泄漏风险3.Vi

2020-06-01 15:43:08 4610 2

原创 js原生实现轮播图(二)

接上一篇,第一个问题:我们要考虑图片数量,当图片数量<=1时,不显示指示器: //第二步:添加指示器 var indicator_li = null; if (banner_li.length > 1) { var ul_indicator = document.getElementById("ul_indicator"); var indicatorHtml = ""; for (let i = 0; i < ban

2020-05-15 11:42:43 181

原创 js原生实现轮播图(一)

轮播图一般包含两部分,即需要轮播的图片,和底部的指示器,那么首先,自然是h5+css布局:html:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Co

2020-05-15 11:09:01 419

原创 XMPP+Openfire4.5.1+Smack4.3.4+MySql

关于XMPP,14年的时候就已经写过几篇博客了,服务器使用Openfire,安卓客户端使用asmack.jar,不过asmack现在已经停止维护,而Openfire和配套的smack.jar则一直在更新,所以这篇博客主要来写如何用最新的openfire4.5.1+smack4.3.4完成XMPP的初步实现!效果如下图:上面为安卓客户端和PC端的Spark实现即时聊天,当然可以手机和手...

2020-04-30 10:30:56 319

原创 MVVM+Retrofit+Kotlin网络框架封装

上篇文章讲了MVVM入门,网络请求部分非常简单和原始,本篇则是上一篇的进阶,主要讲解如何在vm中使用协程结合Retrofit进行网络框架的封装。Retrofit自不必说,非常优秀的网络请求框架,说到Retrofit就不得不提RxJava,RxJava是什么?官方定义:一个在jvm上使用可观测的序列来组成异步的,基于事件的程序的库,它具有良好的链式编程风格,以及强大的异步处理能力,在近几年的移...

2020-04-25 15:43:41 571

原创 MVVM+ViewBinding+Kotlin入门

本篇博客不作原理性分析,仅对还没有接触过MVVM,viewbinding,甚至说是kotlin的同学一个入门练习项目,通过此篇博客,可以对MVVM架构,以及最近比较火的ViewBinding有一个初步认识。先说Kotlin,Kotlin1.0还没正式发布的时候就已经开始研究了,但到现在也没有真正的去用kotlin写过项目,原因很简单,公司平时做项目基本都用的java,而且当时很多第三方库也都是用...

2020-04-24 17:46:48 578 2

原创 AndroidQ文件存储适配

安卓Q即安卓10.0已经发布多时,不过大多数开发者并没有真机去测试,最近各厂商系统陆续推送了10.0的升级,因此必须要考虑去适配10.0系统了!关于10.0系统权限方面的改变,大家可以搜索相关文章,这里主要讲一下存储权限的变化,10.0之前我们在保存或者查询文件时,首先需要申请存储权限: <uses-permission android:name="com.android.laun...

2019-12-27 17:47:55 2410 3

原创 语音朗读带进度高亮显示

语音朗读文章,支持高亮显示,自动滚动播放位置,支持播放进度显示,支持进度条拖动朗读位置!语音SDK使用自科大讯飞!github:https://github.com/baiyuliang/VoiceSpeekHighLight...

2019-10-10 17:51:31 439

原创 用Flutter实现小Q聊天机器人(五)

用Flutter实现小Q聊天机器人(一)用Flutter实现小Q聊天机器人(二)用Flutter实现小Q聊天机器人(三)用Flutter实现小Q聊天机器人(四)GitHub:https://github.com/baiyuliang/Qrobot_Flutter前几篇我们基本实现了一个简单的聊天界面,也基本掌握了如何通过Flutter去完成这样一个布局及功能的实现,但离我们标题所需要实现...

2019-03-25 12:05:40 1577 1

原创 用Flutter实现小Q聊天机器人(四)

经过前几篇的学习,我们对Flutter基本的布局知识有了一定的了解(当然,这需要大家多练习,多动手,才能熟练掌握),那么本篇我们将实现一个简单的聊天界面!仍然先用最简单的代码实现:class _MyHomePageState extends State<MyHomePage> { var textEditingController = TextEditingControlle...

2019-03-22 15:59:41 1136

原创 用Flutter实现小Q聊天机器人(三)

上一篇,我们实现了一个文本+输入框的垂直排列布局,那么本篇,我们来学习如何实现一个Listview;依然用最简单的代码实现:class _MyHomePageState extends State<MyHomePage> { var imageModellList = List<ImageModel>(); @override void initStat...

2019-03-21 18:52:00 902

原创 用Flutter实现小Q聊天机器人(二)

接上篇,我们新建一个Flutter Project:flutter项目中有android、ios、lib等目录,可能刚开始有不少同学建完项目,就直奔android目录准备开发了,但其实,flutter的编程目录是在lib下的,所有编程文件后缀都为.dart,我们也可以把其看做安卓开发时.java以及java目录,可以更好的理解!其中的pubspec.yaml这个文件很重要,类似于安卓开发时a...

2019-03-21 18:51:42 996

原创 用Flutter实现小Q聊天机器人(一)

前几篇博客中介绍了一个开源项目-小Q聊天机器人,开发语言java,那么接下来这几篇博客,我将为大家介绍如何用Flutter实现一个聊天机器人!Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面,开发语言Dart,Dart是谷歌推出的编程语言,语法像是c,js,java的结合体,本人更觉得它跟java非常相似,像是java的升级版,前两年都在说kotl...

2019-03-21 18:51:19 1751

转载 RxJava 沉思录(四):总结

转自https://juejin.im/post/5b8f536c5188255c352d3528我们在本系列开篇中,曾经留了一个问题:RxJava 是否可以让我们的代码更简洁?作为本系列的最后一篇分享,我们将详细地探讨这个问题。承接前面两篇 “时间维度” 和 “空间维度” 的探讨,我们首先从 RxJava 的维度 开始说起。RxJava 的维度在前面两篇分享中,我们解读了很多案例,最...

2018-10-10 15:22:02 201

转载 RxJava 沉思录(三):时间维度

转自https://juejin.im/post/5b8f536c5188255c352d3528在上一篇分享中,我们应该已经对 Observable 在空间维度上重新组织事件的能力 印象深刻了,那么自然而然的,我们容易联想到时间维度,事实上就我个人而言,我认为 Observable 在时间维度上的重新组织事件的能力 相比较其空间维度的能力更为突出。与上一篇类似,本文接下来将通过列举真实的例子...

2018-10-10 15:20:30 215

转载 RxJava 沉思录(二):空间维度

转自https://juejin.im/post/5b8f536c5188255c352d3528在上一篇分享中,我们澄清了目前有关 RxJava 的几个最流行的误解,它们分别是:“链式编程是 RxJava 的厉害之处”,“RxJava 等于异步加简洁”,“RxJava 是用来解决 Callback Hell 的”。在上一篇的最后,我们了解了 RxJava 其实给我们最基础的功能就是帮我们统一...

2018-10-10 15:17:56 167

转载 RxJava 沉思录(一):你认为 RxJava 真的好用吗?

转自https://juejin.im/post/5b8f536c5188255c352d3528本人两年前第一次接触 RxJava,和大多数初学者一样,看的第一篇 RxJava 入门文章是扔物线写的《给 Android 开发者的 RxJava 详解》,这篇文章流传之广,相信几乎所有学习 RxJava 的开发者都阅读过。尽管那篇文章定位读者是 RxJava 入门的初学者,但是阅读完之后还是觉得...

2018-10-10 15:14:28 211

原创 仿微信、QQ评论点击事件

本文是针对含有类似于QQ空间、微信朋友圈模块的App,在评论布局以及评论者的点击事件部分,仿照qq微信的处理逻辑来写的一篇思路总结文章,不知道具体效果的可以打开微信朋友圈,在有评论的地方点击几下试试效果,并也同时思考下如果让你做,该怎么实现?! 先来看下具体要实现的效果:效果一: 1.用户名和评论内容字体颜色区分; 2.用户名的点击事件; 3.整条评论的点击事件; 4.用户名的点击背景

2017-10-30 12:39:23 1679 5

原创 Android7.0文件共享问题(FileUriExposedException)

在安卓7.0以上机型,在使用Uri uri=Uri.fromFile();会报android.os.FileUriExposedException: file:///storage/emulated/xxx异常,比如拍照时,常用的写法是:Intent openCameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

2017-04-24 13:13:03 2562

原创 安卓TextView完美展示html格式代码

对于TextView展示html格式代码,最简单的办法就是使用textview.setText(Html.fromHtml(html));,即便其中有img标签,我们依然可以使用ImageGetter,和TagHandler对其中的图片做处理,但用过的都知道,效果不太理想,甚至无法满足产品简单的需求,那么今天博主就来为大家提供一个完美的解决方案!html代码示例:效果图: 首先,要介绍一个开源项目

2016-12-09 13:57:35 26181 5

转载 如何构建Android MVVM 应用框架

概述说到Android MVVM,相信大家都会想到Google 2015年推出的DataBinding框架。然而两者的概念是不一样的,不能混为一谈。MVVM是一种架构模式,而DataBinding是一个实现数据和UI绑定的框架,是构建MVVM模式的一个工具。之前看过很多关于Android MVVM的博客,但大多数提到的都是DataBinding的基本用法,很少有文章仔细讲解在Android中是如何

2016-11-21 09:52:25 1558 1

原创 安卓全局异常捕获--自定义错误详情页

Android自定义处理崩溃异常 http://blog.csdn.net/baiyuliang2013/article/details/38681765应用中的崩溃问题对于APP开发者是最头疼的问题了,虽然应用上线前会经过严格测试,但总会有漏网之鱼,使用过程中冷不丁的弹出一个“xxx已停止运行或xxx无响应是否关闭”甚是恼人,不但用户体验差,而且异常还难以捕获,对bug修复带来难度!虽然市面上有不

2016-06-13 14:26:48 2776 4

原创 RecyclerView嵌套RecyclerView

ListView嵌套GridView http://blog.csdn.net/baiyuliang2013/article/details/42646289RecyclerView下拉刷新上拉加载(一)http://blog.csdn.net/baiyuliang2013/article/details/51506036RecyclerView下拉刷新上拉加载(二)http://blog.csdn

2016-05-27 18:26:25 37371 28

原创 RecyclerView下拉刷新上拉加载(三)—对Adapter的封装

RecyclerView下拉刷新上拉加载(一) http://blog.csdn.net/baiyuliang2013/article/details/51506036RecyclerView下拉刷新上拉加载(二) http://blog.csdn.net/baiyuliang2013/article/details/51506354RecyclerView嵌套RecyclerView http:/

2016-05-27 14:57:15 3562

原创 RecyclerView下拉刷新上拉加载(二)

listview下拉刷新上拉加载扩展(一) http://blog.csdn.net/baiyuliang2013/article/details/50252561 listview下拉刷新上拉加载扩展(二)-仿美团外卖 http://blog.csdn.net/baiyuliang2013/article/details/50253135 listview下拉刷新上拉加载扩展(三)-仿最新版美团外

2016-05-26 13:05:05 2422 3

原创 RecyclerView下拉刷新上拉加载(一)

listview下拉刷新上拉加载扩展(一) http://blog.csdn.net/baiyuliang2013/article/details/50252561 listview下拉刷新上拉加载扩展(二)-仿美团外卖 http://blog.csdn.net/baiyuliang2013/article/details/50253135 listview下拉刷新上拉加载扩展(三)-仿最新版美团外

2016-05-26 12:42:58 8477 5

原创 音乐API

博主在前几篇博客中介绍了小Q聊天机器人的源码及其包含的一些功能,并在应用市场上上线了一个版本,其中有一个功能是歌曲搜索,即输入格式为“歌曲#歌曲名#歌手”即可搜索出相应的歌曲并进行播放,不过最近两天在使用时发现一只提示“歌曲获取失败”,于是在代码中打印了一些log,发现该音乐搜索api(抓自百度音乐盒)失效,其实也不算失效,只是返回的数据为空了!不知道是间歇性的,还是百度发现后封了,或者更换了链接?

2016-05-25 11:03:25 6038 1

原创 开源项目——小Q聊天机器人V1.5

小Q聊天机器人V1.0 http://blog.csdn.net/baiyuliang2013/article/details/51386281 小Q聊天机器人V1.1 http://blog.csdn.net/baiyuliang2013/article/details/51395163 小Q聊天机器人V1.2 http://blog.csdn.net/baiyuliang2013/artic

2016-05-20 13:34:07 8204 23

原创 开源项目——小Q聊天机器人V1.4

小Q聊天机器人V1.0 小Q聊天机器人V1.1 小Q聊天机器人V1.2 小Q聊天机器人V1.3 小Q聊天机器人V1.5GitHub:https://github.com/baiyuliang/QRobot注意:发送消息后如果小Q没回答,或回答“亲爱的,当天请求次数已用完”,表示当天的api调用次数已经超过限制次数,大家可以自己申请apikey用于测试!(音乐和位置功能不受影响)V1.4版本中

2016-05-19 15:30:57 12252 3

原创 开源项目——小Q聊天机器人V1.3

小Q聊天机器人V1.0 小Q聊天机器人V1.1 小Q聊天机器人V1.2GitHub:https://github.com/baiyuliang/QRobot1.3版本新增内容:1.首页->资讯,并增加菜单选项,来选择不同资讯:菜单效果参考自开源项目:https://github.com/Karumi/ExpandableSelector2.增加内部WebView:首页banner,及资讯列表点击

2016-05-18 13:32:55 4892 1

原创 开源项目——小Q聊天机器人V1.2

小Q聊天机器人V1.0 小Q聊天机器人V1.1 小Q聊天机器人V1.3GitHub:https://github.com/baiyuliang/QRobot小Q聊天机器人1.2版本中加入语音识别及语音合成功能,语音识别即将语音转化为文字输出,语音合成即将文字以语音的形式朗读出来!语音sdk使用的是科大讯飞语音SDK,在国内第三方语音识别sdk中,科大讯飞还是算佼佼者了,有兴趣的朋友可以研究下!看

2016-05-16 14:55:49 6452 2

原创 开源项目——小Q聊天机器人V1.1

小Q聊天机器人V1.0 http://blog.csdn.net/baiyuliang2013/article/details/51386281 小Q聊天机器人V1.1 http://blog.csdn.net/baiyuliang2013/article/details/51395163 小Q聊天机器人V1.2 http://blog.csdn.net/baiyuliang2013/artic

2016-05-13 14:37:37 4699 1

提示
确定要删除当前文章?
取消 删除