gpt4 book ai didi

ios - 如何使用 SwiftUI 按钮打开本地 PDF 文件?

转载 作者:行者123 更新时间:2023-12-01 16:05:39 25 4
gpt4 key购买 nike

点击按钮时,我想通过新 View 显示本地 PDF 文件。
我尝试使用 UIViewRepresentable WebView 执行此操作,但它不起作用(我仅通过 NavigationList 使用 WebView)。

我留下了我的代码,但如果 WebView 不是最佳选择,请随时提出更好的选择。

按钮查看

import SwiftUI

struct ResumeView: View {

let sfSymbol: String
let text: String

let fileUrl = Bundle.main.path(forResource: "Resume", ofType: "pdf")

var body: some View {
RoundedRectangle(cornerRadius: 25)
.fill(Color.white)
.frame(height: 50.0)
.overlay(
HStack {
Image(systemName: sfSymbol)
.foregroundColor(.init(red: 0.20, green: 0.33, blue: 0.55, opacity: 1.00))
Button(action: {
WebView(urlString: self.fileUrl)
}) {
Text(text)
.foregroundColor(.black)
}
})
}
}

网页浏览
import Foundation
import SwiftUI
import WebKit

struct WebView: UIViewRepresentable {

let urlString: String?

func makeUIView(context: Context) -> WKWebView {
return WKWebView()
}

func updateUIView(_ uiView: WKWebView, context: UIViewRepresentableContext<WebView>) {
if let safeUrlString = urlString {
if let url = URL(string: safeUrlString) {
let request = URLRequest(url: url)
uiView.load(request)
}
}
}
}

最佳答案

使用 PDFKit 我们加载本地 PDF文件。请尝试以下代码。

import SwiftUI
struct ResumeView: View {
....
let fileUrl = Bundle.main.url(forResource: "Resume", withExtension: "pdf")!
var body: some View {
....
Button(action: {
PDFKitView(url: self.fileUrl)
}) {
Text(text)
.foregroundColor(.black)
}
....
}
}

PDFKit查看
import PDFKit
struct PDFKitView: View {
var url: URL
var body: some View {
PDFKitRepresentedView(url)
}
}

struct PDFKitRepresentedView: UIViewRepresentable {
let url: URL
init(_ url: URL) {
self.url = url
}

func makeUIView(context: UIViewRepresentableContext<PDFKitRepresentedView>) -> PDFKitRepresentedView.UIViewType {
let pdfView = PDFView()
pdfView.document = PDFDocument(url: self.url)
pdfView.autoScales = true
return pdfView
}

func updateUIView(_ uiView: UIView, context: UIViewRepresentableContext<PDFKitRepresentedView>) {
// Update the view.
}
}

关于ios - 如何使用 SwiftUI 按钮打开本地 PDF 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61478290/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com