gpt4 book ai didi

macos - WebView 拒绝访问沙盒 Mac 应用程序中的网页资源

转载 作者:行者123 更新时间:2023-12-03 17:57:29 26 4
gpt4 key购买 nike

我最近开始实现 Mac App Store 沙箱(呃),并注意到加载到 WebView 中的保存的 HTML 存档不会呈现引用的资源。例如,保存的网页 MyPage.html 可以引用相应 MyPage_files 文件夹中的 styles.css、image.jpg 和 script.js(Google Chrome 的保存“网页,完整”约定):

  • MyPage.html
  • MyPage_files/styles.css
  • MyPage_files/image.jpg
  • MyPage_files/script.js

但是,将 MyPage.html 文件加载到 WebView 后,Console.app 会报告如下错误:

sandboxd: deny file-read-data /Users/user/Desktop/MyPage_files/styles.css
sandboxd: deny file-read-data /Users/user/Desktop/MyPage_files/image.jpg
sandboxd: deny file-read-data /Users/user/Desktop/MyPage_files/script.js

这应该被视为一个错误,还是只是沙箱内 WebView 的限制?

最佳答案

这是原始沙盒设计的一个限制,但 Apple 已经(至少部分)修复了这个问题。

Apple 工程师至少在两个地方讨论了新的解决方案,但不幸的是,我相信它们都是“预发布”信息源,Apple 以外的任何人都不允许在这样的公共(public)场所谈论。

如果您有付费 Mac 开发者计划成员(member)资格,请访问 Application Sandboxing forum .

我相信来自The WWDC 2012 videos的“OS X App Sandbox”视频无需付费 Mac 开发者计划成员(member)资格即可使用。

此外,请记住,您将需要某种后备措施,除非您愿意要求所有用户升级到新版本的 OS X。您绝对应该向 Apple 提交错误,解释您的需求,并在论坛上发布相关内容。您可以在非预发布论坛上发布相关内容,因为您询问如何在 Lion 上执行此操作,这不涉及任何 secret 信息。

最后一点:如果您自己创建文件,则可以保存它们,以便有一个 MyPage bundle ,其中包含 .html 文件和 _files 子目录;然后,当用户选择您的 bundle 时,您将可以访问所有内容。但是,如果您尝试打开例如由 Safari 创建的文件,这当然不起作用。

关于macos - WebView 拒绝访问沙盒 Mac 应用程序中的网页资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11317393/

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