一周开发总结——跨端

144 阅读2分钟

跨系统

关于项目:考试系统大翻版,两个独立完整系统,以A为主体 由菜单跳转B考试系统

  1. 跨系统跳转:由于不在一个项目内,无法路由拦截,通过windows.location.href 获取跳转连接携带过来的参数,请求当前系统接口获取token,这里要注意条件判断区分是否是系统内部跳转 进行下一步操作...

  2. 跳转失败或token过期:这种情况正常应该返回登录页,这里由于以A系统为主体,不能打开B系统登录页面,第一种方法通过某个连接给A系统一个跳转,A系统做判断清除token返回他的登录页面,由于A开发人员太懒(我胡说)我采取第二种不完美方法清除token弹框提示(本意是关闭当前浏览器页面,由于google等浏览器版本升级后无法通过js关闭当前页面不得已为之)

  3. 修复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和安卓做兼容处理