访问pwa地址的url参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了访问pwa地址的url参数相关的知识,希望对你有一定的参考价值。

我是离子2的新手。在搜索到处后,我无法找到直接答案,给出以下情况:

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

我的问题是如何访问url参数viewid?我需要这个参数,以便应用程序将它发送到我的服务器端REST api并获取正确的json数据。我的用户通过SMS接收带有参数的URL作为链接。我试图利用像this question这样的建议

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

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

答案

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

.js你可以像这样做一个split

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

请注意,如果没有viewId=,则变量将是未定义的。以下是location.search的文档

另一答案

我不得不使用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;
}

以上是关于访问pwa地址的url参数的主要内容,如果未能解决你的问题,请参考以下文章

JS获取URL的参数

根据图片的url地址下载图片到本地保存代码片段

PWA 在重定向到其他 URL 时显示 Safari 控件

使用HttpClient远程访问url地址

从外部 url 打开已安装的 PWA

URL 片段中的多个参数