我正在向我的 iOS 应用程序添加动态链接。如果安装了应用程序,则动态链接在 iOS 8 及更高版本上运行良好。如果未安装应用程序,则在 iOS 8 模拟器上,安装后和首次启动时,
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
FIRDynamicLink *dynamicLink = [[FIRDynamicLinks dynamicLinks] dynamicLinkFromCustomSchemeURL:url];
if (dynamicLink) {
[self handleIncomingDynamicLink:dynamicLink];
return YES;
}
return NO;
}
这个方法被调用,一切正常,就像它已经安装的情况一样。
但问题在于 iOS 9 和 10 模拟器和设备/以及 iOS 8 设备。根据 iOS 9 和 10 的指南,
- (BOOL)application:(UIApplication *)app
openURL:(NSURL *)url
options:(NSDictionary<NSString *, id> *)options {
}
如果应用程序没有安装和第一次打开,应该调用该方法,但安装后不调用。在 iOS 8 模拟器上调用的 openURL 方法也在 iOS 8 设备上不调用。
[FIRApp configure]
叫做。我测试了更改CustomURLScheme
设置。在 iOS 8 上,它无需设置即可工作[FIROptions defaultOptions].deepLinkURLScheme
。但是使用 iOS 8 的情况,我配置了 ,并使用该方案CustomURLScheme
添加了该设置,但也使用该行,仍然只有 iOS 8 模拟器工作。[FIROptions defaultOptions].deepLinkURLScheme
即使它在安装后第一次启动时不起作用,但当我在安装后单击链接时,它运行良好。
[更新:我测试了更多变化的 iOS 版本,无论是在模拟器还是设备上]
未安装 iOS8.3 设备 -> 不工作
未安装 iOS8.4 模拟器 -> 工作
未安装 iOS8.3 模拟器 -> 工作
iOS9.1 模拟器未安装 -> 工作
未安装 iOS9.2 模拟器 -> 不工作
已安装-> 不工作
iOS9.3.2 设备未安装 -> 不工作
安装 -> 工作
未安装 iPhone 5s iOS 9.3 模拟器 -> 工作
已安装-> 不工作
iOS10.1模拟器未安装->工作
安装 -> 工作