MST
星途 面试题库

面试题:Swift中如何在SwiftUI视图里处理外部URL的打开请求

假设你正在开发一个SwiftUI应用,当用户点击某个按钮时,需要打开一个外部的网页URL。请描述实现这一功能的主要步骤,并给出相应的代码示例。
14.2万 热度难度
编程语言Swift

知识考点

AI 面试

面试题答案

一键面试
  1. 导入必要的框架:在SwiftUI应用中,需要导入UIKit框架来使用UIApplication.shared.open方法打开外部URL。虽然SwiftUI主要是用于构建界面,但涉及到与系统交互打开URL这种操作,UIKit的方法比较常用。
import SwiftUI
import UIKit
  1. 创建按钮并添加点击事件:在视图中创建一个按钮,当按钮被点击时触发打开URL的操作。
Button("打开外部网页") {
    // 这里添加打开URL的代码
}
  1. 定义要打开的URL并执行打开操作:在按钮的点击闭包中,定义要打开的URL,并使用UIApplication.shared.open方法尝试打开它。
Button("打开外部网页") {
    if let url = URL(string: "https://www.example.com") {
        if #available(iOS 10.0, *) {
            UIApplication.shared.open(url, options: [:], completionHandler: nil)
        } else {
            UIApplication.shared.openURL(url)
        }
    }
}

完整代码示例:

import SwiftUI
import UIKit

struct ContentView: View {
    var body: some View {
        Button("打开外部网页") {
            if let url = URL(string: "https://www.example.com") {
                if #available(iOS 10.0, *) {
                    UIApplication.shared.open(url, options: [:], completionHandler: nil)
                } else {
                    UIApplication.shared.openURL(url)
                }
            }
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}