通过 Firebase 动态链接传递多个参数 Android
Pass multiple params via Firebase Dynamic links Android
我使用过 Firebase Dynamics link,它可以打开我的应用程序、进入 Play 商店或进入 URL。但是当我通过link传递一些参数时,我只能得到第一个参数。
这是我的动态 links:
https://xx.app.goo.gl/?link=http://xx.com/?usn=abc&pass=def&apn=com.xx&afl=http://google.com
我用这段代码得到了 link:
// Build GoogleApiClient with AppInvite API for receiving deep links
mGoogleApiClient = new GoogleApiClient.Builder(this)
.enableAutoManage(this, this)
.addApi(AppInvite.API)
.build();
// Check if this app was launched from a deep link. Setting autoLaunchDeepLink to true
// would automatically launch the deep link if one is found.
boolean autoLaunchDeepLink = false;
AppInvite.AppInviteApi.getInvitation(mGoogleApiClient, this, autoLaunchDeepLink)
.setResultCallback(
result -> {
if (result.getStatus().isSuccess()) {
// Extract deep link from Intent
Intent intent = result.getInvitationIntent();
String deepLink = AppInviteReferral.getDeepLink(intent);
Logger.e(deepLink);
}
}
);
并且日志打印:http://xx.com/?usn=abc(pass=def 丢失)
有人解决了这个问题吗?
需要URL encodelink
参数的值,否则系统分不清什么是DynamicLink的参数,什么是子参数动态 Link.
的 link
参数
这意味着最终的 URL 应该看起来像 https://xx.app.goo.gl/?link=http%3A%2F%2Fxx.com%2F%3Fusn%3Dabc%26pass%3Ddef&apn=com.xx&afl=http://google.com
重要说明: 如果您(我怀疑)试图将用户名和密码作为明文 link 参数传递,这是一个 非常糟糕的主意。说真的,不要这样做。阅读 this answer 了解满足此类要求的正确方法。
只要你传入 url:
https://link.example.com?param="value1"¶m2="value2 “ ...
我使用过 Firebase Dynamics link,它可以打开我的应用程序、进入 Play 商店或进入 URL。但是当我通过link传递一些参数时,我只能得到第一个参数。 这是我的动态 links:
https://xx.app.goo.gl/?link=http://xx.com/?usn=abc&pass=def&apn=com.xx&afl=http://google.com
我用这段代码得到了 link:
// Build GoogleApiClient with AppInvite API for receiving deep links
mGoogleApiClient = new GoogleApiClient.Builder(this)
.enableAutoManage(this, this)
.addApi(AppInvite.API)
.build();
// Check if this app was launched from a deep link. Setting autoLaunchDeepLink to true
// would automatically launch the deep link if one is found.
boolean autoLaunchDeepLink = false;
AppInvite.AppInviteApi.getInvitation(mGoogleApiClient, this, autoLaunchDeepLink)
.setResultCallback(
result -> {
if (result.getStatus().isSuccess()) {
// Extract deep link from Intent
Intent intent = result.getInvitationIntent();
String deepLink = AppInviteReferral.getDeepLink(intent);
Logger.e(deepLink);
}
}
);
并且日志打印:http://xx.com/?usn=abc(pass=def 丢失) 有人解决了这个问题吗?
需要URL encodelink
参数的值,否则系统分不清什么是DynamicLink的参数,什么是子参数动态 Link.
link
参数
这意味着最终的 URL 应该看起来像 https://xx.app.goo.gl/?link=http%3A%2F%2Fxx.com%2F%3Fusn%3Dabc%26pass%3Ddef&apn=com.xx&afl=http://google.com
重要说明: 如果您(我怀疑)试图将用户名和密码作为明文 link 参数传递,这是一个 非常糟糕的主意。说真的,不要这样做。阅读 this answer 了解满足此类要求的正确方法。
只要你传入 url:
https://link.example.com?param="value1"¶m2="value2 “ ...