safari-app-extension - 是否可以从项目文件夹中为 Safari App Extension 导入内容脚本?
问题描述
我正在开发一个 Safari 应用程序扩展。但是我的内容脚本不在 Xcode 项目文件夹中。是否可以导入这些脚本文件?
我在Apple的官方文档中看到:
对于每个脚本文件,将字典添加到数组中。每个字典都必须有一个 Script 键,其值指定要包含的脚本文件的路径(相对于包的 Resources 目录)。
假设我的扩展项目名为 SafariExt。我的应用程序的文件夹结构:
SafariExt // Xcode project root folder
|
+-- SafariExt Extension
|
+--script.js // this is the default script file in Xcode project, and I specified path relative to this folder
Scripts // my scripts folder
|
+-- myScript.js // the file I want to import
SafariExt
并且Scripts
在同一个基本文件夹中。
现在我../../Scripts/myScript.js
在 Info.plist 中使用来引用myScript.js
文件,但是在 Safari 中这个文件没有被加载。
Info.plist 如下所示:
<key>SFSafariContentScript</key>
<array>
<dict>
<key>Script</key>
<string>../../Scripts/myScript.js</string>
</dict>
</array>
解决方案
您应该能够使用safari.addContentScriptFromURL
. 您可以尝试将其与 结合使用,file://
以查看它是否允许您从项目目录外部提取。
但实际上,如果可能,您应该使用构建脚本将文件复制到扩展目录中,而不是使用相对目录链接。
推荐阅读
- angular - 如何在角度的 ag-grid 单元格中应用自定义 css 类?
- sql - 如何检查postgres表中的条目是否在增加
- java - 向类添加类型间公共静态方法
- java - 替换 RecyclerView 项中的片段时:容器的“没有找到 id 的视图”
- php - 多个数组 PHP
- wordpress - Wordpress 被插件损坏
- reactjs - 使用门户而不是将组件作为道具传递有什么缺点吗?
- python - sklearn:TypeError:fit()缺少1个必需的位置参数:“x”
- react-native - 从 yield put 设置 redux 状态...需要很多时间
- java - 从 Dto 转换为实体后 getId 上的 NPE(mapstruct 和 modelmapper)