iOS - 如何使用URL方案实现Deep Linking以打开App或转到itunes链接

问题描述 投票:1回答:1

我在plist文件中的URL Scheme有一个问题“m.zameen.com”,但是我在iPhone的safari浏览器中输入这个而不是op [en但是当我打开使用时://它打开了

    // In AppDelegate.m file

-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{

  if([[url host] isEqualToString:@"page"]){

    if([[url path] isEqualToString:@"/main"]){

      [self.mainController setViewControllers:@[[[DLViewController alloc] init]] animated:YES];
    }

    else if([[url path] isEqualToString:@"/page1"]){

      [self.mainController pushViewController:[[Page1ViewController alloc] init] animated:YES];
    } 
    return YES;
  }

  else{

    return NO;
  }

}
 // In DLViewController.m file

- (IBAction)page1Clicked:(id)sender {
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"m.zameen.com://page/page1"]];
}


// In Page1ViewController.m file

- (IBAction)mainPageClicked:(id)sender {
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"m.zameen.com://page/main"]];
}
ios objective-c
1个回答
0
投票

在项目“信息”选项卡中,使用您要用于打开应用程序的方案添加新的URL类型,例如“myAwesomeAppScheme”,使用标识符字段中的应用程序包标识符“com.myCompany.myAwesomeApp”和您想要的方案在URL Schemes字段中:

然后在你的app委托中你可以检查打开的url是否有你的方案

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
    if ([url.scheme isEqualToString:@"myAwesomeAppScheme"]) {
        ...
    }
}

最后要从外部应用程序打开应用程序,链接必须像myAwesomeAppScheme://parameters/for/opening/viewcontrollers?otherParam=blahblah

© www.soinside.com 2019 - 2024. All rights reserved.