解决vue 在ios微信“复制链接”功能问题

转载 岑NG 2020/3/26 11:31:16

解决vue 在ios微信“复制链接”复制不到动态地址的问题

这个问题在安卓上是完全没有问题的,可是到了iPhone上就彻底失效了。因为ios微信对vue路由中的#号识别问题。

我的解决办法是在初始进入项目时重新拼接项目地址,再重定向到拼接的地址去。

先获取到#号前的路由地址,再手动添加我们的#号和当前项目地址后缀:

在路由router.js里的beforeEach函数写

截取地址

// 重定向功能,为解决ios微信上复制链接功能不能复制到动态路由问题
// 获取地址前段部分,不算参数
 var replaceUrl = window.location.href.split('#')[0] + '#' + to.path;
 var index = 0; // 索引初始化
 // 给replaceUrl拼接参数
 for (var i in to.query) {
   // 判断是否等于第一个参数
   if (index == 0) {
     // 拼接地址第一个参数,添加“?”号
     replaceUrl += '?' + i + '=' + to.query[i]
   } else {
     // 拼接地址非第一个参数,添加“&”号
     replaceUrl += '&' + i + '=' + to.query[i]
   }
   index++; // 索引++
 }
复制代码

重定向跳转

window.location.replace(replaceUrl); // 重定向跳转 
复制代码

全部代码

router.beforeEach((to, from, next) => {	  
next();
// 重定向功能,为解决ios微信上复制链接功能不能复制到动态路由问题
// 获取地址前段部分,不算参数
var replaceUrl = window.location.href.split('#')[0] + '#' + to.path;
var index = 0; // 索引初始化
// 给replaceUrl拼接参数
for (var i in to.query) {
  // 判断是否等于第一个参数
  if (index == 0) {
    // 拼接地址第一个参数,添加“?”号
    replaceUrl += '?' + i + '=' + to.query[i]
  } else {
    // 拼接地址非第一个参数,添加“&”号
    replaceUrl += '&' + i + '=' + to.query[i]
  }
  index++; // 索引++
}
// console.log('test20190117:' + to.meta.title, replaceUrl);
window.location.replace(replaceUrl); // 重定向跳转
// 重定向功能------end
});
复制代码

~~

大吉大利,问题解决

~~

版权声明:本文为CSDN博主「岑农耕 - 深圳」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:blog.csdn.net/qq_37235823…

随时随地学软件编程-关注百度小程序和微信小程序
关于找一找教程网

本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。
本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。
[解决vue 在ios微信“复制链接”功能问题]http://www.zyiz.net/tech/detail-121682.html

上一篇:100多行代码实现js或者jquery版的类似juejin的预览图片功能

下一篇:手写源码系列:原生js实现call方法

赞(0)

共有 条评论 网友评论

验证码: 看不清楚?
    扫一扫关注最新编程教程