脚本宝典收集整理的这篇文章主要介绍了

关于iOS 11.x微信连wifi流程中,在Portal页无法拉起微信问题的简单记录

脚本宝典小编觉得挺不错的,现在分享给大家,也给大家做个参考,希望能帮助你少写一行代码,多一份安全和惬意。

标题挺长,踩过坑的应该看的明白。不过限于目前所做产品流程的限制,我并没有解决掉这个问题,只是简单说一下相应的思路。

  1. iOS的系统浏览器是Safari,用于Portal认证的则是CNA(Captive Network Assistant),二者的区别在于前者可以打开wachat:这种私有协议头网址,后者无法打开并且限制很多,比如无法使用alert()、无法正常使用window.open()(只能做跳转)等等。
  2. 问题的症结在于在新版的CNA中是不认wechat:这样的私有协议头的,所以自然也就拉不起来微信。解决时需要引导用户点击a标签<a target="_system"></a>触发Safari,然后再在Safari拉起微信就行了。
  3. 我目前的portal触发逻辑是,客户端连到wifi上回触发landing,首先返回码设定为401用于触发客户端的portal页面,同时判断客户端UA,如果是部分安卓或iOS就渲染landing实体页(landing.ejs),页面的title和body均为“Success”以作为iOS欺骗(并且会加快从连接到弹出portal的响应时间);js部分,ios是直接打开认证URL,针对部分安卓则是加了判断document.visibilityState == 'visible'时触发跳转的事件,用来解决不弹portal的问题。但由于点击按钮之后就直接进到js拉微信认证的流程了(少一步引导拉起微信),所以其实需要部分变更产品流程才行(这个版本暂时没戏)。
  4. 参考链接:

总结

以上是脚本宝典为你收集整理的

关于iOS 11.x微信连wifi流程中,在Portal页无法拉起微信问题的简单记录

全部内容,希望文章能够帮你解决

关于iOS 11.x微信连wifi流程中,在Portal页无法拉起微信问题的简单记录

所遇到的程序开发问题,欢迎加入QQ群277859234一起讨论学习。如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典网站推荐给程序员好友。 本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。

80%的人都看过