[英]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.