问题描述
我已经使用replace从旧字符串InvitationCode中创建了一个新字符串vitalToken,但是没有在startmeet函数中传递InvitationToken的值。
(deepLink?.getQueryParameter("inviteCode")?.substringBefore("?invitetoken=","") + deepLink?.getQueryParameter("inviteCode")?.replace("inviteCode","invitetoken") ).let {startMeet(it)}
在函数startmeet中传递字符串值时。其显示错误:没有为参数InvitationToken传递值
这是startmeet的代码:
private fun startMeet(inviteCode: String,invitetoken: String) {
MyUtils.joinmeet(
this,inviteCode,invitetoken
)
}
解决方法
简化代码可以帮助您了解正在发生的事情
PS:下面的答案仅基于您要实现的目标的假设
val str = (deepLink?.getQueryParameter("inviteCode")?.substringBefore("?inviteToken=","") + deepLink?.getQueryParameter("inviteCode")?.replace("inviteCode","inviteToken") )
上面的行仅返回一个String值,对该变量调用let
只会给您一个值。
假设您希望上述语句中的两个值都作为单独的字符串值
val inviteCode = deepLink?.getQueryParameter("inviteCode")?.substringBefore("?inviteToken=","")
val inviteToken = deepLink?.getQueryParameter("inviteCode")?.replace("inviteCode","inviteToken")
并假设let
被(错误地)用于空值检查
if(inviteCode !=null && inviteToken != null) {
startMeet(inviteCode,inviteToken)
}