与 Firebase 和 Ionic 的通用链接

Universal Linking with Firebase and Ionic

其他发现(在初始 Post 之后)


我使用这个网站 https://limitless-sierra-4673.herokuapp.com/ 来验证 link。收到关于 application/pkcs7-mime 的错误。不确定如何使用 Firebase 动态链接更改此设置


我正在尝试使用 Firebase 的动态 links 设置通用 linking。


1. Firebase 设置


我已经使用 Firebase 设置了应用程序并且我有 link: https://e2x6f.app.goo.gl.

当我打开 link 我得到一个 400 错误但是如果我去 https://e2x6f.app.goo.gl/apple-app-site-association 我得到这个:

{"applinks": 
    {
        "apps": [],
        "details": [{
           "appID": "8CK4RLPU2T.com.turnmusicapp.15499",
           "paths": ["/*"]
        }]
    }
}

所以我觉得还可以。我已经检查以确保所有信息都是正确的。

一个问题是,当我使用应用程序的 link 检查 search validation 时,它也会 returns 一个 400 错误 - 不确定这是否正确。


2。 Xcode 设置


无论如何,我在我的应用程序上启用了关联域:

然后在 "Info" -> URL 类型下我添加了:


3。离子设置


这是我的 Ionic 信息:

global packages:

@ionic/cli-utils : 1.4.0
Ionic CLI        : 3.4.0

System:

Node       : v8.1.2
OS         : macOS Sierra
Xcode      : Xcode 8.3.3 Build version 8E3004b
ios-deploy : 1.9.1
ios-sim    : not installed
npm        : 5.0.4

所以我安装了 Deeplinks 软件包并进行了所有设置。我知道它有效,因为我可以在 Safari 浏览器中使用 link 之类的 turn://home,它会带我到我的应用程序。我不确定我是否需要在这里做任何其他事情。我已将 config.xml 文件中的 widget 字段更新为:

<widget id="com.turnmusicapp.15499" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">

id 字段是否需要包含我的应用程序前缀?

结果


所以我 运行 我的应用 ionic cordova run ios --livereload,我在 Safari 中输入消息,它把我带到了 400 错误页面。我试过将 link 作为 iMessage 发送,效果相同。

感谢您的帮助!

你有一些误解——让我们按顺序澄清它们:

  1. https://limitless-sierra-4673.herokuapp.com/ validator is outdated — application/pkcs7-mime hasn't been required for years. Check Apple's official docs and you'll see application/json has been the requirement since iOS 9. Dynamic Links certainly won't have any configuration issues on the server side so you really don't even need to check this part, but a more updated validator is available here 如果你想要它(是的,https://e2x6f.app.goo.gl 完美验证)。
  2. URL https://e2x6f.app.goo.gl 不是 Dynamic Link;它只是您的 link 基本域。真正的 links 看起来像 https://e2x6f.app.goo.gl/A97Q(短版)或 https://e2x6f.app.goo.gl/?link=https://example.com/path/to/app/content&ibi=com.turnmusicapp.15499&ius=turnmusicapp&ad=1&isi=1121012049&ifl=https://example.com&apn=com.turnmusicapp.15499&al=https://example.com&at=affiliate_token&ct=campaign_text(全长)。虽然基本域的 400 错误是糟糕的用户体验,但这是意料之中的。您实际上需要 create some links.
  3. Apple 工具是 "App Search API Validation Tool",而不是 "Universal Links Validation Tool"(Apple 不提供)。此工具的结果与 Universal Link 是否有效无关——它检查的是完全不同的东西。
  4. Ionic 没有官方的 Dynamic Links 包,Deeplinks 包也不支持它。试图让这些一起工作时,您已经脱离了地图的边缘。你可能会看看 this new community plugin.

或者,查看 Branch.io (full disclosure: I'm on the Branch team). We do everything Dynamic Links does plus far more, and there is an actively-developed Ionic module,它将为您处理所有这些。