没有确认提示的自定义 URL 方案 (Swift)

2024-05-01

我发现有两个选项可以从 Safari 网页打开我的应用程序: 在我的应用程序项目中创建的自定义 URL 方案Info.plist或苹果的通用链接。显然,自定义 URL 方案是最容易设置的方案,但我遇到的问题是 Safari 会显示一个确认窗口,询问“打开myapp?”首先,用户必须在应用程序实际打开之前点击“确定”。我希望我的应用程序在打开方案时自动打开,并且我被告知执行此操作的唯一方法是通过通用链接(如果这不是真的)。​​但是,如果这是真的,我想知道是否可以以任何方式将所需的apple-app-site-association文件在一个http://域而不是https://?根据苹果官方文档,正确的通用链接的格式明确以https://但我的域名无法加载https://没有重定向几次,这会弄乱我编写的用于执行应用程序中其他任务的 Web 服务。这个问题之后我剩下的两个主要问题:

1) 是否真的不可能使用自定义 URL 方案来解决确认提示(myscheme://)?如果不是不可能的话,我该怎么做呢?

2) 如果我必须使用Apple Universal Linking,我可以使用http://领域?如果是这样,我该怎么做?现在,如果我加载通用链接,它只会显示其中的字典apple-app-site-association文件,我很确定这不应该发生。我听说它应该发送一个NSUserActivity反对我的应用程序委托。我怎样才能做到这一点http:// link?


如果不向用户显示警报,则无法触发自定义 URI 方案。这在 iOS 8 中曾经是可能的,但 iOS 9 开始显示所有应用程序的警报。 iOS 10.3 甚至将这一点扩展到了 App Store 本身。你无法绕过这个。创建通用链接是为了替换此行为的 URI 方案,因此您确实需要使用它们。

根据您的描述,我相信您可能误解了通用链接的工作原理。要回答您首先提出的字面问题,通用链接 URL 本身并不这样做not需要在https://协议,是的,apple-app-site-association must被送达https://没有重定向。

However,听起来您正在尝试提供的内容apple-app-site-association每个通用链接的文件。这不是正确的实现 - AASA 文件是托管的only at https://example.com/apple-app-site-association,iOS 在安装应用程序时会自动检索它。之后,任何网址example.com符合 AASA 文件中的条件的用户将有资格获得通用链接。

所有这一切都表明,你真的不想自己构建这个系统 https://hackernoon.com/the-death-of-deep-linking-6cc65eb33e28。我建议研究 Firebase Dynamic Links 或Branch.io https://branch.io(全面披露:我是 Branch 团队的成员)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

没有确认提示的自定义 URL 方案 (Swift) 的相关文章

