简体   繁体   English

如何启用从Safari iOS中的深层链接启动应用程序

[英]How to enable launching of the app from deep link in Safari iOS

My boss asked me to enable deep linking in a Objective-C app but I don't know that language. 我的老板要求我在Objective-C应用程序中启用深度链接,但我不知道该语言。 First, I enabled URL schemes in info.plist : 首先,我在info.plist启用了URL方案:

在此处输入图片说明

then in my AppDelegate.m I have: 然后在我的AppDelegate.m我有:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [NSThread sleepForTimeInterval:2]; //add 2 seconds longer.

    // Do your time consuming setup

    [splashView removeFromSuperview];

    _pushDict= nil;
    [self APNSRegistration];
    [[UINavigationBar appearance] setTintColor:[UIColor blackColor]];

    //[UIApplication sharedApplication].applicationIconBadgeNumber =0;
    // Assign tab bar item with titles
    UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
    UITabBar *tabBar = tabBarController.tabBar;
    UITabBarItem *tabBarItem1 = [tabBar.items objectAtIndex:0];
    UITabBarItem *tabBarItem2 = [tabBar.items objectAtIndex:1];
    UITabBarItem *tabBarItem3 = [tabBar.items objectAtIndex:2];
    UITabBarItem *tabBarItem4 = [tabBar.items objectAtIndex:3];
    UITabBarItem *tabBarItem5 = [tabBar.items objectAtIndex:4];

    tabBarItem1.title = @"";
    tabBarItem2.title = @"";
    tabBarItem3.title = @"";
    tabBarItem4.title = @"";
    tabBarItem5.title = @"";
    NSString *badgeValue = [NSString stringWithFormat:@"%ld", (long)[UIApplication sharedApplication].applicationIconBadgeNumber];
    if([badgeValue  isEqual: @"0"]) badgeValue = nil;
    tabBarItem3.badgeValue = badgeValue;

    //unselected
    [tabBarItem1 setImage:[[UIImage imageNamed:@"0003-home3.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
    [tabBarItem1 setSelectedImage:[[UIImage imageNamed:@"0003-home3_selected.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
    //unselected
    [tabBarItem2 setImage:[[UIImage imageNamed:@"tazza.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
    [tabBarItem2 setSelectedImage:[[UIImage imageNamed:@"0163-mug_selected.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
    //unselected
    [tabBarItem3 setImage:[[UIImage imageNamed:@"0084-calendar.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
    [tabBarItem3 setSelectedImage:[[UIImage imageNamed:@"0084-calendar_selected.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
    //unselected
    [tabBarItem4 setImage:[[UIImage imageNamed:@"0016-camera.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
    [tabBarItem4 setSelectedImage:[[UIImage imageNamed:@"0016-camera_selected.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
    //unselected
    [tabBarItem5 setImage:[[UIImage imageNamed:@"0072-location.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
    [tabBarItem5 setSelectedImage:[[UIImage imageNamed:@"0072-location_selected.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];

    NSDictionary *pushDict = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];

    _pushDict= pushDict;
    return YES;
}

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options {
    printf("openURL called");
    return YES;
}

If from iOS Safari I launch the URL superbar:// it says that Safari cannot open the page. 如果从iOS Safari浏览器启动URL superbar://则表示Safari无法打开页面。 I am sure I am missing something in didFinishLaunchingWithOptions , but what? 我确定我在didFinishLaunchingWithOptions缺少了什么,但是呢?

Simply type superbar:// in safari adress bar. 只需在野生动物园地址栏中输入superbar:// App should launch. 应用应启动。 Please check in your info tab -> URL Types 请检查您的信息标签-> URL类型

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 从ios框架启动应用程序或在野生动物园中打开链接 - launching app or opening link in safari from ios framework 从另一个应用程序打开 Safari 的深层链接 - Deep link to open Safari from another app 使用 appium 从 iOS 移动应用程序自动启动 Safari - Automate launching Safari from a iOS mobile app using appium iOS 9.3.2自定义URL方案未从Safari启动应用 - iOS 9.3.2 Custom URL Scheme not launching app from Safari 如何从网站到Android应用程序的深层链接 - How to Deep link from Website to android App 从深层链接启动应用程序时未调用 AppDelegate ContinueUserActivity,应归咎于 Firebase SDK - AppDelegate ContinueUserActivity not called when launching app from deep link, Firebase SDK is to blame iOS - 从系统设置运行应用程序深层链接 - iOS - run app deep link from system settings 从Safari启动应用程序或应用程序商店? - Launching app OR app store from Safari? 如何直接在iOS上的Okta Mobile中深度链接到应用程序 - How to deep-link directly to an app in Okta Mobile on iOS 在不使用iOS应用程序中的任何特定URL的情况下启动Safari App - Launching Safari App without using any specific url from an iOS App
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM