收藏
回答

建议 web-view的useragent中能加入特殊字符以区分微信自带浏览器

框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
小程序 需求 web-view 微信iOS客户端 6.6.2 1.9.90

建议 web-view的user-agent中能加入特殊字符以区分微信自带浏览器

或者开发者可以自己设定部分header信息


我的需求是在页面加载前使用服务器程序来判断是否是小程序,还没到页面加载后用js来判断这一步


URL 里加特殊的字符串这个方法是我现在在用的方法,但是很不方便,如果遇到页面里有其他页面的链接,就很麻烦了

所以还是建议能通过user-agent中加入特殊字符的方式,方便开发


-------

有官方用户回复建议:第一次在web-view src上带多一个参数,服务器识别到这个参数后种一个cookie呢,后续请求识别这个cookie即可。cookie的有效期可以只是当前session

我这边实际测试的结果是:设置cookie方法不行,我实际测试了,即使cookie有效期是当前session的情况下,在小程序webview中设置的cookie,在同一进程微信浏览器中打开,这个cookie仍然存在


根源还是在 小程序webview和微信本身浏览器没有做区分



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

6 个回答

  • 黄思程
    黄思程
    2018-06-11

    你好,感谢反馈,目前安卓有在ua上做区分,iOS因系统原因暂时还没有,对于你这种场景,我们会考虑下看怎么支持到。

    2018-06-11
    有用
    回复 4
    • 祺爸💎
      祺爸💎
      2018-07-12

      倒不是说必需是ua,如果能通过其他非js途径也是可以的,比如web-view可以添加自定义的header信息,我这边有开发ios app经验的同事,他们就是在webview中添加了自定义的header信息来传递已登录用户信息,可以参考,这个问题我觉得还是很重要的,毕竟小程序webview和微信本身浏览器本身从业务上来说就不是通用的

      2018-07-12
      回复
    • 祺爸💎
      祺爸💎
      2018-07-12

      或者换个需求, 小程序web-view和微信自带浏览器从业务逻辑上来说是不通用的,那么session、cookie也应该是不通用的才行

      2018-07-12
      回复
    • 凡羽
      凡羽
      2018-09-18

      function isInWechatMP() {
          return navigator.userAgent.match(/miniprogram/i) || window.__wxjs_environment === 'miniprogram'

      }
      这样的检测方式,是不是覆盖了安卓和iOS,期待官方答复!

      2018-09-18
      回复
    • 黄思程
      黄思程
      2018-09-21回复凡羽

      是的

      2018-09-21
      回复
  • Aiden
    Aiden
    2018-08-13

    遇到同样的问题,也采用种cookie的方法,但是清cookie可就不太好搞了

    2018-08-13
    有用 3
    回复
  • M&S
    M&S
    2018-07-02

    @黄思程 我们也有此需求。我们的公众号和小程序 webview 是共用一个 H5,如果能在 UA 上做区分,就能在 nginx 层做多入口。比如公众号需要加载地图 SDK,小程序 webview 无需加载地图 SDK(因为小程序里面地图是用小程序地图组件做的),可以提升小程序 webview 加载速度。

    2018-07-02
    有用 1
    回复
  • 为信而来
    为信而来
    2018-07-30

    有一个疑问

    为什么我用 微信开发者工具查看 userAgent 是有 miniprogram 的标识 但是真机 ios 就不可以

    2018-07-30
    有用
    回复
  • 祺爸💎
    祺爸💎
    2018-07-12

    或者换个需求,小程序web-view和微信自带浏览器从业务逻辑上来说是不通用的,那么session、cookie也应该是不通用的才行

    2018-07-12
    有用
    回复
  • 2018-06-13

    始终认为在小程序webview和小程序本体之间搞jsBridge才是正途……

    2018-06-13
    有用
    回复
登录 后发表内容