如何检测该应用程序正在从 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 重定向打开?的主要内容,如果未能解决你的问题,请参考以下文章

检测应用程序是不是从推送通知启动/打开,然后将其重定向到特定视图控制器

移动 Safari 页面卸载/隐藏/模糊以进行深度链接

Safari Webapp强制在单击其他链接时打开Safari

如何将通用链接重定向到应用商店而不在 Safari 浏览器上显示弹出窗口?

获得权限后的 Facebook 登录让 Safari 空白页面打开,而不是在 iOS 10 和 iOS 11 中重定向到我的应用

Firefox 打开谷歌页面提示“检测到该服务器正在将此地址的请求循环重定向”的完美解决方法 (转)