跨系统
关于项目:考试系统大翻版,两个独立完整系统,以A为主体 由菜单跳转B考试系统
-
跨系统跳转:由于不在一个项目内,无法路由拦截,通过windows.location.href 获取跳转连接携带过来的参数,请求当前系统接口获取token,这里要注意条件判断区分是否是系统内部跳转 进行下一步操作...
-
跳转失败或token过期:这种情况正常应该返回登录页,这里由于以A系统为主体,不能打开B系统登录页面,第一种方法通过某个连接给A系统一个跳转,A系统做判断清除token返回他的登录页面,由于A开发人员太懒(我胡说)我采取第二种不完美方法清除token弹框提示(本意是关闭当前浏览器页面,由于google等浏览器版本升级后无法通过js关闭当前页面不得已为之)
-
修复bug
1.政府内网环境频繁切换账户经常会跳出弹框提示,而本地和公司内网测试几乎很难复现:
原因:将清除token的操作和获取新的token后再调取接口生成token放在一起,而实际生成token是异步的并不会一直 按照从上往下执行的顺序来 将清除token的操作置于调取接口获取token成功后 清除 然后 给token重新赋值2.根据对方要求做了一个FTP预览功能,通过iframe打开一个加密地址读取ftp中对应的文件,预览excel文件时第一次打开正常,第二次提示访问被拒绝
原因:路径需要加密且每一次生成新路径不能重复,根据报错状态码302,及请求中的这个 If-None-Match 比较特殊的玩意经 过重重推倒(大概猜了一下)路径可能是用的缓存,针对这个问题咋解决呢? 生成路径 拼接时间戳就好啦
跨端
关于项目:移动端H5需嵌套在对方开发的APP中,大概可以称之为WebView?
App跳H5登录:
很简单,通过 window.WebViewJavascriptBridge.方法名 调取app提供的方法获取想要的参数即可,调取接口获取token登录成功
注意:window.WebViewJavascriptBridge 需要针对ios和安卓做兼容处理