是否可以在我们的应用程序中而不是 Safari 中打开 Markdown 链接?

2023-12-06

当您使用 Markdown(下面的示例)并点击链接时,Swift 会自动关闭我的应用程序并在 Safari 中打开链接,但我想在我的应用程序内的 Web 视图中打开链接,这可能吗?

Text("Hello! Example of a markdown with a link [example](https://example.com)")

SwiftUI 环境包含一个 URL 处理程序,默认情况下,它会在 Safari 中打开链接,但您可以提供自己的处理程序来覆盖它。

Text("Hello! Example of a markdown with a link [example](https://example.com)")
  .environment(\.openURL, OpenURLAction { url in
    // ... set state that will cause your web view to be loaded...
    return .handled
  })

The OpenURLAction必须返回一个类型的值OpenURLAction.Result- 这里,.handled告诉系统您已经自己处理了 URL,因此操作系统无需执行任何其他操作。

您还可以包含某些逻辑,例如,如果 URL 指向特定主机,您可以处理它们,但其他所有内容都应该在 Safari 中打开;在这种情况下,你会返回.handled对于您负责的网址,以及.systemAction对于应使用默认行为的任何 URL。

其他返回类型包括.discarded告诉应用程序忽略链接上的点击,以及一个版本.systemAction它允许您重新定义在 Safari 中打开的链接。不过,我认为这都不适合您的用例。

这篇文章发表在 Fivestars.blog 上更详细的内容。另请查看openURL and OpenURLAction文档。

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

是否可以在我们的应用程序中而不是 Safari 中打开 Markdown 链接? 的相关文章

  • Swift:HackerRank readLine 一个 Int 数组

    我正在玩 HackerRank 我需要从行读取整数数组的问题之一 A 1 2 3 B 1 4 7 I tried let line readLine print line 但我收到这个错误 solution swift 2 7 warnin
  • 没有这样的模块“Ensembles”错误 - 导入 Objective-C 框架以在 swift 项目中使用

    我将 Ensembles 添加到我的 Swift 项目 在这里找到https github com drewmccormack ensembles https github com drewmccormack ensembles 我没能在我
  • 如何从 Swift 调用 Objective-C 代码?

    在 Swift 中 如何调用 Objective C 代码 Apple 提到它们可以在一个应用程序中共存 但这是否意味着在技术上可以重用 Objective C 中创建的旧类 同时在 Swift 中构建新类 在 Swift 中使用 Obje
  • 返回 Self 的协议函数

    我有一个返回对象副本的协议 P protocol P func copy gt Self 和一个实现 P 的 C 类 class C P func copy gt Self return C 但是 我是否将返回值设置为Self我收到以下错误
  • Xcode 8 beta“错误”对于这种情况下的类型查找不明确

    根据这篇文章 我需要指定模块来查找对象类型 在此上下文中 方法 对于类型查找不明确 Alamofire 中的错误 https stackoverflow com questions 33543597 method is ambiguous
  • CSV 解析 - Swift 4

    我正在尝试解析 CSV 但遇到一些问题 下面是我用来解析 CSV 的代码 let fileURL Bundle main url forResource test application data Sheet 1 withExtension
  • UITextField 文本更改事件

    如何检测文本字段中的任何文本更改 委托方法shouldChangeCharactersInRange适用于某些东西 但它并不能完全满足我的需求 因为在它返回 YES 之前 textField 文本不可用于其他观察者方法 例如在我的代码中ca
  • 如何将渐变应用于 iOS Swift 应用程序的背景视图

    我正在尝试应用渐变作为视图 故事板的主视图 的背景颜色 代码运行 但没有任何变化 我正在使用 xCode Beta 2 和 Swift 这是代码 class Colors let colorTop UIColor red 192 0 255
  • 如何使 SFSpeechRecognizer 在 macOS 上可用?

    我正在尝试使用 Apple 的语音框架在 macOS 10 15 1 上进行语音识别 在 macOS 10 15 之前 语音识别仅在 iOS 上可用 但根据文档 https developer apple com documentation
  • Firestore 更新后仅获取文档一次

    我有一个 tableView 它从 Firestore 集合中获取所有文档 并且我只想在用户刷新 tableView 后将最后一个文档添加到 Firestore 时获取一次 然后我想删除侦听器 以便当用户刷新 tableView 时仅获取文
  • iOS8 CoreData“使用未实现的初始化程序”

    我尝试运行我的应用程序时收到以下错误 致命错误 对类 rcresttest CatalogItem 使用未实现的初始化程序 init entity insertIntoManagedObjectContext 我可以通过将数据模型中的实体类
  • 检查定位服务是否开启

    我一直在对 CoreLocation 进行一些研究 最近 我遇到了一个在其他地方 但在 Objective C 和 iOS 8 中 已经讨论过的问题 我觉得问这个问题有点傻 但是如何在 iOS 9 上使用 swift 检查是否启用了位置服务
  • 我如何从子视图导航到 mainviewcontroller

    我刚刚开始使用 swift 我创建了一个子视图 上面有一个按钮 我想使用该按钮将我带到我的主视图控制器 我对不同的按钮使用了相同的功能 但是在同一文件中具有一个功能允许该按钮工作 代码如下 var playAgainButton UIBut
  • 使用 iOS 8 自定义键盘发送图像?

    我一直在为 iOS 8 开发自定义键盘 但在尝试使用键盘发送图像时偶然发现了一个问题 我做了一些研究 似乎没有一种简单的方法可以做到这一点UITextDocumentProxy因为只有NSStrings被允许 我是否忽略了使用自定义键盘发送
  • 在 Cocoa OS X AVPlayer 中播放 HLS (m3u8) - Swift

    基本上我正在尝试在 Cocoa Swift 中使用 AVPlayer 播放 m3u8 HLS Live Stream 我对这门语言比较陌生 所以基本上掌握了一些示例代码 http qiita com ono matope items 23d
  • 在没有预览窗口的情况下使用 AVCaptureVideoDataOutputSampleBufferDelegate

    我正在开发一个基于 Swift 的 macOS 应用程序 我需要捕获视频输入 但不将其显示在屏幕上 而不是显示视频 我想将缓冲的数据发送到其他地方进行处理 并最终显示它在 a 中的一个物体上SceneKit scene 我有一个Camera
  • 使用完成处理程序在 Swift 中调用连续动画

    我正在制作一个可以显示化学反应动画的应用程序 每个原子都是一个 SCNSphere 并通过 SCNActions 进行动画处理 我尝试使用 runAction 中的完成处理程序在当前操作完成后调用下一个动画 因为每个原子必须做出很多不同的运
  • 从“NSPercientStoreResult”转换为不相关类型“Entity”总是失败

    我正在创建一个小应用程序来学习 CoreData 中的多对多关系 但是 使用下面的代码 从 NSFetchResult 到实体类 Groepering 的转换出现错误 与我的项目相比 我在互联网上找到的示例没有看到任何差异 为什么转换仍然失
  • 当我输入字符时,SwiftUI 中的 TextField 失去焦点

    当我在文本字段中输入字符时遇到问题 在练习集视图 我必须重新单击文本框才能输入另一个字符 如果我从文本字段中删除绑定 我可以流畅地输入文本 我认为这与我的演讲者班级和更新集函数重新创建一个集合实例 因为我必须替换数组中两层深处的一些值 Co
  • GeoFire Swift 3 - 保存和更新坐标

    我正在尝试使用 GeoFire 将坐标存储到 Firebase 数据库中 我不确定如何更新新坐标 因为它们每秒都会更改 更新 随着childByAutoId 它正在为每辆自行车生成一个新的唯一 ID 如何引用这个唯一的自行车 ID 例如 用

