我已设置深层链接以使用我的应用,回复应用代理中的以下功能:
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation;
如果之前已经打开了应用,那么您可以打开Safari的链接,例如:
myapp://foo/bar
它可以毫无问题地打开应用程序并处理链接。
但是,如果您杀死应用程序(使用应用程序切换器)然后从Safari打开相同的链接,它将在模拟器中使应用程序崩溃或在运行iOS 8.1.3的iPhone 5上崩溃设备。
但我不明白为什么?
我已尝试从应用代理中删除application:sourceApplication:annotation:
功能,但如果应用未运行,它仍然会崩溃。 (如果它正在运行它打开应用程序正常)。
有什么想法吗?
答案 0 :(得分:0)
找了几个小时后,这对我有用了
if([[UIApplication sharedApplication] canOpenURL:url]){
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[[UIApplication sharedApplication] openURL:url];
});
}
答案 1 :(得分:0)
试试这个。
ios 11的开放URL(深层链接)更新
func application(_ application: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool
{
if url.absoluteString.contains("ABC") {
NotificationCenter.default.post(Notification.init(name: Notification.Name(rawValue: "reloadData")))
return true
}
else // facebook
{
return FBSDKApplicationDelegate.sharedInstance().application(application, open: url, options: options)
//return true
}
//return true
}