通过 Catalyst 工具 Xcode 11 从 Bundle for MacOS App 加载 WKWebView 中的 PDF

Posted

技术标签:

【中文标题】通过 Catalyst 工具 Xcode 11 从 Bundle for MacOS App 加载 WKWebView 中的 PDF【英文标题】:Loading PDF in WKWebView from Bundle for MacOS App through Catalyst Tool Xcode 11 【发布时间】:2019-10-16 10:55:18 【问题描述】:

我正在使用 WKWebView 从包中加载 PDF 文件,它在 iPad 设备和模拟器中都可以正常工作,但是当我在 Mac Catalyst 的帮助下为 Mac OS 应用程序调试相同的代码时,它只显示空白白屏在 Mac App Simulator 中,什么也没有发生。

这是我从 Bundle 加载 pdf 的代码:-

import UIKit
import WebKit

class ViewController: UIViewController,WKNavigationDelegate

    @IBOutlet weak var webKit: WKWebView!
    override func viewDidLoad() 
        super.viewDidLoad()
        if let pdf = Bundle.main.url(forResource: "sample", withExtension: "pdf", subdirectory: nil, localization: nil)  
           let req = NSURLRequest(url: pdf)
            webKit.load(req as URLRequest)
         
    

它会在控制台中抛出此错误:-

无法创建“com.apple.iphone.axserver-systemwide”沙盒扩展

即使我已经配置了应用沙箱:-

Have a look here

我正在使用 - Xcode 11.1 - macOS 10.15

【问题讨论】:

目前,WKWebView 的 macOS 和 ios 实现是不同的。对于 WKWebView,macOS Catalyst 可能仍然使用 macOS 实现。 WWDC 2019 演示文稿提到了一些框架在 macOS 和 iOS 之间是通用的,而其他框架则不是。 【参考方案1】:

WKWebView 不会(当前)在 macOS 上使用 Catalyst 显示 PDF。使用 PDF 视图。

【讨论】:

你有这个来源吗?我想知道这是否是 Apple 可能会修复的错误,或者他们不会支持的错误。 @arlomedia WKWebView 存在于 UIKit 和 AppKit 中,并且 AppKit 版本从未如此出色。会改善吗?谁知道。他们可能一开始没有实现它,因为您应该在 AppKit 中使用 PDFKit。

以上是关于通过 Catalyst 工具 Xcode 11 从 Bundle for MacOS App 加载 WKWebView 中的 PDF的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 Xcode 成功签署 Mac Catalyst 应用程序

Catalyst 'SwiftUI.AccessibilityNode' 不是已知的可序列化元素

腾讯 QQ 发布 macOS Catalyst 转制体验版

如何在 Mac 上的 Mac Catalyst 应用程序中使用钥匙串?

Mac Catalyst ITMS-4241 错误上传二进制文件

SKProductsRequest 不会在 Catalyst 应用程序中返回 SKProductsResponse