我正在寻求帮助,以解决我在媒体应用程序中遇到的与执行通用链接相关的问题。我的应用程序旨在处理通用链接,以将用户直接导航到 Apple TV+ 和 Netflix 等第三方应用程序中的特定内容。虽然 Apple TV+ 链接的实现按预期工作,将用户引导至预期的内容页面,但我在使用 Netflix 等其他服务的链接时遇到了困难。对于这些,应用程序仅打开目标应用程序,而不会按预期导航到特定的节目或内容页面。
我的代码中涉及处理通用链接的相关部分如下:
dataStore = Backendless.shared.data.ofTable("TestTable")
testObject = ["foo": "Hello World"]
dataStore?.save(entity: testObject!, responseHandler: { savedTestObject in
// Code to update UI elements
if let deepLink = savedTestObject["foo"] as? String {
if let url = URL(string: deepLink) {
let options: [UIApplication.OpenExternalURLOptionsKey: Any] = [.universalLinksOnly: true]
UIApplication.shared.open(url, options: options, completionHandler: { success in
if success {
print("Opened url successfully")
} else {
print("Failed to open url")
}
})
}
}
}, errorHandler: { fault in
self.showErrorAlert(fault)
})
}
从上面的代码片段中,我尝试执行存储在后端数据库中的通用链接。预期行为是根据提供的 URL 将用户引导至第三方应用程序中的特定页面。这与 Apple TV+ 链接完美配合,但在执行来自 Netflix 或类似服务的链接时,它的缺陷在于仅启动应用程序而不导航到指定内容。
尝试过的 Netflix URL 是:
http://www.netflix.com/title/81731618
nflx://www.netflix.com/title/81731618
请注意,JustWatch 应用程序可以完美地执行相同的行为。所以我认为 Apple 没有施加任何限制。
您可以使用常规的 netflix url 结构,但将 http 替换为 nflx。
nflx://www.netflix.com/title/70291117 - This will open a show page.
nflx://www.netflix.com/watch/70291117 - This will begin playing the video.