ios - 与 Firebase 和 Ionic 的通用链接

标签 ios cordova ionic-framework ios-universal-links firebase-dynamic-links

其他发现(初始发布后)


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

enter image description here


我正在尝试使用 Firebase 的动态链接设置通用链接。


<强>1。 Firebase 设置


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

当我打开链接时出现 400 错误,但是如果我转到 https://e2x6f.app.goo.gl/apple-app-site-association 我会得到这个:

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

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

一个问题是,当我使用应用程序的链接检查 search validation 时它还会返回 400 错误 - 不确定是否可以。


<强>2。 Xcode 设置


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

f

然后在“信息”-> URL 类型下我添加了: enter image description here


<强>3。 ionic 设置


这是我的 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 浏览器中使用像 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 错误页面。我试过将链接作为 iMessage 发送,效果相同。

感谢您的帮助!

最佳答案

您有一些误解 - 让我们按顺序清除它们:

  1. https://limitless-sierra-4673.herokuapp.com/验证器已过时 — application/pkcs7-mime 已多年不再需要。检查Apple's official docs你会看到 application/json 自 iOS 9 以来一直是必需的。动态链接在服务器端肯定不会有任何配置问题,所以你甚至不需要检查这部分,但是可以使用更新的验证器 here如果您需要它(是的,https://e2x6f.app.goo.gl 可以完美验证)。
  2. URL https://e2x6f.app.goo.gl 不是动态链接;它只是您的链接基域。真实链接看起来像 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 验证工具”,而不是“通用链接验证工具”(Apple 不提供)。该工具的结果与通用链接是否有效无关——它检查的是完全不同的东西。
  4. Ionic 没有官方动态链接包,深度链接包也不支持它。试图让这些一起工作时,您已经脱离了 map 的边缘。你可能会看看 this new community plugin .

或者,看看 Branch.io (完全披露:我在 Branch 团队)。我们会做 Dynamic Links 所做的一切 plus far more , 还有 an actively-developed Ionic module它将为您处理所有这些。

关于ios - 与 Firebase 和 Ionic 的通用链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44982381/

相关文章:

ios - 如何获取打开的球形摄像头设备的IP地址并检查是否已连接?

ios - 在 NSDictionary 中获取内部键的键对象的最佳方法?

javascript - ChartJS x 轴仅显示一年中的月份

cordova - 被释放的 Malloc 指针未分配 -- Ionic1 + cordova-plugin-wkwebview-engine

css - ionic 如何修复 ion-content 以填充设备屏幕尺寸

android - 使用 ionic 框架,本地镜像在 chrome 中完美显示,但在我的 android 手机中不显示

ios - UITableViewDelegate 在 iOS 中是否有类似 tableViewWillEndDisplayingCell 的方法?

jquery - 适用于 iOS 的 Cordova 应用程序不显示通过 ajax 加载的图像

ios - 从 PhoneGap 应用读取配置设置

javascript - 如何访问Angular服务文件之间的依赖文件?