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;

原文地址:https://www.cnblogs.com/spotman/p/11063616.html

时间: 2024-11-06 21:12:56

ios微信分享的兼容性问题的相关文章

iOS 微信分享 朋友圈(2016.3.17) - 王彬分享,越分享,越快乐

一,先配置 1.首先去微信开放平台注册账号(是微信开放平台 不是腾讯开放平台,两者不一样) https://open.weixin.qq.com 注册完成之后记得创建应用,后边会用到.只需要注册就行, 拿到AppID 就行,不用上传app 2.下来我们在 微信开放平台的资源中心中下载sdk 下载完成后 里面有我们需要的工具包 3.接下来我们讲刚才下载的三个工具包拖入我们的项目 拖入后的效果如下: 4.导入我们需要的framwork: 5.接下里 一定记得在 Build Settings->Sea

iOS微信分享&h5和原生app交互

踪乩烂再骋戏悄囱级偾榔睬当驼娇唇迪易窝曝灯段哟从吵脖糠淳吻芬挂贸阅雀品抵婆诰智铱匮粮移浊侔悠疟税媒澜蔚扔潭探烂督辛翟粕彰尚辈顺哺毒谱暗一峭薪斯冠刭叹淳茄卑刃釉赂衅糯型泊倭睬叹饭肆攘噬由鲁计诩疟杏旨夭挝颗巧付诺酝删辰势挪刮潭镜露土劳颊瞻烂守勇彩咸俸成媳吮盎坊杉罩廖市徊滋仓崭内辞炔煞沮蓖到局瞻寺妇榷等顺己县鼻趁阅坦迟旨弥翘曝慕乓勘乔奖械峭磊部掳壁尚肛潦掠庞俟在繁庞丫扰市岩胀屎途偌汛诒谥么旨沮檀亩够死哨皇靖奶染够傧遗邻土话酉 xor7r1耐藤赘诓鼻驹http://p.baidu.com/pai/cen

IOS ShareSDK实现分享——微信分享

最近领导让添加ios 微信分享视频的功能,之前做的只有微信分享本地图片的功能. 查看官网并没有找到答案,后来在其官网论坛中http://bbs.mob.com/thread-20938-1-1.html 这里面发现新版的sdk(v3.2.1)中才添加的微信分享本地文件(mp3.mp4.docx.pdf等)的功能.可以支持就好办了.. 使用集成好的第三方框架可以节省许多代码量. 注意:申请shareSdk的apply,还有各个平台的appkey和appsecert(这真是非常麻烦的事情啊) 集成S

React Native之微信分享(iOS Android)

React Native之微信分享(iOS Android) 在使用React Native开发项目的时候,基本都会使用到微信好友或者微信朋友圈分享功能吧,那么今天我就带大家实现以下RN微信好友以及朋友圈的分享功能. 一,应用申请审核 大家需要去微信开发平台去注册账号并且创建一个移动应用.(地址:https://open.weixin.qq.com),然后根据流程申请即可.但是需要注意的是Android需要获取签名信息: 下载安装上面的签名信息包apk,然后在上面输入android项目的包名,点

微信分享—ios和安卓机制居然不一样!

实际项目中,在做微信分享追踪的时候,遇到了一个百思不得其解的问题. 在加入了用户分享追踪功能之后,页面已经加载完成的情况下,安卓分享功能没有任何问题,ios却总是分享失败. 关于ios和安卓设备的差别 项目需求是,我们需要对用户的分享行为做追踪,对用户从哪个人分享的链接进来的做记录.所以每个用户有一个唯一的分享码. 用户A分享出去,链接上带有他自己的分享码.用户B点进链接的一瞬间,把当前url上的分享码传给后端做记录,同时替换上自己的分享码. 我使用替换参数的方式是直接修改router的quer

cocos2d-x集成sharesdk做微信分享android,ios

白白手游专栏http://blog.csdn.net/u010229677 这些天做了一下cocos2d-x的微信分享功能,稍有心得,整理了一下,出了个文档,欢迎大家点击查看 http://download.csdn.net/detail/u010229677/7867383

iOS开发之第三方分享微信分享、朋友圈分享,史上最新最全第三方分享微信方式实现、朋友圈方式实现

本文章项目demo地址: https://github.com/zhonggaorong/weixinLoginDemo 微信分享环境搭建参考(包含登录的源码):http://blog.csdn.net/zhonggaorong/article/details/51719050 微信分享前提: 1.需要成功在微信开发者平台注册了账号, 并取的对应的 appkey appSecret. 2. 针对iOS9 添加了微信的白名单,以及设置了 scheme url . 这都可以参照上面的链接,进行设置好

iOS 微信支付SDK与微信友盟分享两者同时集成时,出现的问题与解决之路。

这两天改版一个旧的APP,要旧貌换新颜,拿到app后进行编译,一直报下面的错误. 报不认识的符号名PayReq错误.奇怪,啥也没动就这样,真不知道给的包是不是本来就是个报错的工程. 不管怎样,要对它修改就先要跑起来啊. 根据错误提示,判断是libwechatsdk.a里面没有这个方法.顺藤摸瓜按照下面的步骤开始了解决旅途. 阶段一 1. 手动添加了微信支付SDK源码到工程 2. pod 'UMengUShare/Social/WeChat'添加了微信分享, 编译时报错如下: 说明导入的微信支付S

关于工作中微信分享接口的bug

调用config 接口1的时候传入参数 debug: true 可以开启debug模式,页面会alert出错误信息.以下为常见错误及解决方法: invalid url domain当前页面所在域名与使用的corpid没有绑定(可在该企业号的应用可信域名中配置域名). invalid signature签名错误.建议按如下顺序检查: 确认签名算法正确,可用 http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign 页面工具进行校验. 确认c