0

我们正在创建一个新的应用程序,我在使用应用程序链接时遇到了一些问题。

所以我添加了权利,并在我的服务器上托管了“.well-known/apple-app-site-association”文件,这似乎都很好。

然后我通过使用以下命令在我的模拟器上触发它们来测试应用链接:/usr/bin/xcrun simctl openurl booted "https://links.domain.com/path/token"并很好地触发我的应用程序。

然后我开始在真实设备上进行测试,突然它不再工作了,我在这些设备上使用默认的邮件应用程序,这就是问题所在。

如果我将链接放在便笺(便笺应用程序)中,它会打开我的应用程序。如果我从 GMail 应用程序打开我的电子邮件,它会启动我的应用程序,但是来自同一个 gmail 帐户但在 Apple Mail 应用程序内部的完全相同的电子邮件不会做任何事情......

我现在在 iOS 13 和 iOS14 上都试过了。

托管的 apple-app-site-association 文件的内容如下所示:

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "0000X0XXXX.com.domain.appname",
                "paths": ["*"]
            }
        ]
    },
    "webcredentials": {
        "apps": [ "0000X0XXXX.com.domain.appname" ]
    }
}

任何关于我们下一步可以尝试的想法都将受到欢迎。我唯一能想象的是,邮件应用程序会额外检查您的应用程序是否在 AppStore 上,但这有点奇怪,不是吗?!

4

1 回答 1

0

好的,我确实找到了问题并修复了...实际上并没有那么难,我不小心撞到了它...

似乎苹果在解析 HTML 方面做得非常糟糕,尤其是href链接的属性。虽然我找不到任何其他行为相同的客户端,但似乎如果您不将方案(http 或 https)放在 url 前面(所以我只使用了 google而不是https://google.com .com) 提供给href属性,然后 Apple 会从中做出一些自己的东西:x-webdoc://30E09690-F388-4ED2-BB46-14DC829B974C/google.com. 我可以在 Apple Mail 应用程序上发现这一点,但是在我遇到问题的 iPhone 上,它甚至没有被识别为链接,因此他们自己的应用程序之间的行为似乎有点不同。

最后,我没有把https://自动生成的 URI 放在前面是我的错误。但是我确实认为 Apple 在构建链接 HTML 标记方面做得很差。

于 2021-11-11T07:40:40.853 回答