我有一个Ionic 3应用,我想根据Playstore的下载链接在其中设置一些变量。
例如,http://linktoplaystore.com/app?account=4
会将我的应用程序内的account变量设置为4。有什么方法可以实现?
答案 0 :(得分: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;
答案 1 :(得分: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);
});
答案 2 :(得分:2)
在JavaScript中解析link
以获得所需的值
代码段
var link = "http://linktoplaystore.com/app?account=4";
var variable = link.split('?')[1].split('=')[1];
此外,您应该打开一个API来从服务器发送此链接,因此,如果链接中发生任何更改,则无需推送应用程序更新。
希望有帮助!
答案 3 :(得分:0)
唯一的方法是通过Firebase Dynamic链接实现此目的(如我前面的评论中所述)。
动态链接可以在应用安装过程中继续存在。因此,您可以使用参数。但是必须在某个地方(手动或在代码中)创建链接。
看看https://firebase.google.com/docs/dynamic-links/。与此相关的Ionic插件仍处于测试阶段:https://ionicframework.com/docs/native/firebase-dynamic-links/
答案 4 :(得分:0)
我终于设法使用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
属性内部提取account参数