我正在尝试分享一个链接,如果在桌面浏览器上单击,该链接会将用户重定向到 YouTube 链接,如果在 Android 上单击,则会重定向到该应用程序。链接工作正常,但我得到的是深层链接而不是短链接
Uri uri = getIntent().getData();
String path = uri.getPath();
有没有办法在android中获取短链接?
我刚刚找到了解决这个问题的方法,这个问题在我的深层链接中传递参数。 例如
https://www.youtube.com/watch?v=y0brSA1cyzw&deeplinkparam=somevalue
所以,上面 url 中的深层链接是
https://www.youtube.com/watch?v=y0brSA1cyzw
我想传递的参数附加了
&deeplinkparam=somevalue
你试试这个在你的安卓应用程序中获取链接怎么样?
FirebaseDynamicLinks.getInstance()
.getDynamicLink(intent)
.addOnSuccessListener(this) { pendingDynamicLinkData ->
var deepLink: Uri? = null
if (pendingDynamicLinkData != null) {
deepLink = pendingDynamicLinkData.link
Log.d("LINK :: ", deepLink)
}
}
.addOnFailureListener(this) { e -> Log.d("Error", e) }
您可以使用以下方法获取短链接
Bundle dynamicLinkBundle = pendingDynamicLinkData.zzc();
String shortLink = bundle1.getBundle("scionData")
.getBundle("dynamic_link_app_open")
.getString("dynamic_link_link_id");
我在 Kotlin 上找到了这个解决方案
Firebase.dynamicLinks
.getDynamicLink(intent)
.addOnSuccessListener(this) { pendingDynamicLinkData ->
val gson = Gson()
val json: String = Gson().toJson(pendingDynamicLinkData)
val element: JsonElement = gson.fromJson(json, JsonElement::class.java)
val jsonObj: JsonObject = element.asJsonObject
val dynamicLinkData = jsonObj.getAsJsonObject("dynamicLinkData")
val shortLink = dynamicLinkData.get("dynamicLink").asString
}.addOnFailureListener(this) { e ->
}