iOS应用跳转

热门标签

特别声明:文章多为网络转载,资源使用一般不提供任何帮助,特殊资源除外,如有侵权请联系!

应用跳转是指,自己的app跳转到指定的app(如果用户安装了此app的话).

例1:AppA 跳转到AppB.
AppA需要做的是: 添加白名单,实现跳转方法

(1)

iOS应用跳转
在info.plist添加白名单

(2) 实现跳转方法

    // 1.获取应用程序AppB的URL Scheme
    NSURL *appBUrl = [NSURL URLWithString:@"AppB://?AppA"];
    
    // 2.判断手机中是否安装了对应程序
    if ([[UIApplication sharedApplication] canOpenURL:appBUrl]) {
        // 3. 打开应用程序AppB
        [[UIApplication sharedApplication] openURL:appBUrl];
    } else {
       
        NSLog(@"没有安装AppB");
    }
AppB需要做的是: 设置自己的URL scheme, 在AppDelegate里实现跳转的方法

(1)设置自己的URL scheme

iOS应用跳转
设置自己的URL scheme

(2)在AppDelegate里实现跳转的方法

//URL scheme
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{
    
    return YES;
}
例2:AppA 跳转到AppB指定界面.
AppA需要做的是: 添加白名单,实现跳转方法(实现的方法不同了)
    // 1.获取应用程序AppB的Page1页面的URL
    NSURL *appBUrl = [NSURL URLWithString:@"AppB://Page1?AppA"];
    
    // 2.判断手机中是否安装了对应程序
    if ([[UIApplication sharedApplication] canOpenURL:appBUrl]) {
        
        // 3. 打开应用程序AppB的Page1页面
        [[UIApplication sharedApplication] openURL:appBUrl];
    } else {
        
        NSLog(@"没有安装");
    }
AppB需要做的是: 设置自己的URL scheme, 在AppDelegate里实现跳转的方法,在方法中实现指定界面跳转
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    // 1.获取导航栏控制器
    UINavigationController *rootNav = (UINavigationController *)self.window.rootViewController;
  
    // 2.获得主控制器
    ViewController *mainVc = [rootNav.childViewControllers firstObject];
    
    // 保存完整的App-A的URL给主控制器
    mainVc.urlString = url.absoluteString;
    
    // 3.每次跳转前必须是在跟控制器
    [rootNav popToRootViewControllerAnimated:NO];
    
    // 4.根据字符串关键字来跳转到不同页面
    if ([url.absoluteString containsString:@"Page1"]) { // 跳转到应用AppB的Page1页面
       
        //弹出方式取决于界面类型
        //[mainVc.navigationController pushViewController:[[Page1Controller alloc]init] animated:NO];
        [mainVc presentViewController:[[Page1Controller alloc]init] animated:NO completion:nil];
    }
    
    return YES;
}

 

标签:

未经允许不得转载:作者:SheaYang, 转载或复制请以 超链接形式 并注明出处 技术狗|博客
原文地址:《iOS应用跳转》 发布于2019-12-04

分享到:
赞(0)

评论 抢沙发

5 + 7 =


iOS应用跳转

长按图片转发给朋友

Vieu4.0主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录