首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在“podcast:// "http://”URL上调用open(_:options:completionHandler:)将导致iOS podcast应用程序将“-prefixed”置于原始URL之前

在“podcast:// "http://”URL上调用open(_:options:completionHandler:)将导致iOS podcast应用程序将“-prefixed”置于原始URL之前
EN

Stack Overflow用户
提问于 2020-01-12 15:53:10
回答 1查看 469关注 0票数 2

上下文

我正在用Xcode开发一个Swift iOS应用程序(iOS 13和Xcode 11.3)。

目标

基本上,在我的应用程序中,我希望能够在iOS podcast应用程序中打开一个私有播客提要的URL (将其添加为新订阅)。

我在做什么

我的理解是,这样做的方法是使用定义在*选项:完成处理程序:)类上的UIApplication方法,并使用podcast://预置我的URL。下面是一个例子:

代码语言:javascript
复制
// My URL
let url = URL(string: "podcast://https://username:password@example.com/private-podcast-feed")!

// From inside a `UIViewController` method...
UIApplication.shared.open(url, options: [:]) { (success: Bool) in
   // ... handle the result
}

问题所在

上面的代码确实打开了iOS播客应用程序,并触发了一个输入预填充的Add a Show by URL...警告框,但是最初的URL现在以http://为前缀;即http://https://username:password@example.com/private-podcast-feed (参见下面附在屏幕截图中的例子)。

从“用户体验”的角度来看,这种行为是可怕的,因为大多数人不会注意到,操作也会失败。

解决这个问题的一个潜在方法是,在我的应用程序中省略https://协议,使用预填充的http://,并在服务器上设置一个301 Redirect (我并没有尝试它来查看Podcasts是否遵循重定向),但这对我的用例没有好处,因为我的URL包含凭证。

我的问题

有人知道怎么绕过这件事吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-20 13:30:48

结果发现,在我的应用程序中定义URL实例时,我没有使用正确的语法。而不是使用podcast://https...,我应该使用podcast:https...,没有两个正斜杠的

下面是一个工作示例(即将打开Podcasts应用程序而不是将http添加到已经存在的https方案的示例):

代码语言:javascript
复制
// My URL
let url = URL(string: "podcast:https://username:password@example.com/private-podcast-feed")!

// From inside a `UIViewController` method...
UIApplication.shared.open(url, options: [:]) { (success: Bool) in
   // ... handle the result
}

最初让我困惑的是,当创建一个应用程序使用iOS中的URL方案打开一个超链接时,需要使用“双正斜杠”语法。例如,如果我在电子邮件中共享一个链接,那么我需要指定podcast://{my-url}。但是,如果我想从内部和其他应用程序使用其URL方案之一打开一个应用程序,那么我需要排除这两个斜杠,否则命令可能会混淆目标应用程序(注意:我没有这方面的任何文档,但这是我在这个特定场景中观察到的)。

在解决相反的问题时,我只是偶然发现了答案:我试图为我的一个iOS应用程序定义自己的URL方案,我说文档中使用的语法(参见为应用程序定义自定义URL方案)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59705522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档