首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS 12 - AppAuth重定向URL不会触发AppDelegate

是一个关于iOS开发中的一个问题,涉及到AppAuth框架的使用和重定向URL的处理。

AppAuth是一个用于iOS开发的开源框架,用于处理OAuth 2.0授权流程。在iOS 12及以上版本中,有一个变化导致了重定向URL不会触发AppDelegate的问题。

在iOS 12之前的版本中,可以通过AppDelegate的application(_:open:options:)方法来处理应用接收到的重定向URL。但是从iOS 12开始,为了增强安全性,系统默认会自动处理一些特定URL Scheme的重定向,而不会再触发AppDelegate的相关方法。

解决这个问题的方法是,需要在Xcode项目的Info.plist文件中添加一个新的Key-Value对,将URL Scheme添加到“LSApplicationQueriesSchemes”数组中。这样系统就会认为应用需要处理这个URL Scheme,从而触发AppDelegate的相应方法。

以下是一个完善且全面的答案:

AppAuth是一个用于iOS开发的开源框架,用于处理OAuth 2.0授权流程。在iOS 12及以上版本中,由于系统安全性的提升,重定向URL不再触发AppDelegate的方法,导致开发者无法处理授权流程中的重定向URL。

为了解决这个问题,开发者需要在Xcode项目的Info.plist文件中添加一个新的Key-Value对。在Info.plist的“LSApplicationQueriesSchemes”数组中添加需要处理的URL Scheme,例如"myapp"。这样系统会认为应用需要处理这个URL Scheme,从而触发AppDelegate的相关方法。

同时,在AppDelegate中,开发者需要重写application(_:open:options:)方法,并在其中判断是否为重定向URL,并进行相应的处理。以下是一个示例代码:

代码语言:txt
复制
func application(_ application: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
    if url.scheme == "myapp" {
        // 处理重定向URL
        return true
    }
    return false
}

AppAuth框架在iOS开发中有着广泛的应用场景,特别是在需要进行OAuth 2.0授权的应用中。腾讯云为开发者提供了一系列相关的云服务产品,推荐使用腾讯云的移动云服务解决方案,以提高应用的稳定性和安全性。

腾讯云移动云服务产品中的推荐产品包括:

  1. 腾讯云移动推送:提供高效稳定的消息推送服务,支持iOS和Android平台,可用于向应用用户发送重要通知和消息。了解更多:移动推送产品介绍
  2. 腾讯云移动应用分析:用于收集和分析移动应用的用户行为数据,提供数据统计和分析报表,帮助开发者了解应用的使用情况和用户行为。了解更多:移动应用分析产品介绍
  3. 腾讯云移动直播:提供高清稳定的移动直播服务,支持iOS和Android平台,可用于在应用中实现实时视频直播功能。了解更多:移动直播产品介绍

以上是关于iOS 12 - AppAuth重定向URL不会触发AppDelegate的完善且全面的答案。希望对您有所帮助。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

从0开始构建一个Oauth2Server服务 移动和本机应用程序

代码质询是代码验证器的 SHA256 散列的 Base64-URL 编码字符串。该散列值在授权请求中发送,因此原始随机字符串永远不会暴露给应用程序外部的任何内容。...iOS 和 Android 都为应用程序提供注册自定义 URL 方案的能力,这些方案可用作重定向 URL。这有时在平台文档中也称为“深度链接”。...这两个平台还允许应用程序注册自己,以便在访问匹配的 URL 模式时启动(iOS 上的“通用链接”和安卓上的“应用程序链接”)。...该服务将用户重定向回应用程序 当用户完成登录时,该服务将重定向回您的应用程序的重定向 URL,这将导致安全浏览器 API 将生成的 URL 发送到您的应用程序。...有些服务支持注册多个重定向 URL,有些服务需要在每个请求中指定重定向 URL。查看服务的文档以了解详细信息。

