我已经在我的 Flutter 应用程序中安装了 firebase 动态链接,在 iOS 本机端对其进行了配置,并为每个环境添加了
GoogleService-Info.plist
,设置了 DYNAMIC_URL,一般来说所有动态链接都工作良好。
只有一种情况除外:仅在发布模式下首次运行(或来自 TestFlight)
FirebaseDynamicLinks.instance.getInitialLink()
返回 null。
我在真实设备上以发布模式安装该应用程序,我不会从 IDLE 自动打开它,我正在从相机扫描动态链接 QR 或单击它本身 - 第一次应用程序不处理该链接,这就是问题!每次应用程序都能够从完全关闭状态正确处理链接时(当它在后台运行时,它每次都会与
onLink
一起工作)。
我尝试延迟功能启动,检查所有代码,询问同事 - 可怕的噩梦
忘记发布解决方案...
我找到了解决此问题的方法:
final clipboardData = await Clipboard.getData('text/plain');
if (clipboardData?.text != null) {
final uri = Uri.tryParse(clipboardData!.text!);
if (uri != null) {
final link = uri.queryParameters['link'];
if (link != null) {
final linkUri = Uri.tryParse(link);
if (linkUri != null) {
await _handleDeepLink(linkUri);
}
}
}
}
如果初始链接为空,我会在第一次运行时使用它。
丑陋,但有效