找回密码
 立即注册

QQ登录

只需一步,快速开始

luolanqiang 活字格认证

高级会员

136

主题

456

帖子

1398

积分

高级会员

积分
1398

微信认证勋章活字格认证

luolanqiang 活字格认证
高级会员   /  发表于:2020-9-2 23:08  /   查看:11693  /  回复:27
本帖最后由 luolanqiang 于 2020-9-4 10:25 编辑

有这么一个场景:用二维码张贴设备标签,用手机扫码读取设备信息,听起来似乎很简单,但一做就杯具了~~
1、必须支持匿名访问;
2、不限客户端访问,例如微信、QQ、百度客户端......凡是你能想到的(其实大多数人习惯用微信扫一扫)
那么问题就来了:
光识别一个死的信息很多时候没有价值,而且不美观,我们要做的是获取设备的动态信息,这些信息当然是在数据库中提取,甚至在页面上用超链接去查询更多的相关信息,那么首先要连接到我们设计好的设备信息页面,然后用设备ID去查询相关信息。那么二维码肯定是一个URL地址,指向设备信息页面,但是设备ID如何传入就成了问题,这时候有两个方案:
1、通过手机扫码进入页面,然后手工输入设备ID查询;
2、通过手机扫码进入页面,然后从页面再次调用手机扫码扫入设备ID查询(相当于是两个二维码),这个方式本身就比较繁琐,而且,调用手机扫码,目前论坛提供的方法有企业微信调用、微信公众号调用、钉钉调用、活字格APP调用,可问题是,我们没有办法限制别人使用什么客户端,蛋大了吧?我们的应用场景是生产出的产品张贴二维码,领导检查的时候,可以扫描获取这个产品的相关信息(比如桥梁上的预制梁),那最好是不管用什么客户端,能扫的都行。
以上两个方法都不是最佳的,折腾了半天,解决了这个问题,只需要扫一次。

1、使用“#”拼接URL和设备ID,例如HTTP//XXXX.COM#123456,生成二维码(XXXX.COM代表设备信息查询页面地址,123456为设备ID);“#”之后的内容对URL没有影响,它是多余的,实际上浏览器的请求还是XXXX.COM,还是跳转到查询页面;
2、在页面上利用JS代码获取当前URL(包含有设备ID),赋值给一个单元格,假定这个单元格命名为"abc",页面加载命令加载如下代码:
var test = window.location.href
Forguncy.Page.getCell('abc').setValue(test)
3、这时候名称为abc的单元格将得到这个拼接的URL,利用一个函数去获取这个ID,假设这个ID是固定位数的那么直接用RIGHT函数好了,如果不是的话,先find("#",abc)可以得到#所在的位置,然后len(ABC)得到整个URL的长度,RIGHT(abc,len(ABC)-find("#",abc))即可得到设备ID。
4、加载设备列表到页面,查询条件为上边得到的这个ID。
解决问题,一扫终决。

评分

参与人数 3金币 +666 满意度 +10 收起 理由
王鸿辉 + 5 很给力!
Simon.hu + 666 赞一个!
白菜贝贝 + 5

查看全部评分

27 个回复

倒序浏览
zzwange
中级会员   /  发表于:2020-9-3 08:43:53
沙发
感谢大佬分享!
回复 使用道具 举报
Simon.hu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2020-9-3 10:12:21
板凳
流弊~
回复 使用道具 举报
feng2575悬赏达人认证 活字格认证
银牌会员   /  发表于:2020-9-4 13:50:26
地板
牛叉 大神
回复 使用道具 举报
Tom猫
高级会员   /  发表于:2020-9-4 16:21:16
5#
这个很有用哦
回复 使用道具 举报
sz_xd
金牌服务用户   /  发表于:2020-9-6 11:19:08
6#
非常感谢楼主无私分享,谢谢!
回复 使用道具 举报
mfkpie8
论坛元老   /  发表于:2020-9-6 18:57:37
7#
SQL Server2016 原生支持JSON  按原值存储!用SQL出来是json的格式 的即可
回复 使用道具 举报
hubei333
高级会员   /  发表于:2020-9-6 21:14:09
8#
都是大神!
回复 使用道具 举报
Simon.hu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2020-9-11 12:26:48
9#
咱这里必须藏龙卧虎啊~
回复 使用道具 举报
紫色幽魂
金牌服务用户   /  发表于:2020-10-18 15:11:04
10#
用到了用到了
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部