应用间跳转问题

本文详细介绍了iOS应用间的跳转及参数传递方法,包括如何设置白名单、URLSchemes,以及通过特定格式的URL进行应用跳转,并解析了如何在目标应用中接收这些参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天跟朋友视频,帮他解决的问题就是应用间跳转以及传参的问题!帮他完成了一个demo,他看的也是迷糊的(自己太菜讲不清除)。就在这系统的总结一些东西。

首先看一张图片:


这两个字段:一个是白名单(你即将打开的APP的URL Schemes的值)这是iOS9以后必须设置的。一个是URL Schemes这个类似于你应用的唯一标示别的APP调用的时候需要知道你这个字段的值。

打开应用的话需要调用如下代码:

- (IBAction)jump3:(id)sender {
    NSURL *url = [NSURL URLWithString:@"news://timeLine/yourpath/?username=WT&password=123456&callback=myapp"];
    if ([[UIApplication sharedApplication] canOpenURL:url]) {
        [[UIApplication sharedApplication] openURL:url];
    }

}

很明显 news://timeLine/yourpath/?username=WT&password=123456&callback=myapp 这个就是打开应用的关键,可能会发现news后面有好多个参数:这就是传参的关键了!

在代理方法中:

-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options{

    NSLog(@"%s====>=====>%@",__func__,url.absoluteString);
    return YES;
}

你是可以拿到这个参数的:(也就是说你相传的值是可以放在这个地方在打开应用的时候是可以被取到的)

其中news是URL Scheme 即[url scheme],

timeLine是host,即[url host],

yourpath是path,即[url path],

username=WT&password=123456&callback=myapp 是query即[url query]。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值