- 博客(33)
- 资源 (2)
- 收藏
- 关注
原创 安卓内嵌WebView并通过JS直接调用安卓类方法
首先定义一个供前端JS调用的类JavaScriptinterface(名字随便起):public class JavaScriptinterface{ Context context; public JavaScriptinterface(Context myContext) { context= myContext; } //这里的st...
2020-02-21 17:37:35 814
原创 Layui使用富文本编辑器并限制图片的显示区域
我用的是layui 2.5.6版本,需要的自行官网下载首先在HTML中定义一个文本域,并设好id值:<textarea id="content" class="layui-textarea"></textarea>然后在JS部分初始化Layui并引入layedit模块:<script> //一般直接写在一个js文件中 layui.use...
2020-02-19 18:50:20 921
原创 Layui通过质量比例压缩图片并上传
示例中使用的是Layui 2.5.6版本,需要的请到官网下载首先添加上传图片的按钮控件:<button type="button" class="layui-btn" style="margin-top: 10px;width: 100%" id="upload"> <i class="layui-icon"></i>上传图片...
2020-02-19 18:35:48 769
原创 TP5.1将文件上传至七牛云对象存储
首先通过composer下载七牛云提供的php版本sdkcomposer require qiniu/php-sdk然后在需要使用的类中引入vendor目录下的autoload.php,推荐使用ENV门面类获取绝对路径方式引用:use think\facade\Env;require Env::get("vendor_path").'/autoload.php';use Qiniu\A...
2020-02-19 18:25:54 621 1
原创 安卓RefreshLayout实现下拉刷新上滑加载以及数据去重的列表页
在项目中app的build.gradle添加以下依赖://RefreshLayoutimplementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0'implementation 'com.scwang.smartrefresh:SmartRefreshHeader:1.1.0'//glide用于加载item中的图片imp...
2020-02-08 20:27:45 812 1
原创 安卓Banner+Glide实现轮播图及数据缓存以离线加载
首先在app中的build.gradle中添加以下依赖,banner为轮播图框架,glide为图片加载框架。implementation 'com.youth.banner:banner:1.4.9'implementation 'com.github.bumptech.glide:glide:4.7.1'annotationProcessor 'com.github.bumptech.gl...
2020-02-08 19:29:27 836
原创 TP5.1接入小米推送SDK并推送消息到手机
首先进入小米开放平台下载PHP版本的SDK(点我进入下载页),下载后将压缩包内的php→sdk中的所有文件复制到TP5.1项目中extend中的子目录mipush中(mipush是我自己新建的空文件夹,名字随便起)SDK成功放入项目后我们要在需要使用的地方引入以下autoload.php即可,xmpush中的类都已经配置好了命名空间无需处理。这里推荐使用TP5.1提供的Env获取extend路...
2020-02-08 01:59:39 925
原创 安卓okhttpUtils下载文件(安装包)并打开(安装)实例
okhttpUtils是okhttp的一个工具包,首先在app的build.gradle中添加以下内容: implementation 'com.squareup.okhttp3:okhttp:4.3.0' implementation 'com.squareup.okio:okio:2.4.3' implementation 'com.zhy:okhttputils:2....
2020-02-03 13:00:09 3029
原创 安卓选取相册图片并裁剪后通过okhttpUtils上传服务器
okhttpUtils是okhttp的一个工具类,可以参考我的另一篇博文,这里不再赘述。首先我的示例中这个需求的应用场景是更换头像,先简单看一下页面:流程是先选择图片,引导用户进入相册或文件管理器选择图片后直接跳转到裁剪页面裁剪,并将裁剪后的图片显示到上方控件中并通过okhttpUtils上传至服务器,代码如下:uploadImg.setOnClickListener(new View.O...
2020-02-03 00:10:29 471 3
原创 安卓okhttp工具类okhttpUtils同步/异步请求实例
首先在app的bulid.gradle中引入以下三个包 implementation 'com.squareup.okhttp3:okhttp:4.3.0' implementation 'com.squareup.okio:okio:2.4.3' implementation 'com.zhy:okhttputils:2.6.2'然后在想进行网络请求的地方使用okht...
2020-02-02 23:57:54 1990
原创 安卓开发解决数据库中文本信息无法实现换行
在项目中的检查更新功能中,获取到了新版本的信息后,需要将更新日志展示出来,但是数据库中更新日志的字段为varchar类型,直接输出会将换行符原样输出,所以需要进行打散重组,数据库内容如下:完整请求回调代码如下:JSONObject jsonObject = new JSONObject(response);int code = jsonObject.getInt("code");if (...
2020-02-02 23:40:27 458
原创 TP5.1使用PHPmailer发送邮件及实战
邮件发送是项目中很常用的功能,可用作给用户发送邮箱验证码,也可用作用户工单提交,甚至可以在项目运行中发生异常时将异常信息或者作为计划任务将一段时间内的执行日志发送至运维/开发人员。这里将使用PHPmailer为例记录一下在TP5.1中从装包配环节到实现功能的过程。一、首先要确定你的PHP环境是否开启了openssl,打开你的PHP安装目录的php.ini中搜索php_openssl.dll,若e...
2019-11-16 16:33:59 1895 1
原创 ERR_UNSAFE_PORT解决以及所有非安全端口
搭建项目时需要自己配置端口信息,但是有人搭建之后会出现如下情况但是换用edge等浏览器没有问题,这是因为chorme浏览器有自己的默认非安全端口,若访问这些端口就会出现这个错误,并且所有采用chorme内核的浏览器都会这样。解决方案是更换自己项目的端口,这里列出所有chorme的默认非安全端口,请大家在搭建项目时避免使用这些端口:1, // tcpmux 7, // echo 9, /...
2019-11-13 09:41:15 11015 1
原创 Layui数据表格/搜索重加载/分条件操作/工具条监听
<div class="layui-layout layui-layout-admin" style="padding-left: 20px;"> <div class="layui-row" style="margin-top: 20px;"> //搜索开始 <form class="layui-form" action="" ...
2019-11-08 10:10:34 516
原创 TP5.1后台多条件搜索查询+原生分页保留搜索条件
首先贴上后台页面相应模块的列表页效果以及多条件搜索的表单代码前端模版采用Xamdin1.0+Layui1.0,有需要请自行下载引入。<form class="layui-form x-center" id="searchform" action="{:url('index/user/search')}" method="post"> <div class="layu...
2019-11-07 14:43:15 1104
原创 Beego控制器发送GET/POST请求并获取返回信息
//发送GET请求//url:请求地址//response:请求返回的内容func Get(url string) (response string) { client := http.Client{Timeout: 5 * time.Second} resp, error := client.Get(url) defer resp.Body.Close() if error != ...
2019-10-31 17:14:22 4179
原创 Beego使用快递100实现物流详情的查询展示
直接贴控制器方法,关键部分在代码中注释标出func (c *OrderController) ShippingDetail() { type ShippingResult struct { LengthPre int `json:"lengthPre"` ComCode string `json:"comCode"` NoPre string `json:"noPre"` ...
2019-10-24 11:26:08 4188
原创 Golang坐标系WGS84/GCJ02/BD09互转
package toolsimport ( "math")// WGS84坐标系:即地球坐标系,国际上通用的坐标系。// GCJ02坐标系:即火星坐标系,WGS84坐标系经加密后的坐标系。Google Maps,高德在用。// BD09坐标系:即百度坐标系,GCJ02坐标系经加密后的坐标系。const ( X_PI = math.Pi * 3000.0 / 180.0 ...
2019-10-17 08:49:22 2194
原创 TP5.1使用创蓝短信实现验证码的发送以及频控
代码较多所以就不做过多的文字说明了,部分说明直接作为代码注释,有问题可以评论提出用于存放短信发送日志的数据表结构: //接口返回Json数据 public function jsonOk($data='',$code=200,$msg="请求成功"){ return Json(array("code"=>$code,"msg"=>$msg,"data"=>$da...
2019-10-10 14:25:07 841
原创 Beego以登录为例实现简单Ajax交互
仅作简单逻辑处理以走通流程,无阅读难度,前端模板采用Xadmin2.0的login.html,直接贴代码:数据表user结构:控制器login.go:package controllersimport ( "github.com/astaxie/beego" "github.com/astaxie/beego/orm" "testbeego/models")type Log...
2019-10-09 18:57:39 847
原创 Beego中Api开发返回Json数据的公共方法
公共方法一般放入基类控制器中,如果你没有则可以创建一个base.go并在其中写入一个BaseController作为基类控制器:package controllersimport ( "github.com/astaxie/beego")type BaseController struct { beego.Controller}type JsonReturn struct {...
2019-10-09 14:19:14 2052
原创 Beego自定义模板函数
Beego框架为我们提供了自定义模板函数的方法(beego.AddFuncMap),需要在beego.Run前执行:package mainimport ( "github.com/astaxie/beego" "strings" _ "testbeego/routers")func main() { templateFunc() //添加模板函数要在beego.Run前执...
2019-10-09 13:57:26 728
原创 Beego利用Session实现简单的登录验证
首先需要在框架中开启Session模块,可以通过写入app.conf配置,也可以通过入口函数(main.go)配置,我这里选择后者:package mainimport ( "github.com/astaxie/beego" _ "testbeego/routers")func main() { beego.BConfig.WebConfig.Session.SessionOn...
2019-10-09 13:47:39 2828
原创 Beego用Orm查询并对应字段解析为结构体并返回带字段Json
数据库User表结构以及测试数据:控制器:package controllersimport ( "fmt" "github.com/astaxie/beego/orm" "github.com/davecgh/go-spew/spew")type IndexController struct { BaseController}type UserDb struct ...
2019-10-09 11:03:48 4675
原创 TP5.1接入支付宝实现网页/APP支付完整请求回调流程(沙箱环境)
目前互联网项目如果涉及到第三方支付模块,那么支付宝/微信无非是最好的选择,此文先以支付宝为例讲解,想了解微信支付的可以看我之后的文章,当然支付也分很多种形式,比如扫码付、当面付、声波付、调用APP付,网页直接付等等。但最常用的形式还是服务端+APP+调用支付宝APP或服务端+网页扫码/调用支付宝APP/直接支付,所以接下来我就以ThinkPHP5.1作为服务端从接入SDK到实现支付请求以及回调业务...
2019-08-27 17:40:09 6023 4
原创 TP5使用PHPExcel将数据动态导出为Excel表格
数据表导出为Excel是CMS系统中很常见的功能,PHPExcel即使已经被作者停更但是依然是一个很好的选择,首先要知道的是PHPExcel不支持Composer下载,所以我们需要去Github中手动下载并导入到TP5框架中。可以点我下载。下载好压缩包解压出来后找到Classes中的PHPExcel文件夹和PHPExcel.php,我们只需要这两个文件,接下来打开你项目中的vendor目录,在里...
2019-08-23 16:26:00 1005
原创 TP5 API开发自定义异常类+后台/API通用异常处理方案
TP5/TP5.1框架自带的异常抛出模板内容十分丰富,不仅可以得到准确的错误信息还可以定位到错误行数、代码,以及接收到的各项数据,但是这往往是开发过程中用于排查错误的方式之一,但是开发API中我们在异常处理过程中不可能将这种Html的错误信息返回,那么就需要一种方式可以很方便的用于处理各种异常抛出,例如API请求中异常抛出返回JSON,想要调试时可以返回Html给开发者,再或者是项目正式上线后同样...
2019-08-23 11:13:22 1053
原创 TP5.1使用Redis以及Windows配置Redis环境(超详细0难度)
Redis是典型的NoSql(非关系型数据库)之一,他是一个高性能的Key-Value数据库。它支持数据的持久化,官方测试读的速度是110000次/s,写的速度是81000次/s ,由于Redis提供了键过期的功能,所以现在被广泛用于缓存,合理运用缓存不仅可以提升站点访问速度还可以大幅降低数据库压力。下面我会从0开始讲解如何在你的Windows下配置好Redis环境以及Redis在TP5.1...
2019-08-12 17:50:20 3314
原创 TP5.1修改默认跳转方法(success,error)的模板页面和跳转时间
有使用过TP5的一定对这个界面不陌生,因为这是框架自带的跳转方法(success,error)界面,但是出于业务需求我们往往需要对这个界面进行美化修改,本文就说明一下如何修改TP5.1框架中的默认跳转页面、修改自动跳转时间、修改全局默认跳转时间首先我们打开框架目录中的config/app.php,这个文件存放着框架应用配置,在app.php末尾部分可以找到这样两个配置项:// 默认跳转页面对...
2019-08-08 10:29:35 3986
原创 TP5.1+Layui实现文件(图片为例)异步上传以及上传图预览
本文讲解将以实际开发项目中后台添加用户模块中使用到的Layui异步文件上传以及上传图预览功能为例如果不想Listen Talk只想Show Me Code的话直接拉到文章最后我将贴上添加用户模块完整的模版文件和控制器相应方法代码首先贴张图看一下实际效果:此模块使用的是Layui的样式,接触过Layui的应该知道Layui自带的文件上传功能无法随表单其他元素一起提交给服务器,所以这里需要...
2019-08-07 11:27:46 3161 4
原创 TP5.1使用JWT进行Token令牌生成与验证
传统互联网项目在实现保持登录状态、退出登录、接口请求等功能时会使用Session,但是众所周知Session数据在产生后会存储与服务器端,所以当用户量达到一定程度会相应影响到服务器的性能,且Session在前后端分离的项目中或是多服务器项目中的支持不是很好。但是Token不会产生这些问题,服务器端对Token只有生成和验证操作,不会存放数据,针对前后端分离的项目,包括手机APP和当前热门的小程序的...
2019-08-05 16:24:21 9149
原创 TP5.1框架中百度富文本编辑器UEditor的使用
在实际项目开发中最常使用到的工具之一就是富文本编辑器,使用富文本编辑器可以实现所见即所得的效果,且所有富文本编辑器里的内容(包括图片,视频,音乐等文件)全部可以带格式的存入数据库中且只需占用一个字段。当前市面上有许多可供选择的富文本编辑器,虽然百度的UEditor已在2016年即停止更新且界面风格较老,但是其属性,功能十分强大,所以仍是当前富文本编辑器里最好的选择之一。现在就开始在ThinkPH...
2019-08-02 17:39:00 3091
原创 TP5.1框架下给H5中日期时间选择器datetime-local设置默认值
在H5中我们可以通过将input标签的type属性设置为“datetime-local”的方式来获取一个可以精确到小时分钟的简易日期时间选择器,但是实际需求中往往需要设置一个默认值,比如将选择器设置为当前时间或者在编辑界面中设置数据库中已有的时间戳数据,此时如果直接通过TP5.1模板变量的时间戳转换赋值value则无法将时间设为选择器的默认值。以下是将获取到的时间戳转换格式后直接赋值给选择器后的...
2019-08-02 15:04:28 3558
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人