Динамическая ссылка в приложении Meet для Андройд
Вопрос в общем такой: создал приложение для Андройда "Видеоконференция - бесплатная видеосвязь" Между собой всё работает отлично, обмениваемся ссылкой и попадаем в нужную нам комнату, обмен производится динамической ссылкой.
private fun handleDynamicLink() {
Firebase.dynamicLinks
.getDynamicLink(intent)
.addOnSuccessListener { pendingDynamicLinkData ->
// Получить ссылку с результатом (может иметь значение NULL, если не найдено никакой связи)
val deepLink: Uri?
if (pendingDynamicLinkData != null) {
deepLink = pendingDynamicLinkData.link
deepLink?.getQueryParameter("meetingCode")?.let { joinMeeting(it) }
}
}
.addOnFailureListener { _ ->
toast(getString(R.string.main_error_fetch_dynamic_link))
}
}
Как видно, за попадание в комнату отвечает ключ "meetingCode" и код который каждый раз генерируется новый. Всё работает супер. Но решил расширить возможности и создал сайт Видеоконференция в котором динамическая ссылка открывается с этим ключом и не попадает в нужную комнату https://videotranslation.ru/?rCounter=erersthh
Помогите убрать ?rCounter= из сылки, что бы работало коректно должно выглядеть так https://videotranslation.ru/erersthh
Если из строкового ресурса
https://videotranslation.ru/?meetingCode=%1$s
Убрать ?meetingCode= , то работает обмен ссылкой с телефона на комп. А вот обмен ссылкой телефон-телефон теряется.
Ответы (1 шт):
Если я правильно понял то вам нужно из этого:
https://videotranslation.ru/?rCounter=erersthh
сделать это:
https://videotranslation.ru/erersthh
Есть два варианта: слепить свой урл или вырезать из строки ненужные буквы. Для вырезки букв можно воспользоваться описанном в документации методе :
fun CharSequence.removeRange(
startIndex: Int,
endIndex: Int
): CharSequence
где в качестве стартового индекса вы подаете такой:
url.indexOf("?")
а в качестве конечного индекса:
url.indexOf("=")
и на выходе получаете то что вам нужно. Второй вариант - построить свой урл немного сложнее и замороченнее, так как вам нужно будет вытащить erersthh из стартового урла предварительно. Для вытаскивания можем воспользоваться методом из документации:
fun String.substring(startIndex: Int, endIndex: Int): String
где в качестве стартового и конечного индекса используйте упомянутые выше индексы. Дальше строим урл вручную (пример ):
https://www.myawesomesite.com/turtles/types?type=1&sort=relevance#section-name
и строим:
Uri.Builder builder = new Uri.Builder();
builder.scheme("https")
.authority("www.myawesomesite.com")
.appendPath("turtles")
.appendPath("types")
.appendQueryParameter("type", "1")
.appendQueryParameter("sort", "relevance")
.fragment("section-name");
String myUrl = builder.build().toString();
какой вариант вам будет удобнее решать вам :)