You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS应用后台点击Universal Link无法获取URL,求对应触发方法

iOS后台点击Universal Link无法获取URL的解决方案

当应用处于后台时,点击Universal Link唤醒应用,需在SceneDelegate中实现对应方法来获取跳转URL——iOS 13+启用Scene架构后,原AppDelegate中的application(_:continue:restorationHandler:)方法不再触发。

核心解决方法

实现SceneDelegate的scene(_:continue:)方法,从NSUserActivity中提取Universal Link的URL:

func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {
    // 验证是否为Universal Link类型的用户活动
    guard userActivity.activityType == NSUserActivityTypeBrowsingWeb,
          let targetURL = userActivity.webpageURL else {
        return
    }
    
    // 在这里处理获取到的URL,执行对应功能跳转
    processUniversalLink(url: targetURL)
}

// 自定义URL处理方法示例
private func processUniversalLink(url: URL) {
    // 根据URL的路径、参数等,跳转至对应页面
    if url.path.hasPrefix("/article") {
        // 跳转到文章详情页逻辑
    } else if url.path.hasPrefix("/profile") {
        // 跳转到个人主页逻辑
    }
}

关键注意事项

  • scene(_:willContinueUserActivityWithType:)仅为唤醒前的通知方法,无法直接获取URL,系统会在该方法后自动调用scene(_:continue:),只需在后者中处理逻辑即可。
  • 确认Info.plist中UIApplicationSceneManifest配置正确,已指定SceneDelegate类,保证Scene架构正常运行。
  • 务必校验userActivity.activityType为NSUserActivityTypeBrowsingWeb,避免处理非Universal Link类型的用户活动。

内容的提问来源于stack exchange,提问作者vinu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 22:08:11