2016-02-23 74 views
0

我的老闆讓我在Objective-C應用程序中啓用深層鏈接,但我不知道那種語言。首先,我啓用URL方案在info.plist如何在Safari中啓用從深層鏈接啓動應用程序iOS

enter image description here

然後在我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; 
} 

如果從iOS的Safari瀏覽器我啓動URL superbar://它說,Safari瀏覽器無法打開網頁。 我相信我錯過了didFinishLaunchingWithOptions的東西,但是什麼?

回答

1

只需在safari地址欄中輸入superbar://即可。 應用程序應啓動。 請檢查您的信息選項卡 - > URL類型

+0

它不起作用。正如我所說的iOS Safari說它無法啓動/查找頁面 –

+1

一旦你已經添加一個URL模式到你的info.plist,它*應該*至少啓動你的應用程序,不管'didFinishLaunchingWithOptions'配置。你確定你在URL標識符中設置了正確的包ID嗎? –

+0

也轉到Xcode項目中的Info選項卡。檢查URL類型。確保您選擇的標識符和URL方案是唯一的。 –

相關問題