我是离子2的新手。在任何地方进行搜索后,鉴于以下情况,我无法找到直接答案:
https://welcometotheapp.com?viewid=0101018737abcdefg
我的问题是如何访问url参数viewid
?我需要这个参数,以便应用程序将它发送到我的服务器端REST api并获取正确的json数据。我的用户通过SMS接收带有参数的URL作为链接。
我试图使用像this question
但我正在转动轮子。我也看过很多来自Josh Morony和其他人的youtube视频,但是没有直接关系。
有人可以帮忙解决这个问题吗?作为一个新手,如果在给出ionic2空白模板结构的文件中使用什么代码注释代码剪辑将会非常有用。谢谢偷看!
答案 0 :(得分:3)
你可以试试普通的旧javascript。我不认为这是离子特有的。因为它不是主要基于导航,所以NavParams
不起作用,我猜。
在.js
中,您可以split
这样做
let myParam = location.search.split('viewid=')[1];
请注意,如果没有viewId=
,则变量将是未定义的。以下是location.search
答案 1 :(得分:1)
我必须使用Location
中的@angular/common
。所以我相信值得发布另一个答案:
import { Location } from '@angular/common';
...
public urlParams: any;
constructor(..., public location: Location) {
this.initializeURLParams();
console.log(this.urlParams);
}
initializeURLParams() {
const path = this.location.path(true),
hasParams = /\?(.+?\=.+){1}/;
let params;
if (hasParams.test(path)) {
params = {};
path.split('?')[1].split('&').forEach(both => {
let e = both.split('=');
params[e[0]] = e[1];
});
}
this.urlParams = params;
}