基于snipe-it v5.1.2开源资产管理软件二次开发安卓端管理app

snipe-it v5.1.2这个软件安装方法,看我之前的文章,今天来教大家用e4a中文编程软件编写安卓端的登录,后面再编写新建资产,编辑资产,扫描资产,查询资产,审计资产,借出资产,回收资产,打印资产标签,等功能。
用到的软件 snipe-it v5.1.2 + e4a6.7版 + 天天模拟器 + 谷歌浏览器
首先把上面的软件安装好,这里不提供安装包。
新建一个工程,命名为it资产管理
在这里插入图片描述
在这里插入图片描述
设置保存位置
在这里插入图片描述
在组件区把,标签,按钮,多线程(系统类组件),编辑框,密码编辑框控件 添加到界面上
在这里插入图片描述
在这里插入图片描述
把自带不需要用到的东西删除掉,然后再看图设置每个控件的参数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
双击工程栏的属性,设置界面的一些参数
在这里插入图片描述
看图设置,然后点击保存修改
在这里插入图片描述
然后点击代码区,编写代码
在这里插入图片描述
把代码区,不要的代码删除掉,红框中全部删除
在这里插入图片描述
在这里插入图片描述
然后键入代码,顶格栏定义一个启动时间变量

变量 启动时间 为 长整数型     																	'创建一个启动时间为长整数型的变量

下面设置,如果点击返回键,在2秒内点击两次,就退出软件,否则提示再按一次退出程序

事件 主窗口.按下某键(键代码 为 整数型,传址 屏蔽 为 逻辑型)          						  '主窗口有按任意实体按钮触发以下事件
	如果 键代码 = 返回键 则            														  '如果键代码等于返回键则执行以下事件
		如果 取启动时间() - 启动时间 >2000 则    					 						  '如果按放回键只按一次,就会弹出以下提示,如果按两次中间间却小于2秒则结束程序
			弹出提示("再按一次退出程序")
			启动时间 = 取启动时间()
		否则 
			结束程序()
		结束 如果
	结束 如果
结束 事件

完整是下面这样的
在这里插入图片描述
打开谷歌浏览器,按f12,设置抓包,设置好后刷新登录界面,然后点击login这包查看数据
在这里插入图片描述
在这里插入图片描述
把红框数据记录下来,然后填写账号密码登录进去,看看用到哪些数据
在这里插入图片描述
点击登录后的login包,把红框内容记录下来,这里用到的登录方式是post请求,请注意,然后往下拉,看看需要用到哪些请求数据
在这里插入图片描述
点击view source,然后把原始数据记录下来,红框记录下来
在这里插入图片描述
分析记录下来的数据,可以看到_token=字段是服务器返回的数据,prevent_autofill=为空,password_fake=也为空不用管,剩下就是账号字段(username=)和密码字段(password=)
在这里插入图片描述
要取得_token=字段的数据先注销系统,然后右键登录界面,查看网页源代码
在这里插入图片描述
可以看到_token= 这个字段的数据是由get请求后,服务器返回的数据,我们只要把这段数据取出来使用就好了
在这里插入图片描述
代码这样写


	变量 启动时间 为 长整数型     																	'创建一个启动时间为长整数型的变量
	变量 返回请求 为 文本型                                                              			'创建一个返回请求为文本型的变量
	变量 返回请求1 为 文本型 																		'创建一个返回请求1为文本型的变量
事件 主窗口.创建完毕()
	多线程1.开始取网页源码("http://172.16.32.128/login","UTF-8") 								 'get方式取网站源码
	
结束 事件

事件 多线程1.取网页源码完毕(源码 为 文本型)           										 '多线程取网页源码的结果放回在源码里面
	返回请求	= 取指定文本2(源码,"<!-- Content -->","<!-- this is a hack to prevent Chrome from trying to autocomplete fields -->")        '取it管理系统登录时需要用到的_token数据,然后赋给返回请求,后继会用到
	返回请求1 = 取指定文本2(返回请求,"value=\"","\" />")                                                                      '取it管理系统登录时需要用到的_token数据,然后赋给返回请求,后继会用到
	
结束 事件




事件 主窗口.按下某键(键代码 为 整数型,传址 屏蔽 为 逻辑型)          						  '主窗口有按任意实体按钮触发以下事件
	如果 键代码 = 返回键 则            														  '如果键代码等于返回键则执行以下事件
		如果 取启动时间() - 启动时间 >2000 则    					 						  '如果按放回键只按一次,就会弹出以下提示,如果按两次中间间却小于2秒则结束程序
			弹出提示("再按一次退出程序")
			启动时间 = 取启动时间()
		否则 
			结束程序()
		结束 如果
	结束 如果
结束 事件

取得_token= 这个字段的数据后,现在正式开始写登录代码,完成如下

	变量 判断登录1 为 整数型   																		 '创建一个判断登录为整数型的变量
	变量 判断登录 为 整数型  
	变量 启动时间 为 长整数型     																	'创建一个启动时间为长整数型的变量
	变量 返回请求 为 文本型                                                              			'创建一个返回请求为文本型的变量
	变量 返回请求1 为 文本型 																		'创建一个返回请求1为文本型的变量
事件 主窗口.创建完毕()																				'主窗口创建完毕执行的事件
	多线程1.开始取网页源码("http://172.16.32.128/login","UTF-8") 								 '取网站源码
	
结束 事件

事件 多线程1.取网页源码完毕(源码 为 文本型)           										 '多线程取网页源码的结果放回在源码里面
	返回请求 = 取指定文本2(源码,"<!-- Content -->","<!-- this is a hack to prevent Chrome from trying to autocomplete fields -->")        '取it管理系统登录时需要用到的_token数据,然后赋给返回请求,后继会用到
	返回请求1 = 取指定文本2(返回请求,"value=\"","\" />")                                                                      '取it管理系统登录时需要用到的_token数据,然后赋给返回请求,后继会用到
	
结束 事件



事件 按钮1.被单击()                                                                        '按钮1点击触发的事件,就是登录按钮触发的事件
	如果 编辑框1.内容="" 则        														    '如果编辑框1内容为空则执行以下事件
		弹出提示("账号不能为空")        														'弹出提示不能用空账号登录系统
	否则
		如果 密码编辑框1.内容="" 则	    													    '如果密码编辑框1内容为空则执行以下事件
			弹出提示("密码不能为空")      														    '弹出提示不能用空密码登录系统
		否则                          															'账号密码都不为空则执行下面事件
	    	显示进度对话框("正在登录…")    													'显示一个进度框提示正在登录
	    	变量 提交地址 为 文本型       														'设置一个文本型的变量
	    	变量 提交数据 为 文本型      													    '设置一个文本型的变量
	    	提交地址 = "http://172.16.32.128/login"      										'把一个网址赋给提交地址
	    	提交数据 = "_token="&返回请求1&"&prevent_autofill=&password_fake=&username="&编辑框1.内容&"&password="&密码编辑框1.内容&""   'it资产管理系统登录需要用到的数据赋给提交数据
	    	多线程1.开始发送网络数据(提交地址,提交数据,"UTF-8")  							    '用post方式 登录 it资产管理系统 数据和地址都包含在里面了
		结束 如果	
	结束 如果
	
	
结束 事件


事件 多线程1.发送网络数据完毕(结果 为 文本型)      											'多线程登录的结果在结果里面放回
	关闭进度对话框()	    																   '把进度条给关闭
	如果 结果="" 则                    													    '如果结果为空则执行以下结果          													 
		弹出提示("网络出错,请退出重新登录")	 												    '网络出错,退出系统再登录
	否则                      																'如果结果不为空则执行以下结果
		判断登录 = 寻找文本(结果,"hidden-xs",0)    											'查找文本,如果结果里面包含了hidden-xs,则返回0,找不到放回-1  注:如果结果里面包含hidden-xs代表登录成功
		如果 判断登录 = -1 则   														    '如果判断登录等于 -1 则执行以下 
			弹出提示("网络错误或账号密码错误")   										    '网络出错,或者账号密码错误
			多线程1.开始取网页源码("http://172.16.32.128/logout","UTF-8")   			    '刷新登录页面的数据,解决下次登录数据过期的问题
		否则               																    '如果判断登录不为-1  则执行以下数据
	    	判断登录1 = 寻找文本(结果,"表单会话已过期",0)  								    '查找文本,如果结果里面包含了表单会话已过期,则返回0,找不到放回-1 
	    	如果 判断登录1 = -1 则         												    '如果判断登录为-1,代表找不到会话过期的提示,代表登录成功
				
					'切换窗口(读取窗口("窗口1")) 											'切换到窗口1页面
					编辑框2.内容=结果
			否则																			'如果判断登录不为-1,代表找到会话过期的提示,登录不成功
				弹出提示("网络错误或账号密码错误") 										     '网络出错,或者账号密码错误
				多线程1.开始取网页源码("http://172.16.32.128/logout","UTF-8")	   			 '刷新登录页面的数据,解决下次登录数据过期的问题
			结束 如果
		结束 如果
	结束 如果
	
结束 事件




事件 主窗口.按下某键(键代码 为 整数型,传址 屏蔽 为 逻辑型)          						  '主窗口有按任意实体按钮触发以下事件
	如果 键代码 = 返回键 则            														  '如果键代码等于返回键则执行以下事件
		如果 取启动时间() - 启动时间 >2000 则    					 						  '如果按放回键只按一次,就会弹出以下提示,如果按两次中间间却小于2秒则结束程序
			弹出提示("再按一次退出程序")
			启动时间 = 取启动时间()
		否则 
			结束程序()
		结束 如果
	结束 如果
结束 事件

编写完成后,编译成apk文件,测试一下
在这里插入图片描述
打开天天模拟器,然后把刚生成的apk文件安装在模拟器上面,测试一下
在这里插入图片描述
可以看到,返回的数据已经是控制面板里面的数据了,证明登录成功,后面再讲解怎么查询资产。修改资产之类的,界面是这样的
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
感兴趣的可以给我留言,有不懂得也可以问我,谢谢!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值