访问pwa地址的url个参数

Access url parameters of pwa address

我是 ionic 2 的新手。在到处搜索后,我找不到以下情况的直接答案:

  1. 我正在用 ionic 2 构建一个 PWA(因为我稍后会开发这个应用的混合版本)
  2. 用户将找到并访问我的应用程序的地址将是标准域,例如 https://welcometotheapp.com?viewid=0101018737abcdefg
  3. 我正在使用 ionic 2,最近安装在 windows 10
  4. 我开始了一个新的空白应用程序项目
  5. 我的问题与导航无关。

我的问题是如何访问 url 参数 viewid?我需要这个参数,以便应用程序将它发送到我的服务器端 REST api 并获得正确的 json 数据。我的用户通过 SMS 收到参数为 link 的 url。 我尝试使用一些建议,例如

但我正在旋转我的轮子。我也看过很多来自 Josh Morony 和其他人的 youtube 视频,但同样没有直接相关的内容。

有人可以帮忙解答这个问题吗?作为新手,如果在给定 ionic2 空白模板结构的情况下,在代码片段中标注出哪些代码在哪个文件中,那将非常有帮助。谢谢大家!

你可以试试普通的 javascript。我认为这不是 ionic 特有的。因为它主要不是基于导航的,所以 NavParams 将不起作用,我猜。

.js 中,您可以像这样 split

let myParam = location.search.split('viewid=')[1];

请注意,如果没有 viewId=,则该变量将未定义。这是 location.search

的文档

我不得不使用 @angular/common 中的 Location。所以我相信值得post另一个答案:

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;
}