iOS 一个app跳转另一个app并实现通信(如A跳到B并打开B中指定页面)

功能实现:A跳到B并打开B中指定页面

步骤:

1.首先创建两个项目(项目A,项目B),在项目B中的info.plist文件中添加URL Types,如下图所示:其中URL idenifier是项目B的bundle id ,URL Schemes 中添加一个命令前缀,我这里使用“projectB”,这个名字可以自己取,运行一下项目B。

2.在项目A中添加跳转代码

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"projectB://"]];
  • 1
  • 1

这里的URL的命令前缀必须和之前自己定义的一致,我把这行代码加到了一个button的点击方法里,现在点击button就可以跳到项目B了。

3.现在说下app之间跳转的通信,其实跟传值差不多。项目A中第二个button的点击方法添加代码

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"projectB://openBSecondPage"]];
  • 1
  • 1

4 . 项目B中在appDelegate中添加一个NSURL的属性,实现一个代理方法接收从项目A传过来的URL

-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
    self.url = url;
    return YES;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

然后在B中第一个界面加上代码

- (void)viewDidLoad {
    [super viewDidLoad];
    NSURL * url = ((AppDelegate *)[UIApplication sharedApplication].delegate).url;
   ;
    if(url){
        //显示一下从A获取的url,url = projectB://openBSecondPage,host = openBSecondPage
        self.label.text = [NSString stringWithFormat:@"url = %@,host = %@",[url absoluteString],[url host]];
        //根据传过来的url的host进行一些操作
        if ([[url host]isEqualToString:@"openBSecondPage"]) {
            //跳转到第二个界面
            [self performSegueWithIdentifier:@"second" sender:nil];
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14



简而言之,就是根据从A中传过来的URL打开项目B后进行一些自定义操作

b的具体解析过程为:    NSURL * url = ((AppDelegate *)[UIApplication sharedApplication].delegate).url;
    ;
    if(url){

NSArray *arr = [url.host componentsSeparatedByString:@"&"];
        
        NSLog(@"%@",arr);
        
        UILabel *lab = [[UILabel alloc]initWithFrame:CGRectMake(10, 200, 300, 300)];
        
        lab.text = [NSString stringWithFormat:@"%@",arr];
        
        lab.numberOfLines = 0;
        
        [self.view addSubview:lab];
        
        //根据传过来的url的host进行一些操作
        if ([arr.lastObject isEqualToString:@"openurl=openBSecondPage"]) {
            //跳转到第二个界面
            secondViewController *sec = [[secondViewController alloc]init];
            
            [self.navigationController pushViewController:sec animated:YES];
        }
    }

时间: 2024-12-28 04:48:05

iOS 一个app跳转另一个app并实现通信(如A跳到B并打开B中指定页面)的相关文章

微信内打开的网页不能下载APP,微信无法打开浏览器访问指定页面的解决方案交给gdtool

前言 现如今微信对第三方推广链接的审核是越来越严格了,域名在微信中分享转发经常会被拦截,一旦被拦截用户就只能复制链接手动打开浏览器粘贴才能访问,要不然就是换个域名再推,周而复始.无论是哪一种情况都会面临一个非常严重的问题,那就是用户体验差,用户量无法有效地累积起来,从而导致推广成本一直在增加,推广效率却无法有明显的提升. 所以针对这个问题,特写这篇文章来分享如何正常从微信内访问已经被拦截的链接,或者说如何有效地防止链接被微信拦截.此方法适用于安卓和苹果,且不需要安装任何软件和插件. ? 简单的处

android一个app打开另一个app的指定页面

一个app打开另一个app的指定页面方法 有以下几种 1.通过包名.类名 2.通过intent的 action 3.通过Url 方案1. ComponentName componentName = new ComponentName("com.example.bi", "com.example.bi.SplashActivity");//这里是 包名 以及 页面类的全称 Intent intent = new Intent(); intent.setComponen

如何将App从一个账号迁移到另一个账号?

App迁移(App transfer):将App从一个开发者账号迁移至另一个开发者账号.此文演示了整个迁移过程,为了方便解释,在此过程中,将App转出的开发者账号我们下文将会称之为A账号,接收B开发者账号我们下文将会称之为B账号. 1. 迁移准备 B账号的 Apple ID (PS:A账号转出时需要填写目标账号的Apple ID): B账号的 Team ID(PS:A账号转出时需要填写目标账号的Team ID): Team ID的获取方法: 使用B账号登录苹果开发者网站 "Member Cent

如何替换触屏去点击Android的一个App应用上的一个button

============问题描述============ 各们大侠,本对android不了解,问一个方案可不可以实现: 一个已经发布的APP,这个APP进去后有一个button,正常情况是我们是用手点击这个button,就会触发这个button的事件: 现在我想开发一个android应用,用这个应用去触发APP上的button,可以实现吗? ============解决方案1============ 你要触发按钮事件,首先你得先能得到这个按钮的对象 ============解决方案2======

一个编程小白,如何入门APP软件开发领域?

近些年,互联网创业火得不得了!一时间,满世界都在招做App软件开发的专业人员.从大众角度来看,学编程,写代码,是一件非常困难的事情.但是,App开发人员的工资那么诱人,让很多小白也跃跃欲试想学一下.那么,一个编程小白如何入门App软件开发领域呢?如何快速掌握App开发技术呢? 对于APP开发,如何选择原生与混合,小编的意见就是选择自己擅长的,对于新手来说,选择简单的.从无到有,循序渐进,这样子从个人学习进度.学习兴趣来讲,都是合适的.一下子来个高大上,只能让你陷入困境.学习程序我的经验是,先看语

一个网站的诞生08-- 在Web App嵌入地图

LBS-Location Based Service,基于位置的服务.如果要在Web App嵌入地图,差不多可以做成LBS了.zuijiancanting.com的设计理念,是把Top餐厅放在地图上,那么当你到某个地方逛逛,或者有约会,拖拉一下地图就可以找到合适的餐厅. 提供地图API服务的公司很多,国外有GoogleMap,OpenStreetMap,国内有百度地图,腾讯地图,高德地图.GoogleMap由于某些原因不能正常使用,不在选择之列.我最先考虑的是OpenStreetMap,因为除了

做一个日收入1000元的APP!

[导语]虽然讲了很多个人开发者的文章,但新手开发者如何赚自己的第一个100块钱,确是最难的事情.群里有人说都不知道干什么 app赚钱,完全没有想法, 并且经常问我有什么快速赚钱的方法.我只能遗憾地说,我真不知道.又有很多人说,现在市场上什么app都有了,完全没希望了,这种话我真的不想听. 我虽然不能告诉大家怎么赚大钱,因为我自己也赚得不多,但是我把自己的经验分享给大家,希望你们能赚大钱. 一.挖掘细分市场 大家普遍知道搞视频播放(类似优酷).搞阅读(类似掌阅).搞电商(类似京东)都能赚钱,但是这

谋哥:社交小游戏App将是下一个金矿!

[谋哥每天一原创干货,第四十五篇] 移动互联网的机会是非常多的,谁先做谁的机会就更大,所以把握时机非常重要.如今的App市场,各个分类的App已经多得眼花,也就是所谓的红海一片. 那么,在移动浪潮下,是不是还有其他机会?开发者的机会? 社交小游戏就是下一个金矿! 我很早以前,都在群里说我对社交游戏很看好,如今却依然被我看好.为什么呢?我们知道前几天<围住神经猫>火爆之后,很多商家已经闻到这种小游戏容易成功的气息.我也在文章说明这种游戏爆火其实很多专家无法理解,更多的时候是一种涌现,但是!它的突

如何开始一个模块化可扩展的Web App(转)

原文链接:http://avnpc.com/pages/start-a-modular-extensible-webapp 日志未经声明,均为AlloVince原创.版权采用『 知识共享署名-非商业性使用 2.5 许可协议』进行许可. 虽然从没有认为自己是一个前端开发者,但不知不觉中也积累下了一些前端开发的经验.正巧之前碰到一道面试题,于是就顺便梳理了一下自己关于Web App的一些思路并整理为本文. 对于很多简单的网站或Web应用来说,引入jQuery以及一些插件,在当前页面内写入简单逻辑已经