【问题标题】:How to add multiple url schemes in Expo App without ejecting?如何在 Expo App 中添加多个 url 方案而不弹出?
【发布时间】:2019-10-03 12:28:24
【问题描述】:

我正在通过this link 向我的 Expo 应用程序添加深层链接,但找不到任何文档来添加多个方案。甚至可以在Expo App中添加多个方案而不弹出它?

【问题讨论】:

  • “不弹出”是什么意思?您能否解释一下您所期待的体验。
  • @Casey 看起来在提出这个问题后他们已经更新了文档。你指的是同一个吗?
  • 我要求澄清您想要实现的目标。我不明白您所说的“不弹出它”是什么意思。在 AtulParmar 添加的解决方案中,您再次重复“这需要弹出 expo 应用程序”。弹出是什么意思?
  • @Casey 可能是this reference 可以帮忙
  • 谢谢!抱歉,不熟悉世博

标签: android ios react-native expo deep-linking


【解决方案1】:

您可以通过配置 app.json 文件将多个 URL 关联到您的 Expo 应用程序而不会弹出。

对于 iOS,您需要修改 associatedDomains 键:

{
    ...
    "ios": {
        ...
        "associatedDomains": ["applinks:mydomain.com", "applinks:myotherdomain.com"]
    }
}

对于 Android,您需要修改 intentFilters 键:

{
    ...
    "android": {
        ...
        "intentFilters": [{
            "action": "VIEW",
            "autoVerify": true || false,
            "data": [
                { "scheme": "https", "host": "mydomain.com" },
                { "scheme": "https", "host": "myother.com" }
            ]
            "category": ["BROWSABLE", "DEFAULT"]
        }]
    }

此外,根据您的要求,您可能需要验证要与您的应用关联的域的所有权。 iOS 和 Android 都有不同(但相似)的方法来实现这一点。您可以在Expo's deep linking documentation找到有关该过程的详细信息。

【讨论】:

  • 我们甚至可以在不弹出的情况下获得 Android 和 iOS 文件夹吗?不确定世博会目前如何运作。但至少在 2 年前,您的解决方案行不通。
  • @MohammedAtif 当您选择托管工作流(非弹出)时,app.json 文件位于您的 Expo 项目的根目录中。无需弹出和配置 Android 和 iOS 文件夹中的文件。
  • 那很好。至少现在他们支持它。感谢您的解决方案。
【解决方案2】:

对于 IOS 应用程序,您可以使用以下步骤添加多个 URL 方案。

通过添加以下代码在 info.plist 文件中添加 URL 方案。 (点击info.plist文件右键,作为源代码打开。)

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>one</string>
            <string>two</string>
        </array>
    </dict>
</array>

【讨论】:

  • 但这需要弹出 expo 应用程序。
猜你喜欢
  • 1970-01-01
  • 2019-07-08
  • 2021-10-22
  • 2016-04-17
  • 2013-09-12
  • 2020-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多