浙里办前端对接指北-精简版

这里不会有对接浙里办的详细经过,因为已经有很多不错的文章了,但我会把一些比较坑、需要注意的点摆出来,以供后来者!

如果用uniapp开发,可以直接对接浙里办吗?

  • 答案:可以
  • 原本的情况,如果你的项目是直接通过HbuilderX创建的,那么是不具备浙里办所要求的上传源码后,在线构建的功能。即如果可以采用命令行的方式去构建(build)项目,就可以。
    • 想使用命令行的方式 ,去构建uni项目可以参考:uni-cli
  • 当然,就算是用HbuilderX创建的,也是可以用一些方式去规避的(下文会提到)。

可以单独写一个浙里办登录对接的项目,再通过ifram标签的形式去显示原项目吗?

  • 答案:不行
  • 如果放在一年前,是可以的,现在需要对接小程序,而小程序是不允许这样去操作的。
  • 至于为什么会单独写一个登录,而不是直接在项目里。是因为浙里办会对代码进行扫描,如果你的代码里有微信、钉钉相关的逻辑、依赖库会被打回!其次,还需要引入埋点,使用浙里办所提供的请求库(这也是个坑,还需要去IRS录入接口)等等。

规避在线构建的方式:

  • 先将自己的项目构建好,把构建好的文件夹由dist改为build,
  • 新建一个文件夹取名zlbUpdate(名字随意),将build文件夹拖入
  • 在zlbUpdate文件夹下,使用命令npm init,初始化一个package.json出来
  • 将zlbUpdate压缩成zip,上传IRS即可。
  • 这里建议就算项目本身支持命令行构建(npm run build),还是要采用这种方式
    • 因为在线构建速度很慢,而且还容易失败。
    • 还有构建出来,可能会把文件后缀名吃掉,比如我的css文件后缀就被吃掉了!

浙里办单点登录

  • 我们是需要拿到tickId去调登录接口的,但正常从路径上拿的时候,可能会有问题,尾部可能会多#/,导致登录失败。
  • 浙里办会占用localStroagetoken,如果跟项目字段重复,需要注意。

浙里办数据埋点:

  • 如果项目是vue/uni开发,可以参考其它文章,通过监听路由变化的方式,在一处处理即可,无需每个页面写逻辑或使用mixin,(对那几个时间,其实要求没那么严格)
    • vue:直接使用路由守卫-beforeEach
    • uni:使用watch去监听$route
  • 如果你的项目涉及到登录,那么在初始化zwLog时需传入:
    • {_user_id: ‘这里的ID为浙里办所返回的ID’, _user_nick: ‘用户的真实姓名?’}
    • 还需要处理在发送埋点数据时,将log_status01改为0201:未登录,02已登录)

浙里办适老化

  • 可以通过调用ZWJSBridge.getUiStyle获取当前的APP是否已经开启了适老化
  • 适老化不能偷懒,审核比较严格!

浙里办调用接口

  • 前方高能,这里算是坑的集中点了。
  • 如果你的项目接口比较多,那么你需要做好心理准备, 因为你需要一个一个将接口录入到IRS中,你没听错,手工录入,或者可以尝试调接口的方式?
    • 录接口的时候,会要求你填写传参和返回,这里只需要在传参那里随便写个参数和类型即可,他不会以此来校验你的请求数据!
    • 在填写传参和返回的页面,一定要选择对的传参方式和Body 入参(content-type),否则会导致接口直接报错。
      • 传参方式:get一般为query透传,post一般为包装data透传
      • Body 入参:get一般为application/x-www-form-urlencoded,post一般为application/json
  • 不单是录接口,原来封装好的请求工具也用不了,必须使用浙里办所提供的@aligov/jssdk-mgop
  • 如果后端接口返回的实体中,值会有null,甚至前端逻辑还以此去做判断的,要小心了,因为浙里办会直接把为null的键值都干掉,比如本来返回的是{ test:null },实际返回就是空对象了!
  • 如果后端接口报错携带提示信息,但外层code不为200,那么浙里办也会直接过滤,不会把后端的提示返给你,而是变成了` 未知错误:网络错误``,如果开启vconsole=true,可以在齿轮里面看到返回,甚至debug工具都看不到,所以事情就很诡异,好像是有,最后拿到手又没了。。。
  • 如果后端接口有路径传参的形式,浙里办也是不支持的!
  • 如果你的项目,有防火墙,有对IP做出限制的,那么需要注意了,因为使用@aligov/jssdk-mgop后,相当于变成浙里办去请求后端了。

浙里办如何上传文件

  • 我看了一些文章都是说OSS直传之类的,这里也就不在赘述,但其实可以直接用原来的接口传。
    • 用原来的接口传,需要注意的是不能再用@aligov/jssdk-mgop封装好的请求工具去调接口,而是要用回原来的请求工具,这里配置好请求的BaseUrl即可。
    • 如果你用的是uni,上传时发现文件后缀丢失,可以参考我的另一篇文章:uniapp上传文件后缀名丢失

浙里办调试

  • 一定要去下ZWEurope:政务中台Debug工具,可以为开发环境提供浙里办的环境,单点登录就可以直接调试了。
  • 请求头中携带isTest:1时,即会指向IRS录入接口时所填写的联调环境目标地址
  • 测试环境的路径后添加vconsole=true,会显示调试的齿轮。

杂记

  • 应用ak/sk:
    • servicecode = ak = AccessKey
    • servicepwd = sk = SecretKey

你可能感兴趣的:(前端,javascript,vue.js)