如何检测该应用程序正在从 Safari 重定向打开?

Posted

技术标签:

【中文标题】如何检测该应用程序正在从 Safari 重定向打开?【英文标题】:how to detect that app is opening from safari redirect? 【发布时间】:2018-11-15 02:29:44 【问题描述】:

我想检测到我的应用程序的 Safari 重定向。 当我在 safari 中输入 URI (deeplink) AppName://parameter/id 时,它会打开带有主页屏幕的应用程序,但我想根据链接中的 id 重定向到特定屏幕。

当我从推送通知发送相同的深层链接 url 时,它会调用 didReceiveRemoteNotification 并且我会重定向到那里。

从 safari 重定向后有没有调用的方法?

如何检测到我的应用是从 safari 启动(或在前台打开)?

我在目标 c 项目中。 XCode 9.

【问题讨论】:

您是否尝试过“ios 应用程序编程指南”中“应用程序间通信”部分的“处理 URL 请求”中的示例? developer.apple.com/library/archive/documentation/iPhone/… 【参考方案1】:

我认为您不知道要求您打开哪个应用程序。您唯一能知道的是使用了哪个 URL。现在您可以从应用程序委托中获取 url。见application:openURL:options:

【讨论】:

【参考方案2】:

需要使用“实现自定义 URL 方案” 看这里: http://www.idev101.com/code/Objective-C/custom_url_schemes.html

【讨论】:

【参考方案3】:

我的代码中已弃用了用于打开 URL 的方法,该方法未被调用。

我用新方法 application:openURL:options: 替换了它,它起作用了。

【讨论】:

以上是关于如何检测该应用程序正在从 Safari 重定向打开?的主要内容,如果未能解决你的问题,请参考以下文章