随机推荐

  • EL 支持重载方法吗?

    我升级了 Java EE Web 应用程序以使用较新的 PrimeFaces 版本 突然在 PrimeFaces commandlink 的操作属性中调用重载 bean 方法不再起作用 我尝试使用 JSF 默认命令链接来测试它 但这个也不起
  • Win32 分割器控件

    在 Win32 的所有不同控件中 有哪些基本的 轻的可用的 Splitter Splitcontainer 控件 意味着一两个 C C 文件max 我似乎无法在 Visual Studio 中显示的默认控件中找到任何内容 并且我在网上找到的
  • Android OpenGL ES 1.1 白盒纹理

    我遇到的问题是资源的纹理变成白色 这个问题似乎只发生在手机上 当然是 Droid X 但它在模拟器上运行得很好 我已经研究这个问题好几天了 并尝试了很多东西 纹理是 POT 范围从 8x8 到 128x128纹理位于 res drawabl
  • 如何更改ggboxplot中的x轴标签

    我有一个包含多个因素的数据框 我使用 ggboxplot 来获取一个箱形图 并对不同类别进行比较 我对 x 轴标签不满意 我尝试了不同的方法 但未能达到我的预期 用于创建绘图的代码是 df lt data frame country sam
  • 使用 python selenium 进行网页测试:执行速度非常慢

    我使用 Selenium 用 Python 编写了一个非常简单的网页测试 这里是代码 from selenium import webdriver import unittest from selenium webdriver common
  • 如何使用 facebook api 隐藏页面帖子

    我有这个代码 它来自这个链接https developers facebook com docs reference api page 请参阅 隐藏页面帖子 我没有任何错误 但我的问题是 这段代码不起作用 页面帖子仍未隐藏 下面是我的代码
  • Cosmos DB 固定 (10GB) 集合的分区键的用途

    在 Cosmos DB 文档中 我看到分配固定 10GB 集合意味着只会分配一个分区来保存集合中的文档 我的问题 如果我选择固定集合 如果我只有一个分区 为什么仍然提示我选择分区键 我的猜测是 单个分区指的是单个物理分区 但仍然可以在单个物
  • 使用 Appium 在真实 Android 设备上以隐身模式打开 Chrome

    我正在使用 Appium 在 Android 版 Chrome 上测试我的网站 我想为 Android 版 Chrome 添加一些选项 例如隐身模式和禁用缓存的可能性 我尝试使用以下示例代码 但它无法正常工作 Appium 能够在我的 An
  • 在 Cucumber around Hook (Ruby) 中多次调用 Block

    我正在尝试运行一个场景数 30 次 以获得一个很好的统计样本 然而该块只执行一次 随后的每次都会导致场景被调用但不执行 尽管它表示该场景在大约 5 毫秒的时间内成功完成 Around mass benchmark do scenario b
  • 使用 Groovy 计算两个日期之间的月份差异

    我需要计算两个日期之间的月份差异 start new Date 112 4 30 Wed May 30 00 00 00 CEST 2012 end new Date 111 9 11 Tue Oct 11 00 00 00 CEST 20
  • Python 3中reverse()的时间复杂度

    Python 3 中的 returned 的时间复杂度是多少 我认为答案是 O 1 但我想澄清它是对还是错 reversed some list 在我的机器上总是需要大约 120ns 才能完成 这是 O 1 时间复杂度的明显标志 这是因为这
  • 让 Pyinstaller 识别 Kivy Garden Matplotlib 模块的路径

    这类似于 PyInstaller 中的 Kivy Garden 试图跟踪导入除了我将提供更多详细信息 希望使人们更容易测试并提供具体的解决方案 我已经使用 Kivy 1 9 1 构建了一个 Python 2 7 13 应用程序 并尝试使用
  • 在 Azure 中,我可以从 C# WebJob 调用 Python 脚本吗?

    我想用 C 创建一个 WebJob 不幸的是 我需要使用 Python 3 脚本 因为目前没有合适的库来执行我需要使用 C 执行的 1 个特定任务 例如 参见这个答案 例子 是否可以让我的 WebJob 调用 Python 脚本 我可以将
  • BreezeJS:在控制器中应用客户端查询

    无论如何 是否可以在控制器中应用用户查询以便对最终结果集执行某些操作 举个例子 HttpGet public IQueryable
  • 如何在 Monogame Windows Phone 8 游戏项目上设置 xnb 文件?

    我从未找到任何使 xnb 文件起作用的教程 他们都使用非Windows Phone 8 Win 8 Metro等 方式 有人可以指导我使我的 xnb 文件在 MonoGame Windows Phone 8 游戏项目中可用吗 因为我在谷歌上
  • 声明模板类的模板友元函数

    我有一个类模板Obj和一个函数模板make obj Obj has a private定义了单个构造函数 它引用要绑定到的模板化类型 template
  • 获取数组中出现次数最多的项

    var store 1 2 2 3 4 我想知道2数组中出现次数最多的 我该如何去做呢 我会做类似的事情 var store 1 2 2 3 4 var frequency array of frequency var max 0 hold
  • 如何在j2me应用程序中锁定横向模式?

    我只想以纵向模式显示我的应用程序 我必须限制我的应用程序中的横向模式 每个设备都有单独的属性 对于诺基亚来说 诺基亚 MIDlet 应用程序方向 纵向 对于三星来说 MIDlet 屏幕模式 纵向 在 JAD 中添加这些后 我尝试将其安装在诺
  • 工件未在发布管道中下载 - Azure DevOps

    我一直在努力解决 Azure DevOps 中的一个问题 我可以通过构建管道成功构建工件 我使用发布工件任务 我可以看到该工件已成功构建 因为我可以下载它 并且可以稍后在发布管道中引用它 问题是 当托管代理启动时 不会将任何工件下载到计算机
  • 是否可以在我们的应用程序中而不是 Safari 中打开 Markdown 链接?

    当您使用 Markdown 下面的示例 并点击链接时 Swift 会自动关闭我的应用程序并在 Safari 中打开链接 但我想在我的应用程序内的 Web 视图中打开链接 这可能吗 Text Hello Example of a markdo