访问pwa地址

时间:2017-03-06 06:56:29

标签: ionic-framework ionic2 url-parameters progressive-web-apps

我是离子2的新手。在任何地方进行搜索后,鉴于以下情况,我无法找到直接答案:

  1. 我正在用离子2构建PWA(因为我稍后会开发此应用程序的混合版本)
  2. 用户将找到并访问我的应用的地址将是https://welcometotheapp.com?viewid=0101018737abcdefg
  3. 等标准域
  4. 我正在使用最近安装在Windows 10上的离子2
  5. 我已经开始了一个新的空白应用项目
  6. 我的问题与导航无关。
  7. 我的问题是如何访问url参数viewid?我需要这个参数,以便应用程序将它发送到我的服务器端REST api并获取正确的json数据。我的用户通过SMS接收带有参数的URL作为链接。 我试图使用像this question

    这样的几个建议

    但我正在转动轮子。我也看过很多来自Josh Morony和其他人的youtube视频,但是没有直接关系。

    有人可以帮忙解决这个问题吗?作为一个新手,如果在给出ionic2空白模板结构的文件中使用什么代码注释代码剪辑将会非常有用。谢谢偷看!

2 个答案:

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