ios微信分享的兼容性问题

Posted spotman

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios微信分享的兼容性问题相关的知识,希望对你有一定的参考价值。

我微信分享采用的是: 页面初始化时动态加载js-sdk, 然后在需要分享的页面进行sdk的分享初始化

app.vue

技术图片

store.vue

技术图片

这种方法在安卓上完全正常, 好用得令人发指, 但是!!!

ios却不是省油灯

ios的分享 参数都没带上来 链接是第一次进入的页面 !

破案 ->

IOS:每次切换路由,SPA的url是不会变的,发起签名请求的url参数必须是当前页面的url就是最初进入页面时的url

android:每次切换路由,SPA的url是会变的,发起签名请求的url参数必须是当前页面的url(不是最初进入页面时的)

解决方法 ->

main.js

 1 router.beforeEach((to, from, next) => 
 2   const agent = navigator.userAgent;
 3   const isiOS = !!agent.match(/\\(i[^;]+;( U;)? CPU.+Mac OS X/); // ios终端
 4   if (isiOS && to.path !== location.pathname) 
 5     // 此处不可使用location.replace
 6     location.assign(to.fullPath)
 7    else 
 8     next()
 9   
10 );

ios切换路由, url不是不会变吗, 我们就在路由守卫里面每次都帮他变一下

by the way !!   

location.assign(url)    等价于      location.href = url;

 

以上是关于ios微信分享的兼容性问题的主要内容,如果未能解决你的问题,请参考以下文章

微信 H5 开发,几个常见兼容性的坑

微信小程序中的ios兼容性问题

javascript 修复iOS版微信HTML5历史兼容性问题

微信 H5 页面前端开发,大多数人都会遇到的几个兼容性坑

微信H5开发-大多数前端都会遇到的几个兼容性的坑

微信小程序开发BUG经验总结