我有一个Ionic 3应用程序,希望根据Playstore的下载链接设置其中一些变量。例如,http://linktoplaystore.com/app?account=4
将把我的应用程序中的账户变量设置为4。是否有任何方法可以实现这一点?
我有一个Ionic 3应用程序,希望根据Playstore的下载链接设置其中一些变量。例如,http://linktoplaystore.com/app?account=4
将把我的应用程序中的账户变量设置为4。是否有任何方法可以实现这一点?
您可以通过解析和定义数组来在代码中实现此操作。
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;
我认为从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);
});
使用JavaScript解析link
以获取所需值
代码片段
var link = "http://linktoplaystore.com/app?account=4";
var variable = link.split('?')[1].split('=')[1];
希望这能有所帮助!
https://myapp.page.link/?link=https://play.google.com/store/apps/details?id=com.ionicframework.myapp?account4
app.component.ts
中,在平台初始化之后,我使用以下代码:firebaseDynamicLinks.onDynamicLink().subscribe((res: any) => {
let link = res;
}, err => {
alert(err);
});
{"deepLink":"https://play.google.com/store/apps/details?id=com.ionicframework.couriermanagerclient1234?account4","clickTimestamp":1535449992657,"minimumAppVersion":0}
从这里开始,我可以解析结果并从deepLink
属性中提取账户参数。