将深层链接传递到 iOS 模拟器?

Posted

技术标签:

【中文标题】将深层链接传递到 iOS 模拟器?【英文标题】:Pass deep link into iOS Simulator? 【发布时间】:2018-03-22 01:42:08 【问题描述】:

我想找到一种更简单的方法来调用 ios 模拟器中的深层链接。

android 上,您可以使用 ADB 通过控制台将链接通过管道传输到模拟器中。

是否有类似的方法或解决方法可以使用最新的 iOS 模拟器打开深层链接?

【问题讨论】:

我通常将它们粘贴到提醒中并单击它们。 【参考方案1】:

您可以在终端中输入:

xcrun simctl openurl booted <INSERT_URL_HERE>

您甚至可以使用内置的共享扩展将文档从 Finder 共享到 iOS 模拟器。

【讨论】:

哇,这么简单,我基本上无法谷歌。太感谢了! :) 我无法在 userActivity 方法中获取完整的 URL。我的实际网址是 example.com/6eZ4?class_id=4&member_id=18 但我只在 userActivity example.com/6eZ4?class_id=4 中获得短网址 根据您在其中运行命令的外壳,您可能需要转义 URL 中的特殊字符,即example.com\?name1=value1\&name2=value2。【参考方案2】:

这是另一种方法:

在模拟器中

    打开联系人应用程序 转到预定义的联系人之一,例如“John Appleseed” 点击编辑 点击添加网址(在底部) - 并将您的链接设置为此联系人的“主页”网址 点击完成保存联系人 点击您刚刚添加的链接

专业提示:您可以为 URL 条目添加自定义标签,例如,如果您想测试不同的 URL 并能够快速识别它们。

注意:如果您重置模拟器,联系人应用程序将重置为默认值并丢失 URL。

【讨论】:

谢谢!。对我帮助很大 干得好,谢谢【参考方案3】:

作为替代方案,您可以使用ControlRoom 开源工具。基本上它是模拟器 cli 之上的包装器。

【讨论】:

这不起作用。应用未启动,而是重定向到浏览器 @Neha 这意味着你没有正确实现通用链接。【参考方案4】:

(针对Branch.io QuickLinks 测试)

在iOS模拟器中打开深度链接的另一种非常简单的方法是:

    将深层链接复制到剪贴板。 在您的 iOS 模拟器中打开 Safari 应用程序并将您的深层链接网址粘贴到 safari 中。 Safari 将尝试打开 URL,但会失败,并显示错误警报。不过不用担心。 打开您的应用程序,通过从 Xcode 运行它,模拟器会认为该应用程序是从深度链接打开的,您将在代码中收到所需的深度链接信息。

【讨论】:

我有什么办法可以直接在模拟器链接android Emulator support上打开Branch.io链接。 是的,在 iOS 14 及以后的版本中,苹果提供了直接在模拟器中打开深度链接的支持。只需在终端中运行以下命令即可从 branch.io deeplink xcrun simctl openurl booted https://branch.app.link/someBrachDeeplink 打开应用程序【参考方案5】:

即使有很多很棒的解决方案,我仍然想加我的 5 美分 :)

我的方法基于 Automator macOS 应用程序,让您在 iOS 模拟器上的计算机上执行任何深层链接,只需单击两下即可。 p>

我将使用 Quick Actions,因为在这种情况下,我们可以使用任何应用程序从中获取 URL。所以,启动应用程序,File —&gt; New —&gt; Quick Action —&gt; Choose。现在拖放您的第一个操作。它将是Set Value of Variable。转到View 菜单并选择Variables。在变量部分中右键单击并选择New variable。将其命名为 url。我们将在该变量中保留输入文本(这应该是我们的深层链接)。现在拖放Run Shell Script 动作,确保Pass 输入参数设置为“作为参数”。粘贴以下行:

xcrun simctl openurl booted $1

其中 $1 将是我们的 URL 变量。

它应该是这样的:

现在将此操作保存为Open in Simulator。此操作现在可在 Services 上下文菜单中使用。在任何应用程序中选择任何 URL 作为文本,右键单击,Open in Simulator - 不错吧?

【讨论】:

【参考方案6】:

cmd 命令不起作用?!

很遗憾,xcrun simctl openurl booted 命令不起作用。我的链接是这样的:

myapp://?p=abc&case=12345

我一直看到以下错误:

MyApp % zsh:未找到匹配项:myapp://?p

解决方案

我能够通过以下方式修复它:

在模拟器中打开 Safari 并转到 https://halgatewood.com/deeplink/

添加您的深层链接并点击“加载”按钮。因此它应该导航到:

点击深层链接(上图中的黑框)。

就是这样!

注意

如果您将链接直接添加到 Safari,它将无法正常工作,请确保您使用的是 halgatewood.com 深层链接测试器。

【讨论】:

以上是关于将深层链接传递到 iOS 模拟器?的主要内容,如果未能解决你的问题,请参考以下文章

branch.io 深层链接 URL 未从 Facebook 广告在应用程序中传递数据

无法将图像添加到 iOS 模拟器

使用 branch.io 来自 Play 商店的 Android 深层链接

Xcode:尝试在iOS模拟器中运行应用程序时出现无效的符号链接错误

iOS模拟器中的命令键

串行接口ping不通自己的原因及深层解析