收藏
回答

微信服务号网页开发中遇到的问题:iOS版与安卓/鸿蒙版的微信服务号网页链接点击后动作不一致

本项目为需登录的H5业务服务系统,可在PC端、移动端(包含iOS、安卓、鸿蒙)等系统原生浏览器中都正常服务。

现在进行了微信服务号的网页开发:在微信服务号上创建自定义菜单,菜单指向系统route_a然后跳转至页面page_a。

设计的逻辑是:已关注服务号的微信用户点击链接,进入route_a,判断该用户是否已经登陆系统,如果未登陆系统,那么自动跳转至系统登陆页面要求用户输入系统UID/PWD登录,系统自动在用户点击登录按钮后绑定其微信号和系统用户,那么下次该微信用户再次点击该链接,系统自动获取微信open_id进行静默登录。而如果检查到用户已经登陆了(request.session.uid)那么自动跳转至page_a(直到用户本地session超时后,再次进入则可静默登录)。

现在遇到问题:

1、iOS版微信服务号中,任意用户都可以顺利按照上述逻辑走通,这是符合预期OK的;

2、安卓版或鸿蒙版微信服务号,任意用户(包含上述在iOS版中通过的用户)点击菜单链接,即使经过了静默登录处理,且从日志确认静默登录成功(查看了session.uid,并设置了request.params['login_success']=True),但是仍被系统默认跳转到了登陆页面。然后在登录页面看到request.params['login_success']=False。

针对这样的问题,在controller中应该如何处理才能使安卓版和鸿蒙版都能像iOS版一样,即:如果检测到用户已登录,那么就能成功跳转至目标页面;如果检测到用户未登录,那么经过静默登录后也能跳转至目标页面。

请高手指点!

回答关注问题邀请回答
收藏

1 个回答

  • 孙栋
    孙栋
    12-11

    是否安卓和鸿蒙版本的微信客户端对菜单链接的返回值303不直接支持?

    如果是这样,那么有什么方法/设置可以绕着弯实现这个303跳转吗?

    12-11
    有用
    回复 1
    • 孙栋
      孙栋
      12-11
      进一步调查,发现安卓版微信服务号客户端,对自定义菜单需要uid/pwd登录认证后跳转的逻辑完全不支持。。。很奇怪,难道公众号嵌套自定义菜单跳转三方H5网站过程中对session的支持问题,我是第一个发现的吗?难道大家都在用小程序解决业务问题,完全抛弃公众号嵌套三方网站了吗?
      12-11
      回复
登录 后发表内容