随机推荐

  • 如何在rails中使用bootstrap Modal和link_to?

    我之前就问过这个问题 但不幸的是我仍然被困住了 我有一个这样的 link to 在 page html erb 当点击链接时我想以模式加载的页面 我有 div class modal Test Content div 在资产 page js
  • FParsec:如何组合解析器以便它们以任意顺序匹配

    任务是找到特定的键值对并解析它们 这些对可以按任何顺序出现 我的部分工作尝试 open FParsec type Parser lt a gt Parser lt a unit gt type Status Running Done typ
  • 用户已拥有超过“max_user_connections”个活动连接 HANGFIRE

    我明白 用户已拥有超过 max user connections 个活动连接 已经有很多答案了 但这是关于Hangfire的 我在用Hangfire http docs hangfire io en latest background pr
  • 量角器元素(..)从单独的文件返回未定义

    我正在编写一个 Protractor 测试 在我的 test step js 文件中我有 element by css getText then function text expect text to equal expectedText
  • 如何在 Lua 中实现 OO?

    Lua 没有内置对 OO 的支持 但它允许您自己构建它 您能否分享一些实现面向对象的方法 请为每个答案写一个例子 如果您有更多示例 请发布另一个答案 我喜欢将 OOP 视为容器 对象 内的数据封装以及可以使用该数据完成的操作子集 还有很多内
  • Gstreamer、rtspsrc 和负载类型

    我在从特定摄像头检索 rtsp 流时遇到困难 因为摄像头提供的 rtp 有效负载类型是 35 未分配 并且该摄像头接受的有效负载类型rtph264德佩插件的范围是 96 127 结果是 gstreamer 显示如下错误
  • IAM 允许用户访问某个区域上 ec2 的所有内容

    我试图允许一个用户对 us west 2 执行所有操作 这是我的政策 Version 2012 10 17 Statement Effect Allow Action ec2 Resource arn aws ec2 us west 2 8
  • 在谷歌应用程序引擎中使用低级 API 进行数据存储?是不是很糟糕?

    关于如何使用数据存储的低级 api 的文档很少 而关于 JPA 和 JDO 以及如何转换为 JPA 和 JDO 的文档却很多 我的问题是 根据 JPA 或 JDO 规范进行编码而不是直接访问数据存储的低级 api 有什么优势吗 乍一看 这似
  • 拒绝访问 .htaccess 中的 .ini 文件是否安全?

    我的 php Web 应用程序中有一个包含敏感信息的 ini 文件 我使用 htaccess 文件拒绝访问它
  • 将 NSTextAttachment 图像置于单行 UILabel 旁边

    我想附加一个NSTextAttachment图像到我的属性字符串并使其垂直居中 我使用以下代码来创建我的字符串 NSMutableAttributedString str NSMutableAttributedString alloc in
  • OAuth:从 Google App Engine 中启动 Google 计算实例

    我有一个 Google App Engine 网络应用程序 它运行着我网站的大部分内容 然而 对于某些功能 我需要一台linux机器 我希望我的 Google App Engine 应用程序能够在某些事件上自动启动 Google 计算实例
  • 如何在android系统状态栏中显示文本

    我正在尝试为 Android Nougat 开发一个应用程序 我想在从 android 服务例程生成的状态栏中显示一些信息 文本 所以我的问题是 我不知道如何在状态栏中显示文本 我添加了一个示例图像来显示我的确切含义 红色圆圈 我知道这是可
  • 路由器基本名称无法匹配 URL,因为它不是以基本名称开头

    升级到 React Router v6 后 我的应用程序停止工作 并且我未能找到在版本 6 中实现相同行为的方法 这是我升级到的版本 react router dom 6 2 1 这是与先前版本一起使用的代码5 2 0
  • JAVA FXCollections LoadException 类不是有效类型

    我正在尝试在此帮助下实现带有一些数据的 TableViewTutorial https docs oracle com javafx 2 fxml get started fxml tutorial intermediate htm CIA
  • 在 github 推送上将静态站点部署到 s3 的最佳策略? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想自动将我们的网站部署到 AWS S3 我已经编写了一个节点脚本来自动构建和上传网站 但我希望每当m
  • 有谁知道这是怎么做到的? SQL注入

    由于许多其他网站已被攻击 我不得不假设它是一个机器人 它注入了一个脚本 昨天 http google stats50 info ur php Today http google stats49 info ur php 它将它注入到多个表中
  • 阈值绝对值

    我有以下功能 char f1 int a unsigned b return abs a lt b 为了执行速度 我想重写如下 char f2 int a unsigned b return unsigned a b lt 2 b redu
  • 如何用C语言查找桌面路径?

    谁能告诉我如何使用 C 语言命令获取桌面路径 环境变量 场景是我想在桌面上保存一个文件 我所能做的就是给出一个固定的桌面路径和一个文件名来保存文件 但是在给出这个固定路径之后 我的代码将变得僵化 并且无法在具有不同桌面路径 环境变量 的任何
  • “ef migrations add”始终在新迁移中重新创建外键

    我安装了 RC1 和 VS 2015 update 1 每当我尝试添加新的迁移时 都会在 Up 方法中重新创建同一组外键 这意味着它们被删除然后直接添加 例如 当我添加迁移而不更改任何模型时 会生成该迁移 当然 Down 方法中也会生成类似
  • 没有确认提示的自定义 URL 方案 (Swift)

    我发现有两个选项可以从 Safari 网页打开我的应用程序 在我的应用程序项目中创建的自定义 URL 方案Info plist或苹果的通用链接 显然 自定义 URL 方案是最容易设置的方案 但我遇到的问题是 Safari 会显示一个确认窗口