我尝试将动态链接添加到调试模式且在物理设备上运行的flutter android应用程序(未发布)。在Firebase控制台中配置了Firebase动态链接。一切都按预期工作,除了一个。当直接从任何地方单击deeplink(https://www.mywebsite.com/deep-link-page)时,都不会打开应用程序。点击动态链接https://myapp.page.link会按预期打开应用。
final DynamicLinkParameters parameters = DynamicLinkParameters(
uriPrefix: 'https://freshakaka.page.link',
link: Uri.parse('https://freshakaka.page.link/helloworld'),
androidParameters: AndroidParameters(
packageName: 'com.freshakaka.flutter',
minimumVersion: 0,
),
dynamicLinkParametersOptions: DynamicLinkParametersOptions(
shortDynamicLinkPathLength: ShortDynamicLinkPathLength.short,
),
iosParameters: IosParameters(
bundleId: 'com.google.FirebaseCppDynamicLinksTestApp.dev',
minimumVersion: '0',
),
);
如您在图像中看到的-https://kannadaclub.com/2019/10/17/seltos-50k-bookings/是我的深层链接。当从移动设备上单击此链接时,它将始终打开网站,而不是应用程序。
答案 0 :(得分:7)
您需要在清单中的第一个打开活动中添加此intent-filter
,
<activity android:name="your default activity">
<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="freshakaka.page.link"
android:scheme="https" />
</intent-filter>
</activity>
详细说明:
找到它后,您需要在项目中搜索AndroidManifest.xml,您会看到类似的内容
<activity
android:name=".MainActivity"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
这是第一个打开的活动,因为它的intent-filter
包含LAUNCHER
类别,这意味着您的应用将从该活动开始,因此您需要添加我拥有的intent-filter
像这样
<activity
android:name=".MainActivity"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</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="freshakaka.page.link"
android:scheme="https" />
</intent-filter>
</activity>
此外,您可以查看更明确的解释
https://firebase.google.com/docs/dynamic-links/android/receive