我不太了解 iOS 如何处理 URL,但它似乎在我的手机上做了一些奇怪的事情......
我们的应用程序中有一个“赞”按钮,单击该按钮后应该会打开 Facebook 应用程序(如果未安装 Facebook,则打开 Safari)。由于某种原因,当我在手机上单击它时,它会打开“Premier Inn”应用程序。我的手机上安装了 Facebook 应用程序和 Premier Inn 应用程序,但不确定为什么执行以下代码时 Facebook 无法打开:
NSURL *fanPageURL = [NSURL URLWithString:@"fb://page/BIG_NUMBER_HERE"];
if (![[UIApplication sharedApplication] openURL: fanPageURL]) { ... }
出于显而易见的原因,我在上面的代码中用页码替换了 BIG_NUMBER_HERE。
谁能解释一下为什么会出错? Premier Inn 应用程序是否可以以某种方式将自身“注册”为 fb://url 的处理程序?
问候,
最佳答案
正如您所建议的,听起来 Premier Inn 已注册为“fb”的处理程序。没有中央注册表可以阻止应用程序使用相同的 URL 方案,这实际上取决于开发人员的好运气和合理的命名空间选择。
编辑:我找不到这方面的规范来源,但调用的处理程序应用程序是最近安装的。
关于iPhone:fb://... 打开 Premier Inn 应用程序的 URL,而不是 Facebook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10105298/