Skip to content
This repository has been archived by the owner on Nov 15, 2018. It is now read-only.

【全局分享】在ios下微信内置浏览器内分享出去的地址不正确的问题 #579

Closed
mutoe opened this issue Oct 11, 2018 · 3 comments
Assignees
Labels
bug fixed L5 Auth 最高优先级 授权客户问题

Comments

@mutoe
Copy link
Contributor

mutoe commented Oct 11, 2018

问题描述

在ios的微信内置浏览器中,从某个地址进入spa页面,然后进行一番操作后,在别的页面点击分享,分享出去的地址还是首次进入spa页面的地址。

根据调查,该问题可能是微信或IOS webview的bug,可能存在解决办法,先mark

参考资料

@mutoe mutoe added the Bug L.1 label Oct 11, 2018
@mutoe mutoe added the Bug L.5 label Oct 22, 2018
@mutoe mutoe self-assigned this Oct 22, 2018
@mutoe mutoe added L5 Auth 最高优先级 授权客户问题 bug and removed Bug L.1 labels Oct 22, 2018
@mutoe
Copy link
Contributor Author

mutoe commented Oct 23, 2018

iPhone 4 iOS 11.4.1
wechat v6.7.3
无此问题

@mutoe
Copy link
Contributor Author

mutoe commented Oct 23, 2018

尚无完美的解决办法

问题原因

在 iOS 下的微信中打开单页应用(不限于此项目),然后进行跳转,页面表面上地址进行了变更,实际上原始地址还是刚进入单页应用时的地址,所以分享出去时微信js-sdk签名没有变更,导致分享出去后其他用户点击的链接与分享出去的链接不一致

排查过程

使用了几台机器,发现只有在高版本 IOS 上有此问题,安卓机器和 IPhone4 都没有复现,怀疑是微信或ios方面的bug,经过查找社区资料,确认确实时微信方面的问题,并且很久都没有处理,也可能跟ios的安全策略有关。
按照社区用户修复经验,大多都是在需要分享的页面上重新加载整个单页应用,这样带来的负面效果就是每当用户切换到可以进行分享的页面时,就会刷新一次,用户会感觉到有白屏的存在(低端机器或慢网速更明显)

修复方案

  1. 不修复,引导用户在需要分享的地方先刷新页面(这个思路不现实)
  2. 在路由的beforeEach钩子上增加一个方法,首先判断是在 ios并且在微信环境下,当页面跳转时,刷新页面;

这样做带来的用户体验不会很好(就像第一次进入页面时的白屏一样),将 spa 带来的速度优势抛去

@mutoe
Copy link
Contributor Author

mutoe commented Oct 23, 2018

最终方案

折中解决,在动态详情、资讯详情、圈子帖子和个人主页四个页面进行刷新操作,其他页面基本无需分享操作,不刷新页面,尽可能减少用户体验的损耗

@mutoe mutoe added the fixed label Oct 23, 2018
@zhiyicx zhiyicx closed this as completed Nov 1, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug fixed L5 Auth 最高优先级 授权客户问题
Projects
None yet
Development

No branches or pull requests

2 participants