Ionic 3:从PlayStore链接获取值

9

我有一个Ionic 3应用程序,希望根据Playstore的下载链接设置其中一些变量。例如,http://linktoplaystore.com/app?account=4将把我的应用程序中的账户变量设置为4。是否有任何方法可以实现这一点?


4
我认为,实现这个的唯一方法是使用Firebase动态链接。但是,链接必须在某个地方(手动或代码中)创建。请查看https://firebase.google.com/docs/dynamic-links/。然而,对于此功能的Ionic插件仍处于测试版阶段:https://ionicframework.com/docs/native/firebase-dynamic-links/。 - Alex
https://developer.android.com/training/app-links/ 这可能是你正在寻找的。 - user1496463
@Alex 这个查询解决了吗?趁着失去积分的机会 :) - nkshio
5个回答

2

您可以通过解析和定义数组来在代码中实现此操作。

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。 - Alexandru Pufan

2

我认为从Playstore不可能实现,但是你可以通过自己的外部来源访问应用内功能。请参见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);
});

2

使用JavaScript解析link以获取所需值

代码片段

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

此外,您应该打开一个API来从服务器发送此链接,这样当链接发生任何更改时,您就不需要推送应用程序更新。

希望这能有所帮助!


但是我如何在应用程序内获取安装链接? - Alexandru Pufan
不幸的是,目前还没有办法从应用商店获取链接,正如上面提到的,您将不得不从自己的服务器维护并发送此链接。 - nkshio
该方法假定账户是第一个参数。您应该使用基于键的函数来获取账户。如果Playstore添加了其他参数,如language=,则您的数组键将失效。 - ldrrp

1
我最终通过使用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属性中提取账户参数。


1

嗨,Alex,谢谢你。你能告诉我如何做吗?我知道如何订阅,但是我需要在Firebase控制台上创建链接吗?然后如何发送动态链接? - Galilo Galilo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接