19630
  • iOS Universal link 入门指南

    当你的应用支持Universal Link(通用链接),当用户点击一个链接是可以跳转到你的网站并获得无缝重定向到对应的APP,且不需要通过Safari浏览器。...1.3 Universal link 跳转的好处 唯一性: 不像自定义的URL Scheme,因为它使用标准的HTTPS协议链接到你的web站点,所以一般不会被其它的APP所声明。...在AppDelegate里中实现代理方法,官方链接:Handling Universal Links Objective-C: - (BOOL)application:(UIApplication *)...Universal Link,而知乎正经的Urlhttps//www.zhihu.com/questions/xxx是不会触发Universal Link的,知乎为什么制作,为什么不把他的主域名配置Universal...未安装AppWebView 原地跳转https://www.xxx.com/view/* 命中服务器的重定向逻辑 重定向到https://www.xxx.com/view/* 打开相应的H5页面 5.

    1.9K11

    Universal Link 前端部署采坑记

    url链接,浏览器可以正常跳转,因此不会出现在iOS上讨人厌的框 Universal Link目前还没有基于iOS的UI/WKWebView的应用进行拦截,所以目前看还是能突破微信/手百的封锁。...Universal Link,而知乎正经的Urlhttps//www.zhihu.com/questions/xxx是不会触发Universal Link的,知乎为什么制作,为什么不把他的主域名配置Universal...,如果命中了apple-app-association注册过的通用链接 打开App,触发Universal Link delegate 没命中,webview继续跳转url 在你进行apple-app-association...Universal Link一切正常,根本不会打开App 是不是不太好理解,那直接拿知乎举例子 https://www.zhihu.com/question/22914651 知乎的一般网页URL都是www.zhihu.com...appID": "xxxxxx.xxx.xxx.xxxxx", "paths":[ "/view/*", "/_iosuniversallink/*"] }, 我们的AppDelegate

    2.9K60

    设计模式 - 命令模式&中介者模式&组合模式~AppDelegate 解耦

    场景 AppDelegate 是应用程序的根对象,即唯一代理,可以认为是每个 iOS 项目的核心。...所以说 AppDelegate 的简洁和清晰对于健康的 iOS 架构来说是至关重要的。 下面我们利用上述三种设计模式实现对AppDelegate的解耦,使其优雅。...UML 命令模式URL图 实现方式 声明仅有一个执行方法的命令接口。 抽取请求并使之成为实现命令接口的具体命令类。每个类都必须有一组成员变量来保存请求参数和对于实际接收者对象的引用。...UML 组合模式URL图 其中类比到AppDelegate场景下,AppDelegate是一个根Composite角色,而各个业务便是Leaf角色,如果应用到组件化中,则各个组件便是Leaf角色或者Composite...对于AppDelegate而言,其内部不会再有任何业务上的逻辑,并且因为协议的默认实现,已经将任务默认分发到各个Leaf中,其剩余的任务仅仅就是提供Leaf列表,并且考虑到在组件化环境中的使用,不直接引用各

    58320

    启动时间的一些分析

    二、iOS如何启动App WWDC视频中对启动过程做了一些介绍,先看iOS 13以前用dyld2是如何启动App: ?...5、符号绑定和重定向,动态链接与静态链接一样,符号最终都需要转换为运行时的内存地址;动态库的符号需要运行时,才能确定所有符号的具体位置;还有另外一个影响的因素是iOS的ASLR(进程地址空间布局随机化)...在启动时候,就直接读取缓存并校验是否有效,再进行后续的动态库加载、符号绑定和重定向以及静态初始化。 ​...File Backed Page In 就是PageFault,内存缺页中断,访问一个虚拟内存地址而内存中还不存在时触发,操作系统会分配物理内存并拷贝内容到对应物理内存; Page Cache Hit...如果操作系统的PageCache里有对应缓存,则会触发一个Page Cache Hit;(参考资料) Copy On Write 操作系统中的内存页存在共享的情况,如果某些页是只读,则一直是可以共享的

    1.3K20

    iOS 本地推送概念步骤:属性:点击通知跳到指定控制器界面快捷回复功能(iOS 8以后可用), category 属性的使用方法

    说明新内容的数量) 播放音效(提醒作用) 2.用户也可以决定是否要开启以下4个功能: 显示App图标数字 播放音效 锁屏显示 显示在“通知中心” 3、注意: 发送推送通知时,如果程序正在前台执行,那么推送通知就不会被呈现出来..., nonatomic,copy) NSTimeZone *timeZone; 7、 设置重复,每隔多久重复发一次推送通知,单位是日历组件,最小单位是分钟,0代表不重复,如果此属性设置了, 那么调度池不会用完释放...(8_2); 12、设置通知推送携带的参数,一般用于点击通知打开指定控制器页面 @property(nullable, nonatomic,copy) NSDictionary *userInfo; 例子...8以后可用), category 属性的使用方法 如QQ的功能:触发通知后,点击下拉出现,点击“好的”两个字当做消息回复回去 ?...锁屏左滑效果 步骤: 1、发送通知时,给通知对象设置一个 category 标识符,用于AppDelegate中的配置 localNotifi.category = @"category"; 2、在AppDelegate

    2.5K60

    微信中通过页面(H5)直接打开本地app的解决方案

    IOS实现:ios像直接点击链接打开本地app就难了,有两种方式可供我们选择:   1.腾讯深度合作的公司,微信可以帮你打开app;   2.使用IOS9+的新功能“Universal Links”(通用链接...content/documentation/General/Conceptual/AppSearch/UniversalLinks.html#//apple_ref/doc/uid/TP40016308-CH12...-SW2 扩展知识(关于Xamarin) 如果你要处理链接打开本地app并跳转到相应的详情页的话,需要这样实现: 1.在你的xxx.iOS项目打开“AppDelegate.cs”文件; 2.重写方法,代码如下...string.IsNullOrEmpty(url)) { //你的业务处理 } } return true; } 参考文档:https...id=10,系统默认是打开页面,而不是触发通用链接打开app; 3.

    3.1K130

    解决 iOS 15 上 APP 莫名其妙地退出登录

    复现反馈的问题 用户报告中的具体信息有限,我们唯一知道的是:从 iOS 15 开始,用户打开程序后会发现自己已经退出登录。...2、一个意外的API调用返回HTTP 401并触发退出登录。 3、Keychain 抛出了一个错误。 我能够排除前两个潜在的原因,这要归功于我在自己重现该问题后观察到的一些微妙行为。...毕竟,我们已经很多年没有改变过这部分代码了,而且它在iOS 12、13和14系统中一直运行良好,那么是什么原因呢?...:) — 12:03:04 ViewController.viewDidAppear(_:) — 12:03:04 在我真正解锁手机并点击应用图标之前的25分钟,应用程序本身就已经启动了!...Twitter:Apple开发人员文档的首页 推特翻译:有趣的iOS 15优化。

    88010

    iOS 推送手机消息背后的技术

    会记录用户对于该App的授权状态,不会向用户重复申请授权。...推送证书分为开发环境和生产环境的证书,分别对应不同的APNs推送接口,我们从苹果开发者平台或者第三方平台导出的推送证书一般有p12和pem两种格式的文件,为了便于接口调用我们可以通过以下命令将p12格式的文件转换为...openssl pkcs12 -in push_dev.p12 -out push_dev.pem -nodes 基于证书建立TLS连接的流程如下图所示: 业务方服务器(Provider)向APNs服务器发起建立...等参数的字典类型;badge参数使用整形设置App图标右上角显示的数字,badge设置为0时角标不会显示;sound参数用于设置推送的声音,不传该参数或者传递空字符串则推送不会发出提示音,设置为default...> @end @implementation AppDelegate //在App启动后就将AppDelegate对象配置为NotificationCenter的delegate - (BOOL)application

    3.9K103

    iOS微信第三方登录实现

    (注意) 1、下载iOS微信SDK。 2、将SDK放到工程目录中。 3、补充导入一些依赖框架。 4、添加URL Types 5、添加iOS9 URL Schemes....query for scheme weixin" 6、iOS9中新增App Transport Security(简称ATS)特性, 主要使到原来请求的时候用到的HTTP,都转向TLS1.2协议进行传输...对于iOS应用,考虑到iOS应用商店审核指南中的相关规定,建议开发者接入微信登录时,先检测用户手机是否已经安装 微信客户端(使用sdk中的isWXAppInstall函数),对于未安装的用户隐藏微信...对于iOS应用,考虑到iOS应用商店审核指南中的相关规定,建议开发者接入微信登录时,先检测用户手机是否已经安装 微信客户端(使用sdk中的isWXAppInstall函数),对于未安装的用户隐藏微信...若access_token未超时,那么进行refresh_token不会改变access_token,但超时时间会刷新,相当于续期access_token。

    2.4K40

    iOS-微信支付(二)高潮

    withDescription:@"demo 2.0"]; return YES; } 2.5 将WXApiManager.h和WXApiManager.m拖入到工程里面(能用工具类,最好用工具类,不然AppDelegate...里操作 2.7.1 首先在AppDelegate里面导入头文件 #import #import "WXApiManager.h" 2.7.2 其次,处理微信回调,调用handleOpenURL...方法,因为随着iOS的升级,有的方法废弃了,这里建议,下面三个方法里面都增加上,以防万一 #pragma mark - 设置微信回调 // 支持所有iOS系统(被废弃的方法.但是在低版本中会用到.建议写上...delegate:[WXApiManager sharedManager]]; } // 仅支持iOS9以上系统,iOS8及以下系统不会回调 - (BOOL)application:(UIApplication...} // 支持目前所有iOS系统 - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {

    1.2K40
    领券