iOS Swift URL Scheme APP跳转safari以及跳到另一个APP

源代码 2024-9-19 21:06:10 209 0 来自 中国
本人亲测有效!更多交换可以家魏鑫:lixiaowu1129,公重好:iOS过审汇总,一起探究iOS技能!OC版本语言

起首在plist文件内里设置。
URL identifier 一样平常为反域名+项目名称 (尽大概包管少重复)
URL Schemes是一个数组。一个APP可以添加多个。该参数为跳转时利用的标识。
1:跳转safari比力简朴
NSString *iTunesLink = @"http://www.xxxx.com";[[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];2:跳转回APP
safari按钮打开毗连(URL Scheme设置的参数)sxxxxk://   之后会弹窗提示,确认要返回app,点击确定就启动APP。(ios9直接url跳转safari之后左上角有一个返回的小按钮,貌似不消做URL Scheme就可以实现。但是URL Scheme更强盛一些。可以传参数)
3:URL Scheme传参数
safari跳转回APP时,打开毗连  sxxxxk://?xxxx
APPDelegate.mm内里实现

- (BOOL)applicationUIApplication *)application openURLnonnull NSURL *)url sourceApplicationnullable NSString *)sourceApplication annotationnonnull id)annotation {    NSLog(@"url : %@", url);    NSLog(@"scheme : %@", url.scheme);    NSLog(@"query : %@", url.query);    return YES;}跳回APP之后,调用该方法,输出为
url: sxxxxk://?xxxx
scheme: sxxxxk
query: xxxx
(safari跳回APP毗连背面添加?再添加参数xxx大概xxx1=1&xxx2=2)
Swift版本语言

新建两个项目 demo1 和 demo2。完成项目 demo1 跳转到项目 demo2
在项目 demo2 的 Info.plist 中添加字段 URL types -> URL Schemes,设置供别的app跳转利用的唯一URL demo2JumpUniqueKey(不要利用 _ ,否则会跳转失败)。
在项目 demo1的 Info.plist 中添加字段 LSApplicationQueriesSchemes, 范例设置为 Array,添加项目 demo2 中设置的URL demo2JumpUniqueKey。
项目 demo1 中跳转的方法
//不带参数的跳转//guard let urlLocal = URL(string: "demo2JumpUniqueKey:") else { return }//带参数跳转guard let urlLocal = URL(string: "demo2JumpUniqueKey://name=lisi,password=123"), UIApplication.shared.canOpenURL(urlLocal) else {    print("跳转失败")    return}UIApplication.shared.openURL(urlLocal)项目 demo2 中吸收项目 demo1 跳转传来的参数
如果存在 SceneDelegate 则利用 SceneDelegate.swift 的方法
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {        guard let context = URLContexts.first else { return }        //demo2JumpUniqueKey://name=lisi,password=123    print(context.url)        //<UISceneOpenURLOptions: 0x600002cb26a0; sourceApp: com.swiftprimer.demo1; annotation: (null); openInPlace: NO>    print(context.options)}如果不存在 SceneDelegate 则利用 AppDelegate.swift 的方法
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {        //demo2JumpUniqueKey://name=lisi,password=123    print(url)    return true}本文由mdnice多平台发布
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2025-4-19 19:39, Processed in 0.114161 second(s), 32 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表