android7动态链接,android – 如何使用Firebase从动态链接中获取额外参数?

但是当应用程序打开时,我得到:“https:// airbanq.send.com/sendmoney”

没有附加参数

请帮忙,

谢谢

我的代码

public String buildDeepLink() {

// Get the unique appcode for this app.

String appCode = AirBanqApp.mContext.getString(R.string.app_code);

// Get this app's package name.

String packageName = AirBanqApp.mContext.getPackageName();

// Build the link with all required parameters

Uri.Builder builder = new Uri.Builder()

.scheme("https")

.authority(appCode + ".app.goo.gl")

.path("/")

.appendQueryParameter("link", deepLink)

.appendQueryParameter("apn", packageName);

// If the deep link is used in an advertisement, this value must be set to 1.

if (isAd) {

builder.appendQueryParameter("ad", "1");

}

// Minimum version is optional.

if (minVersion > 0) {

builder.appendQueryParameter("amv", Integer.toString(minVersion));

}

if (!TextUtils.isEmpty(androidLink)) {

builder.appendQueryParameter("al", androidLink);

}

if (!TextUtils.isEmpty(playStoreAppLink)) {

builder.appendQueryParameter("afl", playStoreAppLink);

}

if (!customParameters.isEmpty()) {

for (Map.Entry parameter : customParameters.entrySet()) {

builder.appendQueryParameter(parameter.getKey(), parameter.getValue());

}

}

// Return the completed deep link.

return builder.build().toString();

}

解决方法:

那是我的解决方案

我解决了我的问题,我假设“apn”,“username”和“amount”它们是url中参数“LINK”的一部分,但是当我添加“&”时没有我正在向主网址添加部件,将参数添加到“LINK”字段我需要首先创建这样的网址

然后使用URLEncoder.encode(queryParameters.toString(),“UTF-8”);

生成这个

https://airbanq.send.com/sendmoney%3Fusername%3DAdri%26amount%3D7.00

然后附加到主URL

public String buildDeepLink() {

// Get the unique appcode for this app.

String appCode = AirBanqApp.mContext.getString(R.string.app_code);

// Get this app's package name.

String packageName = AirBanqApp.mContext.getPackageName();

String queryParamters = "";

try {

queryParamters = generateQueryParameters();

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

if (!TextUtils.isEmpty(queryParamters)) {

deepLink = deepLink + queryParamters;

}

// Build the link with all required parameters

Uri.Builder builder = new Uri.Builder()

.scheme("https")

.authority(appCode + ".app.goo.gl")

.path("/")

.appendQueryParameter("link", deepLink)

.appendQueryParameter("apn", packageName);

// If the deep link is used in an advertisement, this value must be set to 1.

if (isAd) {

builder.appendQueryParameter("ad", "1");

}

// Minimum version is optional.

if (minVersion > 0) {

builder.appendQueryParameter("amv", Integer.toString(minVersion));

}

if (!TextUtils.isEmpty(androidLink)) {

builder.appendQueryParameter("al", androidLink);

}

if (!TextUtils.isEmpty(playStoreAppLink)) {

builder.appendQueryParameter("afl", playStoreAppLink);

}

// Return the completed deep link.

return builder.build().toString();

}

private String generateQueryParameters() throws UnsupportedEncodingException {

StringBuilder queryParameters = new StringBuilder();

//server purposes

queryParameters.append("?*code*");

if (!customParameters.isEmpty()) {

for (Map.Entry parameter : customParameters.entrySet()) {

queryParameters.append(String.format("&%1s=%2s", parameter.getKey(), parameter.getValue()));

}

}

return URLEncoder.encode(queryParameters.toString(), "UTF-8");

}

标签:android,firebase,firebase-dynamic-links

来源: https://codeday.me/bug/20191001/1838932.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值