gpt4 book ai didi

android - Firebase 动态链接 PendingDynamicLinkData 返回 null android

转载 作者:行者123 更新时间:2023-12-04 23:41:02 24 4
gpt4 key购买 nike

我尝试了以下 firebase 官方动态链接示例,但不适用于我。

Dynamic Link :

主宴:

 <activity android:name=".java.MainActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<!-- [START link_intent_filter] -->
<intent-filter >
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data
android:host="plpsoft.page.link"
android:scheme="https"/>
<data
android:host="plpsoft.page.link"
android:scheme="http"/>
</intent-filter>
<!-- [END link_intent_filter] -->
</activity>

Activity :
@Override
protected void onCreate(Bundle savedInstanceState) {
FirebaseDynamicLinks.getInstance()
.getDynamicLink(getIntent())
.addOnCompleteListener(new OnCompleteListener<PendingDynamicLinkData>() {
@Override
public void onComplete(@NonNull Task<PendingDynamicLinkData> task) {
Uri deepLink = null;
if (task.getResult() != null) {
deepLink=task.getResult().getLink();
((TextView) findViewById(R.id.linkViewReceive))
.setText(deepLink.toString());

}
}
})
.addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>() {
@Override
public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) {
// Get deep link from result (may be null if no link is found)
Uri deepLink = null;
if (pendingDynamicLinkData != null) {
deepLink = pendingDynamicLinkData.getLink();
}


// Handle the deep link. For example, open the linked
// content, or apply promotional credit to the user's
// account.
// ...

// [START_EXCLUDE]
// Display deep link in the UI
if (deepLink != null) {
Snackbar.make(findViewById(android.R.id.content),
"Found deep link!", Snackbar.LENGTH_LONG).show();

((TextView) findViewById(R.id.linkViewReceive))
.setText(deepLink.toString());
} else {
Log.d(TAG, "getDynamicLink: no link found");
}
// [END_EXCLUDE]
}
})
.addOnFailureListener(this, new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.e("Splash", "getDynamicLink:onFailure", e);
}
})
.addOnFailureListener(this, new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.w(TAG, "getDynamicLink:onFailure", e);
}
});
}

在点击 URL 时,应用程序将成功启动,并且我还获得了 Intent 数据 URI 字符串。如果我将此 URI 传递给 获取动态链接() 方法返回为空。我还添加了 SHA1 SHA256 在 firebase 控制台中键入。

最佳答案

我能够通过从 list 中删除 Intent 过滤器并在 MainActivity 中添加回调处理程序来修复它。
文档说的是:
在回调中,PendingDynamicLinkData 在 addOnSuccessListener(OnSuccessListener) 或 addOnCompleteListener(Activity, OnCompleteListener) 中返回,它返回最近单击的动态链接,如果动态链接未作为捕获的数据或在 Intent 中挂起,则返回 null。
因此, Intent 过滤器正在捕获深层链接,并且因为它不再处于挂起状态,所以回调返回 null

关于android - Firebase 动态链接 PendingDynamicLinkData 返回 null android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58132851/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com