【问题标题】:Ionic 3: Getting value from PlayStore linkIonic 3:从 PlayStore 链接中获取价值
【发布时间】:2018-08-17 10:12:11
【问题描述】:

我有一个 Ionic 3 应用程序,我想根据 Playstore 的下载链接在其中设置一些变量。 例如,http://linktoplaystore.com/app?account=4 会将我的应用程序中的帐户变量设置为 4。有什么方法可以实现吗?

【问题讨论】:

标签: javascript android ionic-framework ionic2 ionic3


【解决方案1】:

您可以在代码中通过解析和定义数组来做到这一点

private urlParameters: Array<any> = [];

if (YOURURLVARIABLE.indexOf("?") > 0) {
    let splitURL = document.URL.split("?");
    let splitParams = splitURL[1].split("&");
    let i: any;
    for (i in splitParams){
        let singleURLParam = splitParams[i].split('=');
        let urlParameter = {
        'name': singleURLParam[0],
        'value': singleURLParam[1]
    };
    this.urlParameters.push(urlParameter);
    }
}

this.urlParamID = navParams.get('account').value;

【讨论】:

  • 嗯,主要问题是如何在应用程序中获取安装 URL
【解决方案2】:

我认为 Playstore 不可能,但从您自己的外部来源,您可以通过 Deeplinks 访问应用程序功能。请参阅https://ionicframework.com/docs/native/deeplinks/ 了解更多信息。

this.deeplinks.route({
    '/account/:accountId': AccountPage
}).subscribe(match => {
    console.log(match.$args);
}, nomatch => {
    console.error('Got a deeplink that didn\'t match', nomatch);
});

【讨论】:

    【解决方案3】:

    在 JavaScript 中解析 link 以获得所需的值

    代码片段

    var link = "http://linktoplaystore.com/app?account=4";
    var variable = link.split('?')[1].split('=')[1];
    

    另外,你应该打开一个API从服务器发送这个链接,所以你不需要推送应用更新,以防链接发生任何变化。

    希望对你有帮助!

    【讨论】:

    • 但是如何获取应用内的安装链接?
    • 很遗憾,目前还没有办法从应用商店获取链接,如上所述,您必须从自己的服务器维护和发送此链接
    • 这个方法假设 account 是第一个参数。您应该使用基于密钥的函数来获取帐户。如果 playstore 添加了其他参数,例如 language=,那么您的数组键将关闭。
    【解决方案4】:

    实现此目的的唯一方法是 Firebase 动态链接(如我之前的评论中所述)。

    动态链接可以在应用安装过程中继续存在。因此,您可以使用参数。但是必须在某处(手动或在代码中)创建链接。

    看看https://firebase.google.com/docs/dynamic-links/。不过,Ionic 插件仍处于测试阶段:https://ionicframework.com/docs/native/firebase-dynamic-links/

    【讨论】:

    • 嗨,亚历克斯,谢谢你.. 你能告诉我怎么做吗?我知道如何订阅,但我需要在 firebase 控制台上创建链接吗?那么如何发送动态链接呢?
    【解决方案5】:

    我终于设法使用 Firebase 动态链接使其工作。

    在 Firebase 控制台中设置我的应用后,我手动创建了一个如下所示的链接:

    https://myapp.page.link/?link=https://play.google.com/store/apps/details?id=com.ionicframework.myapp?account4
    

    在我的 Ionic 应用中,我已经安装并配置了 Firebase Dynamic Links 插件:https://ionicframework.com/docs/native/firebase-dynamic-links/

    然后,在app.component.ts内部,平台初始化后,我使用这段代码:

    firebaseDynamicLinks.onDynamicLink().subscribe((res: any) => {
     let link = res;
    }, err => {
      alert(err);
    });
    

    链接将是一个如下所示的 JavaScript 对象:

    {"deepLink":"https://play.google.com/store/apps/details?id=com.ionicframework.couriermanagerclient1234?account4","clickTimestamp":1535449992657,"minimumAppVersion":0}
    

    从这里,我可以解析结果并从deepLink 属性中提取帐户参数

    【讨论】:

      猜你喜欢
      • 2018-05-17
      • 2019-10-21
      • 1970-01-01
      • 1970-01-01
      • 2017-11-06
      • 2010-12-13
      • 2020-03-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多