两个APP之间实现跳转

时间:2021-02-08 17:36:11
一个程序若要跳到另一个程序。需要在目标程序的plist文件里面修改:
打开info.plist,添加一项URL types

展开URL types,再展开Item0,将Item0下的URL identifier修改为URL Scheme

展开 URL Scheme ,将Item0的内容修改为shashan.SecondApp(此为跳转的key)
然后在原程序里面,要开始跳转的地方,可以为一个button的方法。里面写上:
NSURL * myURL_APP_A = [NSURL URLWithString:@“shashan.SecondApp://AAAAA"];//shashan.SecondApp为目标App的key
            if ([[UIApplication sharedApplication] canOpenURL:myURL_APP_A]) {
                NSLog(@"canOpenURL");
                [[UIApplication sharedApplication] openURL:myURL_APP_A];
            }
然后就可以跳转了。如果要跳回,方法相同。 


已有应用程序

AppStore里面找到应用程序,点击应用程序下面的小三角图标,再选择”复制链接“,就可以获取此应用的链接了。

比如:

itunes.apple.com/cn/app/bai-du-wen-kuhd/id483064532?mt=8

然后将 https:// 替换为 itms:// 或者 itms-apps://:

然后在程序中写如下代码:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms://itunes.apple.com/cn/app/bai-du-wen-kuhd/id483064532?mt=8"]];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itunes.apple.com/cn/app/bai-du-wen-kuhd/id483064532?mt=8"]] 
注意:只能在真机上调试出效果,模拟器上无效果。

下面附赠主要代码:
在本APP的.m文件中,主要代码有

//  App跳转到SecondApp

- (IBAction)appJumpToAnotherAppAction:(id)sender

{

    NSURL *url = [NSURLURLWithString:@"shanshan.SecondApp://AAAA"];//通过openUrl进行跳转,可以传递一些参数

    

    if ([[UIApplication sharedApplication]canOpenURL:url]) {

        [[UIApplication sharedApplication]openURL:url];

    }else{

       NSLog(@"应用程序未安装");

    }

}

//  App跳转到AppStore

- (IBAction)AppChangeToAppStore:(id)sender

{

    [[UIApplicationsharedApplication]openURL:[NSURLURLWithString:@"itms://itunes.apple.com/cn/app/bai-du-wen-kuhd/id483064532?mt=8"]];

    [[UIApplicationsharedApplication]openURL:[NSURLURLWithString:@"itunes.apple.com/cn/app/bai-du-wen-kuhd/id483064532?mt=8"]];

}

在SecondAPP 

AppDelegate 中的主要代码

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

{

    if ([[urlscheme]isEqualToString:@"shanshan.SecondApp"]) {

       NSLog(@"%@跳转过来的 - %@",sourceApplication,[url resourceSpecifier]);

        self.otherString = [[[urlresourceSpecifier]componentsSeparatedByString:@"//"]objectAtIndex:1];

       NSLog(@"传递过来的参数 = %@",self.otherString);

        

        

    }

    return YES;

}