Kim*_*Hak 6 android dynamic-links firebase deeplink firebase-dynamic-links
问题:为什么以编程方式创建的“短动态链接”不会直接打开/启动应用程序?
我想在用户单击由 android 应用程序动态创建的动态 url 时直接启动应用程序。
单击由 android 应用程序动态创建的动态短链接时,会发生以下情况,
1.Option 显示两个选项,一个是通过 chrome 另一个是通过 app
2.如果我选择 chrome 选项,浏览器将打开,显示一个加载对话框并使用 PendingDynamicLinkData 数据启动应用程序
3.但如果我选择应用程序选项,应用程序启动应用程序但 PendingDynamicLinkData 丢失或为空。
任何帮助都会很棒。我的清单设置如下
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:host="myapp.page.link" android:scheme="http"/>
<data android:host="myapp.page.link" android:scheme="https"/>
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
小智 4
您应该在活动中处理 PendingDynamicLinkData 以覆盖 onCreate 和 onNewIntent。像这样:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
if (intent != null) {
handleDeepLink(intent);
}
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
if (intent != null) {
handleDeepLink(intent);
}
}
private void handleDeepLink(Intent intent) {
FirebaseDynamicLinks.getInstance().getDynamicLink(intent).addOnSuccessListener(pendingDynamicLinkData -> {
if (pendingDynamicLinkData != null) {
Uri deepLink = pendingDynamicLinkData.getLink();
if (deepLink != null) {
// todo .....
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2928 次 |
| 最近记录: |