我必须在firebase deeplink中添加一个额外的参数作为“ meetingToken”。
但是在添加一个额外的参数“ meetingtoken”作为queryparameter时,我无法接收该值并在joinmeeting(it)中出错:参数meetingToken没有传递任何值。
虽然在传递单个参数时效果很好,但是我需要进行哪些更改才能接收两个参数值。
当前它给我以下错误:
zookeeper-server-start.sh
没有传递参数'meetingToken'的值
链接= https://example.in/?meetingCode=myuser?meetingToken=rtgdhh.tywufgsioqpp
deepLink?.getQueryParameter("meetingCode")?.let { joinMeeting(it) }
开会Utils.kt文件开始会议
private fun handleDynamicLink() {
Firebase.dynamicLinks
.getDynamicLink(intent)
.addOnSuccessListener { pendingDynamicLinkData ->
val deepLink: Uri?
if (pendingDynamicLinkData != null) {
deepLink = pendingDynamicLinkData.link
on android debugging its generating the following firebase Link = https://example.in/?meetingCode=userroom?meetingToken%3DeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1Ni
deepLink?.getQueryParameter("meetingToken")
deepLink?.getQueryParameter("meetingCode")?.let { joinMeeting(it) }
}
}
.addOnFailureListener { _ ->
toast(getString(R.string.main_error_fetch_dynamic_link))
}
}
private fun joinMeeting (meetingCode:String, meetingToken:String) {
MeetingUtils.startMeeting(
this, meetingCode,
meetingToken)
}
应用深层链接网址字符串
object MeetingUtils {
fun startMeeting(context: Context, meetingCode: String, meetingToken: String)
这是共享代码
<string name="app_deep_link_url">https://example.in/?meetingCode=%1$s?meetingToken=%2$s</string>
有人可以指导我如何为多个参数接收getQueryparameter的值。在此先感谢
答案 0 :(得分:0)
在深链接上附加第二个参数时,应使用&
而不是?
。另外,由于在深层链接中配置了多个参数,因此应该对配置的深层链接进行URL编码。您的示例深层链接应如下所示。
link=https%3A%2F%2Fexample.in%2F%3FmeetingCode%3Dmyuser%26meetingToken%3Drtgdhh.tywufgsioqpp
通过对深层链接进行URL编码,FDL将能够区分出属于深层链接的参数。
Uri.parse(getString(R.string.app_deep_link_url, getCreateMeetingCode(), getCreateMeetingToken()))
我不确定您要在getString上传递多个参数以获得深层链接值的方法。
创建StringBuilder
或手动附加它是否有意义?
val deepLink = getString(R.string.app_deep_link_url)+ "%2F%3FmeetingCode%3D$meetingCode%26meetingToken%3D$meetingToken";
link = Uri.parse(deepLink);
strings.xml中的“ app_deep_link_url”为
<string name="app_deep_link_url">https%3A%2F%2Fexample.in</string>