解决vue在ios或android中用webview打开H5链接时#…
2018-06-24 01:03:32来源:未知 阅读 ()
在ios或android如果直接用webview在打开H5链接例如:
打开:http://localhost:8080/#/answer?id=1509335039582001
会变成 http://localhost:8080/ 造成根本打开不了想要的页面(微信中获取网页授权的时候有#号也会有问题)
解决思路,链接中不写#号 打开后跳转到带#号的路由,把页面路由的代码定义为listType参数 后面的参数都先整个拼接
如这样 http://localhost:8080/?listType=answer&id=1509335039582001
我们在index中获取下页面接受到的参数:
var globalCons = {};
try{ location.search.substr(1).split('&').forEach( function(item){ var s = item.split('='); globalCons[s[0]]=s[1]; }); } catch(e){ throw new Error(JSON.stringify(search)); }
这样页面的参数都会保存在globalCons 对象中
console.log(globalCons) // globalCons = {"listType":"answer","id":1509335039582001 }
在main.JS 判断listType是否有值
if (globalCons.listType) { var code ={}; //路由的参数 code.id = globalCons.id; var r = {} //路由的name r.name = globalCons.listType; r.params = code; $router.push(r); //解析跳转到对应页面 }
这样问题就解决了,
但是还有一个新的问题
路由的params需要手动去写,这样很不爽,我们可以定义一个固定格式传参时直接写好,让js自动追加参数
我们传参的时候统一传 params 这个参数 参数值为一个有规律的字符串
如:http://localhost:8080/?listType=answer¶ms=id.1509335039582001|type.60
params为我们想要追加的值
我们可以先拿到拆分的键和值 params.split("|") // ['id.1509335039582001','type.60']
在循环数组按.拆分,就拿到最终结果
//跳转到指定页面的方法 var code ={}; if (globalCons.listType) { if(globalCons.params){ var params = globalCons.params.split("|");
params.forEach(function(data){ code[data.split(".")[0]] = parseInt(data.split(".")[1]); }); } var r = {} r.name = globalCons.listType; r.params = code; $router.push(r); }
http://localhost:8080/#/answer?id=1509335039582001&type=60
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- vue.js开发环境搭建教程 2020-03-16
- Vue input控件通过value绑定动态属性及修饰符的方法 2020-03-05
- js判断客户端是iOS还是Android等移动终端的方法 2020-02-25
- 详解Webstorm 新建.vue文件支持高亮vue语法和es6语法 2020-02-07
- vue路由跳转时判断用户是否登录功能的实现 2020-01-17
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash