从Xcode

问题描述

我试图通过从Xcode运行应用程序剪辑来测试应用程序剪辑的url处理程序。但是,从未调用URL方法处理程序(SceneDelegate的{​​{1}}方法),这与Apple的文档documentation相反,该文档指出:

对于基于UIKit的应用剪辑和支持基于场景的应用的完整应用 生命周期事件,实现UISceneDelegate中定义的回调。 例如,实现scene(_:continue :)回调以访问用户 活动对象。

对于基于UIKit的应用剪辑和完整的响应应用 对于基于应用程序的生命周期事件,请实现在中定义的回调 UIApplicationDelegate。确保实施 application(:continue:restorationHandler :)回调,因为您 无权访问中的NSUserActivity对象 应用程序(:didFinishLaunchingWithOptions:)。

  • 应用程序委托未实现continue方法
  • 该应用剪辑的方案已启用_XCApplClipURL参数并将其设置为application(_:continue:restorationHandler:)
  • 该应用剪辑的https://fruits.com/check?fruit_name=bananas列表Associated Domain
  • 应用剪辑的appclips:fruits.com如下
SceneDelegate

在过去的两天里,我一直在敲墙。我想念什么?

注意:我正在使用此sample app available in github,只是修改了签名配置以使应用剪辑可以编译和运行。

解决方法

上述continue方法仅在您的应用程序先前打开后被调用时才调用。为了在您的应用首次启动时获得在_XCApplClipURL中设置的值,您需要使用您提到的第二种方法(scene willConnectTo session)。

您可以尝试以下操作:

if let activity = connectionOptions.userActivities.filter({ $0.activityType == NSUserActivityTypeBrowsingWeb }).first {
  if let url = activity.webpageURL {
    print("incoming URL: \(url)")
  }
}
,

感谢您使用AppsFlyer的App Clip公开演示,并重点介绍了此问题。我真的很感激。

我可以确认您做的很棒,此功能在Beta 5之后的某个时候就被破坏了。

请关注here这个问题并对其发表评论

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...