iOS URL Scheme 第三方跳转

从浏览器跳转到app

通过URL Scheme的方式启动应用和参数的传递,要先创建URL Scheme

  • 可以在info.plist里手动添加URL typesURL identifierURL Schemes像这样:

我是图1我是图1

  • 也可以在info标签下的 URL Types 下,直接填写。

我是图2我是图2

Safari中直接在浏览器的地址栏中输入dsny://,就可以跳转到app里了。

注意:如果Bundle Identifier 和 设置的 URL identifier 不一致,系统会弹出提示框,询问是否跳转。

从一个app跳转到另一个app

还记得这样的跳转吧,它可以从当前app调到iMessagesms://其实就是iMessageURLScheme

1
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms://1851826****"]];

同样的道理,在一个app里写入如下的代码,就可以跳转到刚才设置URLScheme的app里了:

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

如果app之间跳转还需要通信的话,参数可以这样传递:

1
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"dsny://?name=123&sex=2"]];

可以这样接收:

1
2
3
4
5
6
7
8
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
NSLog(@"调用的应用程序的Bundle ID是: %@", sourceApplication);
NSLog(@"URL scheme:%@", [url scheme]);
NSLog(@"URL query: %@", [url query]);

return YES;
}

再扩展想一下,我们经常写的跳转到微信,微博授权分享,不就是把三方给我们提供的AppKey写到URLScheme。我们调用sdk方法使app跳到微信,微信就可以通过AppKey顺利跳回我们的app。

从一个app跳转到系统设置的子页面

stackoverflow上找到的:

  • prefs:root=General&path=About
  • prefs:root=General&path=ACCESSIBILITY
  • prefs:root=AIRPLANE_MODE
  • prefs:root=General&path=AUTOLOCK
  • prefs:root=General&path=USAGE/CELLULAR_USAGE
  • prefs:root=Brightness
  • prefs:root=General&path=Bluetooth
  • prefs:root=General&path=DATE_AND_TIME
  • prefs:root=FACETIME
  • prefs:root=General
  • prefs:root=General&path=Keyboard

简单的列举几个,没有的子页面可以去这里找。更多

添加这段代码:

1
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=WIFI"]];

这样还不够,还需创建个app的URL Scheme,只填写prefs就可以了。
至于为什么这么写,暂时还没有研究。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
URL Scheme跳转是一种在iOS中实现App之间跳转的方式。它可以通过在Safari或其他浏览器中输入特定的URL Scheme来启动目标App,并且可以通过在URL中添加自定义的参数来传递信息。URL Scheme的形式类似于网页,可以在Safari中输入类似"yourscheme://xxxxx"的URL来进行跳转。如果配置成功,则会弹出提示框询问是否访问该应用。 在iOS中,还有另一种常见的跳转方式叫做Universal Links。与URL Scheme不同,Universal Links是通过在网页上添加普通的超链接来实现跳转。当用户点击这个超链接时,会直接在对应的App内打开相关页面。相比URL Scheme,Universal Links更加方便,因为它不需要在URL中添加特定的Scheme,并且可以在App内部直接处理跳转逻辑。 总结起来,URL Scheme跳转是通过在浏览器中输入特定的URL Scheme来启动目标App并传递参数,而Universal Links是通过在网页上添加超链接来实现跳转到对应的App内部。两种方式都可以实现App之间的跳转,具体使用哪种方式取决于具体的需求和场景。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [IOS应用跳转URL scheme和Universal Links](https://blog.csdn.net/shaobing32/article/details/131170384)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值