我发现了这个问题。 Firebase 动态链接是实际链接的包装器。
以下是它在我的 Flutter Web 项目中的构建方式:
service.generateDynamicLink(
key: Keys.firebaseApi,
dynamicLinkInfoWrapper: DynamicLinkInfoWrapper(
dynamicLinkInfo: DynamicLinkInfo(
domainUriPrefix: 'company.page.link',
link: 'https://company.de',
androidInfo: AndroidInfo(androidPackageName: 'de.company.app'),
iosInfo: IosInfo(iosBundleId:'de.company.app'),
),
),
)
在 API 级别低于 33 时,声明intent-filter
为了domainUriPrefix
像这样:
<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:scheme="https"/>
<data android:host="company.page.link"/>
</intent-filter>
所以要声明动态链接本身。
但在 API 33 及以上版本中,现在还需要声明动态链接内部的内容,即link
看起来像这样:
<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:scheme="https"/>
<data android:host="company.de"/>
</intent-filter>