iOS App Clip 无法在 SwiftUI 中使用通用链接启动

问题描述 投票:0回答:1

描述:

我正在使用 SwiftUI 开发 iOS App Clip,但遇到了单击通用链接时 App Clip 无法启动的问题。以下是我的设置和我尝试过的关键细节:

  • 主应用程序上下文:主应用程序是使用 Flutter 构建的,但 App Clip 是在 SwiftUI 中原生开发的。

  • 当前目标:我的目标是演示单击通用链接时 App Clip 的启动。目前,它不需要与主应用程序交互或处理任何参数 - 目标只是让它启动。

  • 开发环境:我正在通过 Xcode 构建 App Clip,并通过运行 App Clip 然后单击链接来测试它。

  • 配置:

    • 关联域已添加到 Xcode 中的 App Clip 目标和主“Runner”应用程序目标,并更新了配置文件。
    • AASA 文件配置:
{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "<TeamId>.<BundleId of main app>",
        "paths": ["/redeem"]
      }
    ]
  },
  "appclips": {
    "apps": ["<TeamId>.<BundleId of app clip>"]
  }
}
  • AASA 文件已使用 yURL 的通用链接/AASA 文件验证器工具通过验证。
  • 测试:在真实的 iOS 设备上进行。
  • 链接处理:URL (https://vault-activation-beta.web.app/redeem) 不会导致 404 错误,并且长按短信中的链接不会显示任何 App Clip 相关选项.
  • 代码实现:
import SwiftUI
import FirebaseCore
import FirebaseAuth

@main
struct AppName_ClipApp: App {
  @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate

  init() {
    FirebaseApp.configure()
  }
  var body: some Scene {
    WindowGroup {
      ContentView()
        .onOpenURL(perform: { url in
          print("Opened URL: \(url)")
        })
    }
  }
}

class AppDelegate: NSObject, UIApplicationDelegate {
  func
 
application(_
 
application: UIApplication, didFinishLaunchingWithOptions
 
launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
    print("Your code here")
    return true
  }
   
  func application(_ application: UIApplication,
           continue userActivity: NSUserActivity,
           restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
    if userActivity.activityType == NSUserActivityTypeBrowsingWeb,
      let url = userActivity.webpageURL {
      print("Opened URL from Universal Link: \(url)")
      // Handle the URL appropriately within your app
    }
    return true
  }
}

我正在寻求有关我的设置中是否缺少某些内容或者我的实施是否存在任何问题的指导。任何关于为什么 App Clip 不通过通用链接启动的建议或见解将不胜感激。

flutter xcode swiftui ios-universal-links apple-appclips
1个回答
0
投票

也许 onOpenUrl 在 App Clip 上不起作用。 你必须使用 onContinueUserActivity 方法。

© www.soinside.com 2019 - 2024. All rights reserved.