以下是我用来创建动态链接的代码
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
.setLink(Uri.parse(DEEP_LINK_URL))
.setDynamicLinkDomain(domain)
.setAndroidParameters(new DynamicLink.AndroidParameters.Builder()
.setMinimumVersion(0)
.setFallbackUrl(marketUri)
.build())
.buildShortDynamicLink()
.addOnCompleteListener(activity, new OnCompleteListener<ShortDynamicLink>() {
@Override
public void onComplete(@NonNull Task<ShortDynamicLink> task) {
if (task.isSuccessful()) {
Uri shortLink = task.getResult().getShortLink();
Uri flowchartLink = task.getResult().getPreviewLink();
Log.d("DynamicLink", "shortLink: " + shortLink);
shareDeepLink(shortLink.toString());
Log.d("DynamicLink", "flowchartLink: " + flowchartLink);
} else {
// Error
// ...
}
}
});
答案 0 :(得分:0)
WhatsApp正在打开动态链接,他们没有将其作为新任务(FLAG_ACTIVITY_NEW_TASK
)打开。
Firebase动态链接目前会通过调用应用程序使用的大部分标记,并认为如果调用应用程序想要在同一任务堆栈中打开网页,那么FDL应用程序也应该这样做。
所以在这种情况下,没有办法解决,抱歉!
答案 1 :(得分:0)
我知道距问这个问题已经有一段时间了,但仍然: 我刚刚尝试用FLAG_ACTIVITY_NEW_TASK标志重新启动MainActivity,它似乎运行正常!
根据您的用例,您可能需要实现某种方式以将信息从动态链接传输到“新”应用程序实例。
fun checkForPendingLink(intent: Intent) {
FirebaseDynamicLinks.getInstance()
.getDynamicLink(intent)
.addOnSuccessListener(activity) { pendingDynamicLinkData ->
// Do something with the link's data
//Since the app was opened via the link, it is on the back stack of the application containing the link
//Restart the MainActivity as new task to decouple it
val restartIntent = Intent(activity, MainActivity::class.java)
restartIntent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
startActivity(restartIntent)
finish()
}