【问题标题】:iOS App URL is not being detected未检测到 iOS 应用 URL
【发布时间】:2012-05-19 16:36:58
【问题描述】:

我为我的 iOS 应用创建了一个自定义应用 URL。 URL 格式类似这样:

myappname://texttobeparsed

当我将 URL 粘贴到 safari 中时,这可以正常工作,我的应用程序会打开并正确处理 URL。问题是 iMessage 或 Notes 等其他应用程序无法将其识别为 URL。

为什么这个 URL 方案没有被识别为 URL?这可能与我在 info.plist 文件或其他文件中的设置方式有关吗?

或者,URL 是否需要采用不同的格式才能被识别?

我知道系统可以将其识别为网络浏览器以外的应用程序中的 URL,因为我以前在其他应用程序中看到过它(例如 iTunes:itms://itunes.com/apps/appname 或 Twitter:twitter:// 或 Facebook: fb://)。

【问题讨论】:

    标签: objective-c ios url


    【解决方案1】:

    对此你无能为力。如果链接不是明确的(例如在 HTML 电子邮件中),这些应用程序只能识别一组内置的标准 URL 方案。 itms:// 是 Apple 自己的方案之一(适用于 iTunes Store),因此除了标准的 mailto://http://tel://... 方案之外,它也受到支持。

    编辑:我猜想在文本视图等中用于确定构成有效 URL 的信息会以某种方式被缓存。与我最初的猜测相反,似乎特定于应用程序的 URL do 在 Notes 等中工作。例如,我已经使用 tweetbot://(我已经安装)和 twitter://(我没有安装)来验证它不仅检查*://之类的模式,而且实际上使用有关已安装应用程序的信息。

    我建议您尝试重新启动设备。如果某些缓存有问题,那可能会有所帮助,如果您的 URL 方案已经在 Safari 中工作,我认为您无能为力。

    更新:我已经安装了官方 Twitter 应用来测试这一点,twitter:// 方案没有立即在 Notes 中被识别,但在杀死并重新启动 Notes 应用后,它起作用了。

    更新 2: 我已经使用 myappname:// 作为自定义 URL 方案完成了一个最小的测试应用程序。同样,与 Twitter 应用程序一样,它在重启 Notes 应用程序后工作,因此它似乎与应用程序的受欢迎程度或是否已提交无关。

    【讨论】:

    • 我不确定你是否使用过 textPlus,但它使用 URL 方案:tp:// 并且 iOS 在便笺、联系人、消息等中识别它。尤其是在联系人中,当您将 URL 字段添加到联系人,它以某种方式在联系人应用程序中注册为 URL 类型...
    • @RazorSharp 看来 tp:// 是 iOS 识别的另一种方案。我知道它可能很挑剔——我试过在 UIWebViews 中打开链接,比如 www.google.com——它不起作用,我必须使用 google.com 来加载页面。所以听起来你需要使用 iOS 可以识别的方案,不管它是什么。
    • 您似乎是对的,我刚刚使用 Instacast pcast:// URL 和 Instapaper 的 ihttp://(两者显然都不是内置的)对此进行了测试,并且它们确实似乎被 Notes 识别。新理论:文本系统可能只能识别长度不超过 5 个字母的 URL 方案?
    • 好吧,忘记了,tweetbot:// 也可以工作...不知道,也许您需要重新启动 Notes 应用程序(或设备)才能识别新的 URL 方案...
    • 在我的 iPad 上检测到 Instapaper 的 ihttp://,即使它没有安装。其中大多数都是非常受欢迎的应用程序,Apple 是否可能只是注册它们,因为它们很受欢迎?或者 iTunes Connect 中有什么东西?
    【解决方案2】:

    我无法回答为什么它不起作用(除了猜测链接解释器是硬编码的,只能识别某些 URL 方案),但我可以说解决这个问题的典型方法是链接到网页,并让网页重定向到您的自定义方案。

    它稍微不那么优雅,因为用户会看到 Safari 在被转发到您的应用程序之前短暂打开,但它也更健壮,因为网页可以提供指向应用程序商店的链接以安装应用程序(如果未安装)在用户的手机上。

    【讨论】:

    • 我同意,我在尝试获取链接以在消息中工作时经历了一段可怕的时光。这个开源的东西似乎就是你所描述的:applinks.org/documentation(尽管我与这个项目没有任何关系)
    猜你喜欢
    • 2016-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-02
    • 2017-09-15
    • 2013-12-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多